エクセル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。
実際は数千行あるので、数千ファイルを一気に生成させたいのです。
どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
1>1 aa bb cc =A1&B1&C1
2>実際は数千行あるので、数千ファイルを一気に生成させたいのです。
3>ファイル名がbb.txtで、テキストの内容はaabbcc。
ちょっと説明不足のような気もしますが、このままで出力したら、必ず、同じものが出てきてしまいます。それを考慮して作れば、以下のようになります。
'//
Sub TestMacro()
Dim i As Long, k As Variant, j As Long
Dim fn As String
Dim mPath As String
Dim rng As Range, ar As Variant
Dim buf As String
Set rng = Range("A1", Cells(Rows.Count, 1).End(xlUp).Offset(, 2))
mPath = CurDir 'パスを決める(CurDir は、カレントディレクトリ)
ar = rng.Value
For i = 1 To rng.Rows.Count
fn = ar(i, 2) & ".txt"
Do Until Dir(mPath & "\" & fn) = ""
k = Val(k) + 1
j = InStr(1, fn, "(", 1)
If j > 0 Then
fn = Mid(fn, 1, j - 1) & "(" & k & ")" & ".txt"
Else
fn = Replace(fn, ".txt", "", , , 1) & "(" & k & ")" & ".txt"
End If
Loop
Open fn For Output As #1
Print #1, ar(i, 1) & ar(i, 2) & ar(i, 3)
Close #1
k = ""
Next
If Len(buf) > 2 Then
MsgBox Mid(buf, 2) & vbCrLf & "重複のため保存は省かれました。"
Else
MsgBox mPath & "に出力されました。"
End If
End Sub
No.3
- 回答日時:
Sub CSV出力()
Const 出力フォルダ = "C:\DATA\?.txt"
Dim I As Long
For I = 1 To Cells(Rows.Count, "A").End(xlUp).Row
Open Replace(出力フォルダ, "?", Cells(I, "B")) For Output As #1
Print #1, Cells(I, "D")
Close #1
Next I
End Sub
※出力フォルダは変更してください。
No.1
- 回答日時:
とりあえず書いてみたものです。
"c:\test\" のところを、実際に保存するディレクトリ名に変えてください。
エラー対策や、高速化は考えていませんので、あしからず。
Sub test()
Dim r As Integer
Dim FlName As String
Dim wb As Workbook
Const DirName = "c:\test\" '保存するディレクトリ
Application.DisplayAlerts = False
r = 1
While Cells(r, 2).Value <> ""
Set wb = Workbooks.Add
wb.Worksheets(1).Range("A1").Value = Cells(r, 4)
FlName = DirName & Cells(r, 2).Value & ".txt"
wb.SaveAs Filename:=FlName, FileFormat:=xlText
wb.Close
r = r + 1
Wend
Application.DisplayAlerts = True
End Sub
この回答への補足
回答かありがとうございました!
tada、オートメーションエラーとのメッセージがでてきました。。。
デバッグでは
wb.SaveAs Filename:=FlName, FileFormat:=xlText
の箇所が黄色で表示されました。
エラーの意味がよくわからないので困っています。
一応testフォルダは作成してあります。EX2007です
勉強の意味でも、補足していただければとても助かります。
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Excel(エクセル) エクセルVBA、間違っているコード内容を正して頂けませんか? エクセルワークシートに納品書を作ったの 2 2023/08/02 21:13
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Excel(エクセル) 【VBA】フォルダAにある2つのファイルの内1つを、フォルダBへ。もう1つを、フォルダBへ移動したい 6 2022/07/26 08:51
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- C言語・C++・C# 至急教えてください!プログラミングの問題です。 入力待ちをして、受け取った正の整数が表す行数だけ既存 4 2022/07/05 10:12
- Visual Basic(VBA) VBAでエクセルをtxtに変換するとエクセルでカンマを含む文字数字がtxtでは「""」付にならないよ 1 2022/08/27 12:17
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
多量のファイルをフォルダに自動振り分けするマクロを教えて下さい。
PowerPoint(パワーポイント)
-
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Visual Basic(VBA)
-
VBA でメモ帳へ保存する際の保存先フォルダの指定
Excel(エクセル)
-
-
4
エクセルのデータをメモ帳に貼り付けて名前を付けて保存する方法
Visual Basic(VBA)
-
5
VBAでメモ帳にコピペをしたいのですが…
PowerPoint(パワーポイント)
-
6
複数のテキストファイルをexcelでそれぞれ別シートに書き出したい
Excel(エクセル)
-
7
エクセルデータをメモ帳へ貼り付け
Excel(エクセル)
-
8
新規にメモ帳を起動して、「test」と入力したい
PowerPoint(パワーポイント)
-
9
【Excel】特定セルの内容をテキストファイルに書き出したい
Excel(エクセル)
-
10
サブフォルダー内のPDFファイルを別フォルダにコピーするVBA
Excel(エクセル)
-
11
VBAでテキスト出力時のスペースについて
Visual Basic(VBA)
-
12
A列をテキストファイル名に、B列のみをファイル文書に書き出すマクロ
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
拡張子を元に戻す
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
バッチファイル 複数ファイル...
-
ファイルの最後に文字列挿入
-
.txtではなく.logの方が良いの...
-
Windowsのバッチファイルを利用...
-
テキストファイルで提出とは?
-
バッチファイルで文字列削除に...
-
COPYコマンドで結合すると余計...
-
テキストファイルのタブをカン...
-
forfilesで検索したファイルを...
-
EXCEl/VBAで拡張子なしのファイ...
-
bat(バッチ)ファイルで文字入...
-
フォルダ名をファイル名の頭に...
-
コマンドプロンプトで指定した...
-
3つ以上のテキストファイルをコ...
-
Teraマクロで取得した変数を編...
-
【Excel】 VBAを使って毎回名前...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
VBAでワークシートを引数として...
-
拡張子を元に戻す
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
.txtではなく.logの方が良いの...
-
txtのファイルから編集してもい...
-
バッチファイルで文字列削除に...
-
Windowsのバッチファイルを利用...
-
バッチファイル 複数ファイル...
-
ファイルの最後に文字列挿入
-
テキストファイルのファイル名...
-
psqlでエラーログをとりたい
-
forfilesで検索したファイルを...
-
renameコマンドについて
-
accessでSQL文を使ってcsvファ...
-
コマンドプロンプトでスペース...
-
ファイルを処理中に次の処理に...
-
UWSCでテキストファイルを開い...
-
バッチファイルからVBAに引数を...
おすすめ情報