• ベストアンサー

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

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

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

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

Wendy02さんとかぶってしまいました。ほぼ同じ事をしていますが、折角作ったので、投稿しておきます。 空白行を出力する事は無いだろうと、上から空セルが出現するまでループしています。1000文字以上のセルで動作確認しました(XL2000)。 My Doocumentsに作成する仕様です。 Sub Sample() Dim FSO As Object Dim filePath As String Dim i As Long Set FSO = CreateObject("Scripting.FileSystemObject") filePath = getMyDocumentsPath & "\" i = 1 Do While Range("A" & i).Value <> "" With FSO.OpenTextFile(filePath & Range("A" & i).Value & ".txt", iomode:=2, create:=True) .Write Range("B" & i).Value .Close End With i = i + 1 Loop Set FSO = Nothing End Sub Private Function getMyDocumentsPath() As String Dim objWshShell As Object Set objWshShell = CreateObject("Wscript.Shell") getMyDocumentsPath = objWshShell.SpecialFolders("MyDocuments") Set objWshShell = Nothing End Function

iloveganko
質問者

お礼

どうもありがとうございます。こちらのモジュールで問題なく実行できました。テストまでしていただいて本当にありがたいです。 今後とも何かありましたらどうぞよろしくお願いいたします。

その他の回答 (2)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 出力する場所を自分の場所に合わせて実行してください。 '--------------------------------------------------- '標準モジュール Sub OutPutMacro()   Dim fs As Object   Dim objTxt As Object   Dim i As Long   Dim orgPath As String   orgPath = CurDir   '上書きオプション   Const OVRW As Boolean = False   '出力する場所   ChDir "D:\"      Set fs = CreateObject("Scripting.FileSystemObject")   For i = 1 To Range("A65536").End(xlUp).Row     If Cells(i, 1).Value <> "" Then       Set objTxt = fs.CreateTextFile(Cells(i, 1).Text & ".txt", OVRW)       objTxt.WriteLine (Cells(i, 2).Text)       objTxt.Close     End If   Next i   ChDir orgPath   Set fs = Nothing End Sub

iloveganko
質問者

お礼

どうもありがとうございます。 回答No.3の方に紹介いただいたモジュールで実施できましたので申し訳ありませんがこちらは試しておりません。回答いただいたのに申し訳ないです。 今後ともよろしくお願いいたします。

  • v6arxzmd
  • ベストアンサー率32% (16/49)
回答No.1

ご参考にされてください

参考URL:
http://riko.s235.xrea.com/Excel-VBA/excel4-10-003.html
iloveganko
質問者

お礼

どうもありがとうございます。 実はご紹介いただいたURLは既に参照していたのですが、当方の知識不足からか、実施したい内容は実現できないように思っていました。 もし実現できるようであれば補足いただければ大変ありがたく思います。

関連するQ&A

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

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

  • テキストファイルの内容をエクセルのセルごとに入れたい。

    テキストファイル(*.txt)の内容をエクセルのセルごとに 区切って入れたい場合どうすればよいのですか? 初歩的な質問で申し訳ないですが教えてください。 よろしくお願いいたします。 例) (.txt文字列) abcdefghijklmn 12345678901122 ↓ (エクセル表) ------------------------ | abcd | efgh | ijklmn | ------------------------ | 1234 | 5678 | 901122 | ------------------------

  • エクセル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とこのような感じでフォルダがあり、さらに各フォルダには、複数のテキストファイルが入っています。 現在、エクセルのA列にフォルダ名、B列にtxtファイル名、C列にtxtファイルの内容を手動で貼りつけるといった作業を行っているのですが、数が多いためしんどいです。 何か楽にできる方法はないでしょうか? よろしくお願いいたします。

  • 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 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があればお教え願いたいのですが。 以上よろしくお願いします。

  • ファイル操作について、テキストファイルの書き換え

    よろしくお願いします。 データファイルAからデータを取得して、テキストファイルBの内容の一部を取得したデータで書き換えるという操作を行うプログラムを作りたいです。 具体的には、 データファイルA[A.txt]の中身 111 222 333 444 テキストファイルB[B.txt] 文字列1="123" 文字列2="234" 文字列3="345" 文字列4="456" というような二つのファイルを読み込み、B.txtの""で囲まれた部分を、A.txtで取得したデータで置き換えるような操作を行いたいのですが・・。 使用する言語としてはスクリプト言語であるperl、もしくはプログラム作成経験があるCを使用しようと思っています。(perlは未経験で入門書を読んでいるレベル)

    • ベストアンサー
    • Perl
  • PHPで複数のテキストファイルを読み込みたい

    PHPを勉強中です。 どうしても自力で解決できないので助けてください。 やりたい事は、 「複数ファイルの内容を読み込み、  それらのデータをcsvのセルに入れたい。」のです。 Aというフォルダに、複数のテキストファイルがあります。 これら各ファイルの内容をそれぞれ取得して 「○○.csv」のB列に上から順々に書き込んでいきたいのです。 Aフォルダに入っているテキストファイルは連番を想定しています。 A/ 0001.txt 0002.txt 0003.txt : フォルダに入っているテキストファイルの数はいろいろです。 3枚のフォルダもあれば100枚のフォルダもあります。 これらのファイルの内容を、それぞれ取得して 用意されているcsvファイルの特定のセルに テキストファイルの数だけ順番に入れていきたいのです。 ○○.csv A列  |  B列  |  C列  | △  |0001.txt内容|  △  | △  |0002.txt内容|  △  | △  |0003.txt内容|  △  | : : プログラムのヒントを教えていただければ嬉しいです。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • Excelマクロ テキスト貼り付け

    テキストファイル(*.txt)を開き、A1に貼り付けるマクロを教えてください。 B列には計算式があるため、A列にテキストの内容を貼り付けたいです。 また、テキストのファイル名はランダムなため、 フォルダを開いて、テキストを開きたいのですが教えてください。

  • DOSでファイルの内容を置換

    一つのテキストファイルの中身を置換する方法は 解るのですが一つ一つやるのが不便なので、 テキストファイルの内容を一括で 置換できるコマンドを探しています。 ファイル名 A.txt 内容    名前A.名前B.本文 ファイル名 B.txt 内容    名前A.名前B.本文 具体的には上記のように複数のファイルがあるのですが この複数のファイルの名前Aという部分を一括で変更できるコマンド又はやり方を教えてください。

専門家に質問してみよう