この記事では、【Excel】VBAマクロでファイル出力(テキストファイルやcsv:utf-8:Shift-jisの文字コード:出力先指定など)する方法について解説していきます。
ポイントとしては
`FileSystemObject`と
`GetSaveAsFilename`
メソッドの使用です。
特に、初心者の方にもわかりやすく説明するため、変数名は日本語をローマ字にしたユニークな表現を採用しています。実際に使用する際は、これらの変数名を適切な英語表記に変更してご利用ください。
それでは、具体的なステップに沿って詳しく見ていきましょう!
VBAマクロでテキストファイル出力(アクティブシートの内容すべてを出力:utf-8の文字コード:ダイヤログで出力先指定)
それではまず、エクセルブック内のアクティブシートの内容をUTF-8のテキストファイルとして出力する方法について解説していきます。
この手順では、ユーザーが保存先を選択できるダイヤログボックスを使用します。
「Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。」
Sub TextFileOutputUTF8()
Dim hozonbasho As Variant
hozonbasho = Application.GetSaveAsFilename(FileFilter:="テキストファイル (*.txt), *.txt", Title:="保存先を選択してください")
If hozonbasho <> False Then
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim fileStream As Object
Set fileStream = fso.CreateTextFile(hozonbasho, True, True) ' True for overwrite, True for Unicode
Dim sh As Worksheet
Set sh = ThisWorkbook.ActiveSheet
Dim r As Range
For Each r In sh.UsedRange.Rows
fileStream.WriteLine Join(Application.Transpose(Application.Transpose(r.Value)), vbTab)
Next r
fileStream.Close
End If
End Sub
コードのAlt+F8を押し、マクロ選択画面でTextFileOutputUTF8関数を実行します。
このコードでは、まずユーザーが保存先(出力先)を選択するダイヤログボックスを表示します。
次に、選択されたパスに新しいテキストファイルを作成し、アクティブシートの内容を行ごとに書き込んでいきます。
ファイルのエンコーディング(文字コード)はUTF-8にとしています。
VBAマクロでcsvファイル出力(アクティブブックの内容すべてを出力:Shift-jisの文字コード:ダイヤログで出力先指定)
続いては、アクティブブックの内容すべてを文字コードがShift-JISのCSVファイルとして出力する方法について解説していきます。
こちらもユーザーが保存先を選択するダイヤログボックスを使用します。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub ExportSheetsToCSV()
Dim sh As Worksheet
Dim hozonbashoCSV As Variant
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
For Each sh In ThisWorkbook.Sheets
hozonbashoCSV = Application.GetSaveAsFilename(InitialFileName:=sh.Name, _
FileFilter:="CSVファイル (*.csv), *.csv", _
Title:="保存先を選択してください(" & sh.Name & "シート)")
If hozonbashoCSV <> False Then
Dim fileStream As Object
Set fileStream = fso.CreateTextFile(hozonbashoCSV, True, False) ' True for overwrite, False for non-Unicode (Shift-JIS)
Dim r As Range
For Each r In sh.UsedRange.Rows
fileStream.WriteLine Join(Application.Transpose(Application.Transpose(r.Value)), ",")
Next r
fileStream.Close
End If
Next sh
End Sub
コードのAlt+F8を押し、マクロ選択画面でCSVFileOutputShiftJIS関数を実行します。
このマクロは、アクティブブックの各シートについて、ユーザーが選択した場所にそれぞれ異なるCSVファイルとして保存します。
(保存先のファイル名を選択するダイヤログボックスがシートごとに表示され、ユーザーはそれぞれのシートのデータを異なるファイルに出力可能)
まとめ VBAマクロでファイル出力(テキストファイルやcsv:utf-8:Shift-jisの文字コード:出力先指定など)する方法
この記事では、VBAマクロでファイル出力(テキストファイルやcsv:utf-8:Shift-jisの文字コード:出力先指定など)する方法について確認しました。
マクロをマスターし、より快適に生活していきましょう!