テキストファイルをエクセルに読み込むには

このQ&Aのポイント
  • テキストファイルの内容を、1行ずつエクセルのA列に読み込む方法を教えてください。
  • VBAを使用してテキストファイルをエクセルに読み込む方法について教えてください。
  • テキストファイルの形式や空白の調整によってエクセルへの読み込みがうまくいかない場合の対処法を教えてください。
回答を見る
  • ベストアンサー

テキストファイルをエクセルに読み込むには 

こんにちは いつもありがとうございます。 今回の質問は テキストファイルの中身を1行ずつ エクセルのA列に読み込む には  です。 okazu.txt ファイルの中身 ーーーーーーーーーーーーーーー 今日の夕飯の材料 \\\\\ 湯豆腐(豆腐抜き)\\ =========== お湯 ¥0 昆布 ¥10 ーーーーーーーーーーーーー 希望する状態 エクセルのA列 2行目から9行目に下記のように記入してほしい ーーーーーーーーーーーーーーー 今日の夕飯の材料 \\\\\ 湯豆腐(豆腐抜き)\\ =========== お湯    ¥0 昆布    ¥10 ーーーーーーーーーーーーー VBAだとどうなりますか? ネット上の参考例をつかってみましたが エラーがでたり、途中までしかよめなかったりとうまくいきません。 テキストファイルにはタブで空白を調整している部分もあります。

質問者が選んだベストアンサー

  • ベストアンサー
  • emsuja
  • ベストアンサー率50% (1035/2057)
回答No.1

マクロの記録でやってみればいいのでは? 試しにやってみたところ ファイル形式の指定で 「カンマやたぶなどの区切り記号で・・・」とデータ形式を指定し 「区切り文字」の部分で区切り文字をすべてのチェックを外して読み込んだ場合、タブで空白調整した場合はタブがすべて無視されてみじレスが詰まって読み込まれます。 「区切り文字」の部分で区切り文字をタブに指定するとタブのある行ではタブの数だけセルが右方向にずれて読み込まれました 後、バックスラッシュはすべて ¥ に変更されました VBA で直接書くならこんな感じかと Sub sample() Dim D() As String, f As Integer, w As String, fn As String, r As Integer, i As Integer f = FreeFile fn = "f:\okazu.txt" Open fn For Input As f r = 1 Do Until EOF(f) r = r + 1 Line Input #f, w D() = Split(w, vbTab) i = UBound(D) If i = 0 Then ' tab が一つも無い Cells(r, 1).Value = D(0) Else ' tab が複数ある w = "" For c = 0 To i w = w & D(c) & " " ' tab を スペース 4個に置き換える Next c Cells(r, 1).Value = Trim$(w) End If Loop Close f End Sub

ch20090926
質問者

お礼

回答ありがとうございました。 なぜか =が テキスト本文に入っていると Cells(r, 1).Value = D(0) 実行時エラー 1004 になってしまいます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

回答するためのテキストファイルの要点の説明が不十分だと思う。 質問にはokazu.txtの状態を、十分勉強し説明することが大切。 ーーー・・や===・・はイメージではないのですか。 実際のテキストファイルにはそれらの文字はあるのですか。 要点は項目区切りが、カンマやタブや改行のどれかということが大切。 メモ帳に読み込んで、その状態を説明するとかがわかりやすい。 それでも、画面では見えない改行やTABやスペースその他の文字が入っている場合がある。16進の表示ができるテキストエディタで、読んで表示してみるのが最も正確なのだが、そんなの思ってもいないだろうし。 第2レコード、第3レコード、・・を区切る(分ける)のは(文字は)どうなっていますか。そもそもファイルを構成するレコードの考えに至っていますか。 テキストファイルは、1本の「ひも」のように文字が連なったものなのですよ。 これを特殊文字・記号や場合によっては文字列の意味によって、質問者のいう「希望する状態」に再構成しないとならない。 >VBAだとどうなりますか 付随してVBAに関心があるだけですか(質問ぶりから、VBAでやるのは、すぐは無理ではないかな)。VBAでなくても実現すればそれでよいのですか。 できればテキストファイルの1つか,2つのレコードを質問に補足掲示されては。 この回答の記述が、うるさいと思うようなら、VBAは時期尚早かと思う。

