ねぇもりさん、Excelブックの各シートをCSV(TXT)ファイルにしたいんだ。
なにかラクな方法ないかなぁ?
もり
それなら、マクロでまとめてファイル作成するツールを作っちゃおう
Excelブック内の全シートを、シート毎に「CSVファイル」or「テキストファイル」にして保存するマクロを紹介します。
(例)ブック内に5シートある場合、5つのCSVファイルが作成されます。
スポンサーリンク
ExcelブックからCSVファイルを作成する
まずはCSVファイルを作成するマクロの紹介です。テキスト(TXT)ファイルを作成したい方は、次の項へ進んでください。
下記のコードを標準モジュールに貼り付けて使用してください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Sub ファイル一括作成() Application.ScreenUpdating = False '対象ブックをダイアログで指定する Dim FName As String FName = Application.GetOpenFilename _ (FileFilter:="Microsoft Excelブック,*.xls*") If FName <> "False" Then Workbooks.Open FileName:=FName Else Exit Sub 'ファイルが選択されていない場合は終了 End If Dim ws As Worksheet For Each ws In Worksheets '各シートに対して処理を繰り返す ws.Activate '元のブックと同じ階層に出力 ActiveWorkbook.SaveAs _ FileName:=ActiveWorkbook.Path & "\" & ws.Name & ".csv", _ FileFormat:=xlCSV Next ws ActiveWorkbook.Close SaveChanges:=False MsgBox "ファイル作成が完了しました。" End Sub |
マクロの使い方
マクロを実行すると「ファイルを開く」ダイアログが出現します。
- CSVの元になるExcelブックを選択する
- 「開く」を押す
処理が終了するとメッセージがでます。
これで、Excelブックと同じフォルダ階層にCSVファイルが出力されています。
Excelブックからテキストファイルを作成する
上記のコードを少し変えるだけで、テキストファイルになります!22~23行目を書き換えます。
①拡張子
.csv → .txt
②ファイルフォーマット
xlCSV → xlText
1 2 |
FileName:=ActiveWorkbook.Path & "\" & ws.Name & ".txt", _ FileFormat:=xlText |
これで「タブ区切りのテキストファイル」を作成できます。
元データと同じブックにマクロを含ませる
今回の記事で紹介したのは、CSV(TXT)ファイルを作成するための「独立したツール」です。
1度ツールを作っておけば、様々な場面で使いまわしができるので便利ですね。
一方、元データのブックに直接マクロを含ませる方法もあります。
こちらの記事もぜひご覧ください。
【ExcelVBA】ブック内のシートをタブ区切りのテキスト形式で保存するExcelブック内のアクティブシートからタブ区切りのテキストファイルを作成するマクロの紹介です。ボタンをワンクリックするだけでラクラクOK!...
スポンサーリンク
スポンサーリンク