人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルに入力したデータを複数のテキストデータに一括で書き出す方法はないものでしょうか。

<<エクセル>>
=================================
品種 地区 品名 数量 金額
=================================
AA 東京 CCC 8 3

BB 大阪 QQQ 6 2

CC 埼玉 BBB 2 1


========================================
<<テキスト>>

【AA】←ファイル名

●地区
東京

●品名
CCC

●数量
8

●金額
3
=================================

以下、BBのファイルは大阪の情報、CCのファイルには埼玉の情報といった具合。



毎回面倒で仕方ないので、シェアウェア導入しても良いので、何とかしたいです。

●質問者: takllin
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● uwao

予めAA BB CCのシートを作成し、テキストとして表示したい画面を作成しておきます。
シート作成後、各シートを自動的にCSV形式で保存するようなマクロを組んでは如何でしょうか。

AAのシートのA列に
●地区
東京

●品名
CCC

●数量
8

●金額
3

のように表示させていると、そのままテキストとして保存出来ると思います。


takllinさんのコメント
ありがとうございます。 そのマクロが知りたいのです。 同じような質問を参考にしてみましたが、エラーが出てしまいうまくいきませんでした。

2 ● ku__ra__ge

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
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