プロが教えるわが家の防犯対策術!

最近VBAを始めた者です。

コンマ区切りのテキストファイルの内容をシート上に読み込むプログラムを
書きたいのですが、テキストファイル内に不要な部分があるため、必要な部分のみ
抜き出して読み込みたいと考えています。
具体的なテキストの内容は以下の通りです。

AAA,BBB,CCC,DDD
EEE,FFF,GGG,HHH
111,222,333,444
111,222,333,444
111,222,333,444
 ・  ・  ・  ・
 ・  ・  ・  ・

行数は特に決まっていませんが1000行程度です。
アルファベットは文字列、数字は数値データです。

このうちの222にあたる列のみを読み取りたいのですが、そのための
読み取り開始行、および開始列の指定方法がわかりません。
クエリを用いた方法でできないことはなかったのですが、クエリテーブルに
残るデータは必要なく、後で消す必要が出てくるためクエリを用いない方法を探しています。
使用ソフトはExcel2007です。

宜しくお願いします。

A 回答 (5件)

>このうちの222にあたる列のみを読み取りたいのですが、


要するに普通に読み込んだ場合B列に当たる部分のみを
取り込みたいということでしょうか?

だとすれば、通常の操作で
1.”開く”で”テキストファイルを指定”して開く
2.A列,C~E列を削除

この、1.2.の操作を”マクロ記録”で行い出来たマクロの
中身を現在作成しているマクロのにコピーするのが、一番楽な
方法だと思います。

この回答への補足

質問者です。

お礼ではこの方法でクエリを使用した方法で記録されたと書きましたが、
「開く」と「外部データを取り込む」を勘違いしていました。
「開く」でテキストファイルを指定してマクロ記録してみたところ、クエリを使用することなく
テキストファイルの内容を取り込んだエクセルファイルを得ることができました。

しかしこの方法では、あらかじめ用意しておいたワークシート上の指定個所にデータを
取り込むことはできないようです。

最初の質問が言葉足らずだったため回答者を混乱させる結果となってしまいましたが、
クエリを用いることなく、あらかじめ用意しておいたワークシート上の指定個所に、
コンマ区切りのデータの指定した個所(列)だけを取り込む方法を探しています。

良い方法がありましたらご教授お願いしたいと思います。

補足日時:2009/09/04 08:28
    • good
    • 0
この回答へのお礼

早速のご回答有難うございます。

実はこの方法でマクロ記録をしたことがあるのですが、この方法だと勝手に
クエリを使用した方法として記録されてしまいました。

Excel2007だからでしょうか?よくわかりません。
他に方法がございましたらご教授お願いしたいと思います。

お礼日時:2009/09/04 07:54

カンマが1つ目と2つ目のデータを抜き出すなら


FIND関数、MID関数を使ったらどうでしょう。
以下の数式をデータの件数分繰り返しては?

no1 = FIND(",",テキストデータ,1)
no2 = FIND(",",テキストデータ,no1 + 1)
答 = =MID(テキストデータ,no1 + 1,no2 - no1 - 1)
    • good
    • 0

参考に


SubTest()
  Dim FSO, TextFile
  Set FSO = CreateObject("Scripting.FileSystemObject")
  Set TextFile = FSO.OpenTextFile("C:\てすと.txt")
  With TextFile
    Do Until .AtEndOfStream
      MsgBox .Line & "行目-2列目" & vbCr & Split(.ReadLine, ",")(1)
    Loop
    .Close
  End With
  Set FSO = Nothing: Set TextFile = Nothing
End Sub
    • good
    • 1

こんにちは。


私も無知なのですが、ちょっとやってみました。

データリボン→外部データの取り込み→テキストファイル→
ファイルを指定して[インポート]
  ↓
テキストファイルを開いた時と同じ要領で列を指定して[完了]
  ↓
「データの取り込み」という窓が現れるので
データを格納したい場所を指定する

…と、こういうことでいいのかな?
私が勉強させていただきました!
    • good
    • 0
この回答へのお礼

私も当初そのようにしていたのですが、この方法ですとクエリテーブルに
データが残る形になると思います。
私の場合このクエリデータは必要ないのでクエリを用いない方法を
探していたのです。

お礼日時:2009/09/04 21:56

NO1です。


>しかしこの方法では、あらかじめ用意しておいた・・・・
前回のに続けて
3.A列を選択(領域選択でもよい)
4.右クリックでコピー
5.貼り付けたいブックのシートの列(3.で領域の場合はセル)を選択
6.値指定で貼り付け
7.csvファイルを取り込んだブックを保存せずに終了
8.マクロ記録終了

これだけのことでしょう。
質問者さんの技量を推定してこれくらいの応用は可能と判断して
前回は敢えて省きました。

すべての事をここの質問に頼ってばかりでは、あなたのスキルアップ
には繋がりません。
ここでの質問はあくまでも、問題解決のためのヒントを得て、ご自分
で、問題解決する事を考えるべきと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!