<<エクセル>>
=================================
品種 地区 品名 数量 金額
=================================
AA 東京 CCC 8 3
BB 大阪 QQQ 6 2
CC 埼玉 BBB 2 1
========================================
<<テキスト>>
【AA】←ファイル名
●地区
東京
●品名
CCC
●数量
8
●金額
3
=================================
以下、BBのファイルは大阪の情報、CCのファイルには埼玉の情報といった具合。
毎回面倒で仕方ないので、シェアウェア導入しても良いので、何とかしたいです。
予めAA BB CCのシートを作成し、テキストとして表示したい画面を作成しておきます。
シート作成後、各シートを自動的にCSV形式で保存するようなマクロを組んでは如何でしょうか。
AAのシートのA列に
●地区
東京
●品名
CCC
●数量
8
●金額
3
のように表示させていると、そのままテキストとして保存出来ると思います。
1行目のA列から列タイトルが記入されており、2行目以降にデータが記入されている前提で、
その内容をファイルに出力するマクロです。
ファイルに出力したいシートを表示して、outputFilesマクロを実行してください。
Sub outputFiles() Set colList = getColItems(Range("A1")) Set r = Range("A2") Do While r.Text <> "" Set dataList = getColItems(r) Call outputFile(colList, dataList) Set r = r.Offset(1, 0) Loop MsgBox "終わりました" End Sub Private Function getColItems(baseRange) Set getColItems = New Collection Set r = Cells(baseRange.Row, baseRange.Column) Do While r.Text <> "" Call getColItems.Add(r.Text) Set r = r.Offset(0, 1) Loop End Function Private Sub outputFile(colList, dataList) Set fso = CreateObject("Scripting.FileSystemObject") file = fso.GetParentFolderName(ActiveWorkbook.FullName) & "\" & dataList(1) & ".txt" Set ts = fso.OpenTextFile(file, 2, True) For i = 2 To colList.Count Call ts.WriteLine("●" & colList(i)) Call ts.WriteLine(dataList(i)) Call ts.WriteLine("") Next ts.Close End Sub
ありがとうございます。
2012/07/19 05:56:12そのマクロが知りたいのです。
同じような質問を参考にしてみましたが、エラーが出てしまいうまくいきませんでした。