- ベストアンサー
Excel VBAで複数のテキストファイルを自動生成する方法
- Excelの特定の範囲のデータを取得し、ファイル名とテキストの内容を指定して複数のテキストファイルを自動生成する方法について解説します。
- VBAを使用して、Excelの特定の範囲のデータを取得する方法を解説します。また、取得したデータをファイル名とテキストの内容として指定し、複数のテキストファイルを自動生成する方法についても説明します。
- Excel VBAを利用して、特定の範囲のデータを取得し、それをファイル名とテキストの内容として指定して複数のテキストファイルを自動生成する方法について詳しく解説します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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
その他の回答 (2)
- jcctaira
- ベストアンサー率58% (119/204)
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 ※出力フォルダは変更してください。
- BookerL
- ベストアンサー率52% (599/1132)
とりあえず書いてみたものです。 "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です 勉強の意味でも、補足していただければとても助かります。 宜しくお願いします。
お礼
色々考慮までしただいてとても嬉しく思います! 動作確認できました^^ ありがとうございます!