• ベストアンサー

1行単位のデータをテキストファイルに保存するマクロ

エクセルに入力済みの連続したデータを1行単位で以下のような内容でテキストファイルを作成し、 かつテキストファイル名を、セルに入力されている文字を使って保存するマクロを作りたいのですが、 どのようにしたら良いのでしょうか?よろしくお願いします。 *エクセルシート (ファイル名:aaa.xls シート名:sheet1 エクセルシートがあるフォルダ名:yyy) _|A |B |C | 1|x |y |z | 2|a1|a2|a3| 3|b1|b2|b3| *テキストファイル(保存するフォルダ名:zzz) ---テキストファイルの内容(ファイル名:a1.txt) x a1 y a2 z a3 --- ---テキストファイルの内容(ファイル名:b1.txt) x b1 y b2 z b3 --- エクセルはExcel2000でWindows2000を使用しております。

  • fab5
  • お礼率100% (3/3)

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

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

このマクロは、そのデータとは関係のない余計なデータが右側セル、下側にあると、誤動作しますので、その点は注意してください。 必ず、<標準モジュール>でお使いください。 '目的のブックのシートを開いたままお使いください。 Sub ColumnOut2Text() Dim i As Long Dim j As Long Dim Fno As Integer Dim OutColumn As String 'ユーザー設定   Const myPath As String = "C:\ZZZ\"  'かならず、最後に\ を入れてください。 ' With Worksheets("Sheet1") For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row  Fno = FreeFile()  Open myPath & .Cells(i, 1).Value & ".txt" For Output As #Fno  For j = 1 To .Cells(1, Columns.Count).End(xlToLeft).Column   OutColumn = .Cells(1, j).Value & Chr(13) & .Cells(i, j).Value & Chr(13)   Print #Fno, OutColumn  Next j  OutColumn = Empty  Close #Fno Next i End With  Beep End Sub

fab5
質問者

お礼

できました!ありがとうございます。

その他の回答 (2)

  • Zero_0
  • ベストアンサー率35% (72/201)
回答No.2

#1です。 保存するフォルダの指定がありました。 Dpath="zzz" としてください。 このままだと、Excelファイルのあるパスに保存します。

fab5
質問者

お礼

了解しました。

  • Zero_0
  • ベストアンサー率35% (72/201)
回答No.1

これでどうですか。 Sub テキストファイル出力() Sheets("sheet1").Select i = 2 Dpath = ActiveWorkbook.Path While Cells(i, 1) <> "" Open Dpath & "\" & Cells(i, 1) & ".txt" For Output As #1 For j = 1 To 3 Print #1, Cells(1, j) Print #1, Cells(2, j) Print #1, "" Next j Close i = i + 1 Wend End Sub

fab5
質問者

お礼

回答ありがとうございます。やってみましたが、何も保存されませんでした。