ch20090926
質問者

お礼

回答ありがとうございます。 テキストファイル本文には =や・ / ¥ など (特殊記号というのでしょうか)が 文章中につかわれてます。

関連するQ&A

  • エクセルのセルをテキストファイル出力する方法教えてくれませんか。

    初心者ですが、 どなたか、エクセルのセル1つを、 テキストファイル出力できる方法をご存知ですか? 詳細には、 エクセルファイルの列Aの内容がテキストファイル名で、 列Bの内容が本文であるテキストファイル出力を 約3000個、順次したいと考えています。 例えば、エクセルファイルに以下のようなデータを保持しているとします。 列A  列B 001  あいうえお 002  かきくけこ 003  さしすせそ この場合、001.txtは本文が「あいうえお」、 002.txtは本文が「かきくけこ」、 003.txtは本文が「さしすせそ」というように、 エクセル1行についてテキストファイルを1つ作成したいと考えています。 このような処理を短時間で実施するのに適した方法をご存知の方がいらっしゃいましたらご教示いただければと思います。 どうぞよろしくお願いいたします。

  • エクセルの各セルの内容をそれぞれ1つずつテキストファイルに出力する方法

    掲題の件についてご存知の方がいらっしゃいましたらご教示ください。 エクセルファイルの列Aの内容がタイトルで、列Bの内容が本文であるテキストファイルを作成したいと考えています。 例えば、エクセルファイルに以下のようなデータを保持しているとします。 列A  列B 001  あいうえお 002  かきくけこ 003  さしすせそ この場合、001.txtは本文が「あいうえお」、002.txtは本文が「かきくけこ」、003.txtは本文が「さしすせそ」というように、エクセル1行についてテキストファイルを1つ作成したいと考えています。 このような処理を短時間で実施するのに適した方法をご存知の方がいらっしゃいましたらご教示いただければと思います。 どうぞよろしくお願いいたします。

  • Excel VBAで列ごとのデータをテキストファイルへ書くには?

    エクセルのシート(たとえばSheet1)が以下のようになっているとします。 A B C D E F 1 商品A 11111111 あいうえお 3 1000 2 商品B 22222222 かくくけこ 1 2500 3 商品C 33333333 さしすせそ 2 3500 ・ ・ これを決まった列ごとにテキストファイル(固定ファイル名)に書き出すということは、エクセルのVBAで可能でしょうか? テキストファイルの内容は以下のようにしたいのです。 E列を数量として、その分だけのテキスト行を書き出したいのですが… <<bbb.txt>> 商品A 商品A 商品A 商品B 商品C 商品C ・ ・ <<ccc.txt>> 11111111 11111111 11111111 22222222 33333333 33333333 ・ ・ <<fff.txt>> 1000 1000 1000 2500 3500 3500 ・ ・ また、このようなことが参考になるHPがあればお教え願いたいのですが。 以上よろしくお願いします。

  • テキストファイルの編集

    以前にもperlでのプログラミングについて質問させて頂いた者です。 前回と被る所があるのですがちょっと複雑で、私の手に負えないので質問させて頂きます。 よろしくお願いします。 データファイルAからデータを取得して、テキストファイルBの内容の一部を取得したデータで書き換えるという操作を行うプログラムを作りたいです。 具体的には、 データファイルA[A.txt]の中身 100 111  200 222 300 333 400 444 テキストファイルB[B.txt] 1st step 文字列1 start="123" end="134" 2nd step 文字列2 start="234" end="245" 3rd step 文字列3 start="345" end="356" 4th step 文字列4 start="456" end="467" という二つのファイルを読み込み、B.txtの""で囲まれた部分を、A.txtで取得したデータで置き換えるような操作を行いたいのですが・・。 A.txtの一行目で取得したデータをB.txtの1stステップの始まりと終わりの値として置き換え、それを二行目は2ndと同様の操作を行うようなプログラムを作りたいです。 もともとこのような操作を行いたくて前回のような質問をし、それを参考にし今日まで考えましたがやはり難しく、また頼りたいと思います。。 どうかよろしくお願いします。

    • ベストアンサー
    • Perl
  • Excelで複数のテキストファイルを1枚のシートに

    Excelで複数のテキストファイルを1枚のシートに追加したいのですが可能でしょうか? VBAや別ソフトを複数使ってもかまいません。 2列のテキストファイルが複数ありA列目は共通でB列目がそれぞれ異なります。 data01.txt、data02.txt…と50ぐらいのファイルがあり、それぞれ A  B 10 1.24 20 2.56 30 2.46 :  : となっています。これをひとまとめにして A      B     C ・・・ data01  data02   data03・・・ data50 10     1.24    1.35 ・・・ 2.24 20     2.56    2.22 ・・・ 1.34 30     2.46    3.23 ・・・ 5.45 :       :      : といった表にしたいのです。 お願いします。

  • Excel「テキストファイルのインポート」

    Excelの「テキストファイルのインポート」によってテキストファイル(仮に「a.txt」)をワークシート上に読み込んだ状態で、「a.txt」を削除しようとすると、「ファイルが開かれているため削除できない」旨のエラーメッセージが表示されます。 このとき、Excel上では「a.txt」が開かれていることは確認できませんが、マクロを使うなどの手段を用いると「a.txt」を閉じることはできるのでしょうか? 「a.txt」をインポートしたファイルを保存してしまえばいいことはわかっているのですが、あくまでインポートした直後の状態で「a.txt」を削除する手段を探しています。

  • エクセルVBA テキストに出力、名前を付けて保存

    エクセルVBA テキストに出力、名前を付けて保存    A  B   C   D 1  aa  bb  cc  =A1&B1&C1 2  dd  ee  ff  =A2&B2&C2 3  gg  hh  ii  =A3&B3&C3 上記エクセルのD列の内容(セルA1~C3が連続したもの)を1行毎にテキストに出力し、 B列の内容をファイル名にしてテキストファイルを多量に自動生成したいのです。 上記エクセルのように3行なら下記の3つのファイルが生成されるといったVBAがほしいのです。 ファイル名がbb.txtで、テキストの内容はaabbcc。 ファイル名がee.txtで、テキストの内容はddeeff。 ファイル名がhh.txtで、テキストの内容はgghhii。 実際は数千行あるので、数千ファイルを一気に生成させたいのです。 どうぞよろしくお願いいたします。

  • パソコン テキストファイルの内容をエクセルに

    エクセルのことで質問があります。 テキストファイルで、 1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29,30, というように数値が「,」で区切られて並ぶファイルを作りました。 (実際は各値が小数点以下も含む複雑なファイルですが) このファイルをエクセルで開く方法について教えてください! (1行A列に1を、1行B列に2を代入するような感じです)

  • MS Office Excel 2003でテキストデータファイルを読み

    MS Office Excel 2003でテキストデータファイルを読み込む方法 1111.txt 2222.txt 3333.txt というテキストデータファイルがあり、中身は添付画像の様になっています。 (テキストファイルは同じフォルダに格納されています) このテキストデータをExcelに読み込みたいのですが、以下の様な動作をして欲しいと思っています。 (1)セルA1にテキストデータファイルのファイル名(拡張子は省く)を入れる (2)セルA2から下に、添付ファイルのA列のデータが入り、セルB2から下にE列のデータが入る (3)セルA1に別のファイル名を入れると、そのファイルのテキストデータに切り替わる このような事は可能なのでしょうか? もし可能であれば教えて下さい。 よろしくお願いします。

  • Excelへのテキストデータの取り込み

    VB2005でテキストファイルを作成し、それをExcelに取り込もうとしています。 123,234,120,200 200,300,400,500 111,222,333,444 のようなファイルを作成し、これをExcelに取り込むと 3行で取り込まれます。 次に 123,234,120,200 200,300,400,500 111,222,333,444 のように文字列の行間に改行文字(chr$(13))だけの行を作成し、 これを取り込もうとすると、 2行おきに読み込まれてしまいます。 メモ帳でファイルの中身を確認すると1行おきになっているのに、 Excelのデータ→外部データの取り込みでテキストデータウィザードを見ると すでに2行おきになっているのです。 1行おきに作成した文字列ファイルを1行おきに取り込むにはどうしたらいいのでしょうか?

専門家に質問してみよう