エクセル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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
多量のファイルをフォルダに自動振り分けするマクロを教えて下さい。
PowerPoint(パワーポイント)
-
ExcelVBA メモ帳を起動し名前を付けて指定フォルダに保存
Visual Basic(VBA)
-
エクセルのデータをメモ帳に貼り付けて名前を付けて保存する方法
Visual Basic(VBA)
-
-
4
VBA でメモ帳へ保存する際の保存先フォルダの指定
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
.txtではなく.logの方が良いの...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
psqlでエラーログをとりたい
-
UWSCでファイルを開く方法
-
Perlでリモートコピー
-
バッチファイルで文字列削除に...
-
MS-DOSのバッチファイルの中で...
-
Windowsのバッチファイルを利用...
-
forfilesで検索したファイルを...
-
ファイルのアクセス権を得る
-
★★★PowerShellのpatternについ...
-
[C/C++]プリプロセッサのファイ...
-
wikiでローカルファイルのリン...
-
テキストファイルのタブをカン...
-
Windows マシンでFTPバッチが動...
-
VBSでFTPを記述できますか?
-
エクセルVBA テキストに出力、...
-
エクセルの各セルの内容をそれ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチ処理でファイルの中身を...
-
.txtではなく.logの方が良いの...
-
VBAでワークシートを引数として...
-
多数のサブディレクトリ内のフ...
-
COPYコマンドで結合すると余計...
-
拡張子を元に戻す
-
テキストファイルで提出とは?
-
ファイルの最後に文字列挿入
-
バッチファイル 複数ファイル...
-
バッチファイルで文字列削除に...
-
renameコマンドについて
-
forfilesで検索したファイルを...
-
accessでSQL文を使ってcsvファ...
-
バッチファイルからVBAに引数を...
-
psqlでエラーログをとりたい
-
UWSCでテキストファイルを開い...
-
cshでファイルサイズ取得
-
MS-DOSのバッチファイルの中で...
-
コマンドプロンプトで指定した...
-
テキストファイルのタブをカン...
おすすめ情報