関連するQ&A

  • 二つのテキストファイルを行単位で交互に一つに

    10000行のテキストファイルが二つあります。 二つのテキストファイルの内容を行単位で交互に結合させて一つのテキストファイルにまとめたいのですが 例えると下記のようにしたいです。 二つのテキストファイルA.txtとB.txtがあるとします。 ---------------------------------------------- A.txt ああああああああああああああ ささささささささささささささささ ななななななななななななななな ------------------------------------------------ ------------------------------------------------ B.txt かかかかかかかかかかかかかか たたたたたたたたたたたたたた はははははははははははははは ----------------------------------------------- A.txtとB.txtの内容を行単位で交互に一つのテキストファイルとしてC.txtのように保存したいです。 ----------------------------------------------- C.txt ああああああああああああああ かかかかかかかかかかかかかか ささささささささささささささささ たたたたたたたたたたたたたた ななななななななななななななな はははははははははははははは ---------------------------------------------- 検索して調べてみたのですが Pasteコマンドで実現させる方法を試してみたのですが うまくいかず、もしかしたらWindowsにもともと備わっていない機能なのではないかと思い検索したらbusybox64.exeを ダウンロードしてインストールしようと思いましたが コマンドプロンプトにbusybox64.exe --installを 入力してみますとうまく生きました。 busyboxを使わずに行単位で交互にテキストファイルを結合させる方法も知りたいです。 よろしくお願い致します。 返答をお待ちしております。

  • 大量のテキストファイルを一つのエクセルファイルに

    大量のテキストファイル(以下「テキスト」とします)を、そのテキストを保存しているフォルダ名がわかるように一つのエクセルファイルに書き込みたいと考えています。 例えば「A」というフォルダの中にフォルダ名「1」~「1000」の1000個のサブフォルダがあり、その1000個のフォルダの中にはそれぞれ3~4つのファイルが保存されています(ファイルの種類はバラバラ)。但し、1000個のフォルダには最低でも1つのテキストが必ず保存されており、そのテキストのファイル名はすべて同じです。これら同じファイル名の1000個のテキストを、保存されているフォルダ名がわかるように一つのエクセルファイルの一つのシートの上から順番に書き込みたいのです。 それぞれのテキストは、1行に1情報、改行が10~20ほど、ファイルサイズは1~2KBほどです。エクセルのバージョンは2010です。 書き込み方は、例えばエクセルファイルのSheet1のA列にフォルダパス等のフォルダ名がわかる情報を、B列にテキストの内容を書き込むといった感じで、簡単なデータベースのテーブルを作るイメージです。 上記を実現できる方法はありますでしょうか? もし何らかのプログラミングが必要であれば、当方ほぼ未経験ですので具体的に例示して頂けると大変ありがたいです。 よろしくお願い致します。

  • テキスト内の文字列をファイル名にして保存するバッチ

    テキスト内のデータをファイルとして保存するバッチを作成したいです。テキスト内のデータをフォルダ名として保存する方法は見つけたのですがテキストとして保存する方法がわからずご教示いただけますと助かります。 例)テキストファイル名:File_List.txt -----テキスト内のデータ------- 会社名A 会社名B 会社名C ------------------------------------------ 実現したいこと 下記のようにテキスト内のデータをファイル名としてそれぞれ保存したい。 会社名A.txt 会社名B.txt 会社名C.txt テキスト内のデータをフォルダ名にするバッチは以下でした。 for /f %%a in (%1) do md %%a Windowsサーバにてバッチを利用します。

  • 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.txt b.txt c.txt があり内容はそれぞれ 日付 商品名 数量と同一項目にしてあります これを同じフォルダに自動で一つのファイルにまとめる方法はありませんか 超初心者です よろしくお願いします

  • 複数のテキストファイルを1つにまとめる

    同一フォルダ内にある複数のテキストファイルの内容を1つにまとめる方法を探しております。 例えば、 a.txt, b.txt, c.txt が同一フォルダにあり、 それぞれの内容が AAA BBB CCC である時に、これらをまとめて matome.txtとして、その内容が AAA BBB CCC となるようなプログラムを書きたいのですが、どの様な方法が考えられますでしょうか。 上の例では3つのテキストファイルですが、実際に処理したいファイルは数百個になる為、一つ一つファイル名を入力する作業が大変で困っております。 同一フォルダ内のファイルをファイル名順に一度に読み込み、まとめる方法がありましたらお教え下さい。

  • Excelマクロ テキスト貼り付け

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

  • マクロで指定ファイルを開く方法

    ずぶの素人です。 例えばエクセルシートのA1に「こんにちわ」と 入力するとハードディスクの指定のフォルダ内から 「こんにちわ」と言うファイルを開く事はできるのでしょうか? 変数?というものを使ってみたものの ファイル名 = Range("A1") Workbooks.OpenText Filename:=C:\ファイル名.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。 実際は数千行あるので、数千ファイルを一気に生成させたいのです。 どうぞよろしくお願いいたします。

  • テキストファイルの中身について

    あるフォルダしたのテキストファイルとそのファルダしたのフォルダ中のテキストファイルについて、 例えば、”日本”と言う文字が有ったら、そのテキストファイル名を表示するようなの機能を実現したいです。 何を使ったら、いいですか? サンプルが欲しいです。 教えてください!お願いします。 ーーーーーーーーーーーーー temp-------a.txt |------b.txt |------temp1 |--------a1.txt |--------b1.txt       … などなど、 テキストファイルの中身に、”日本”という文字が存在したら、そのテキストファイル名を出力 ーーーーーーーーーーーーー

専門家に質問してみよう