【Excel VBA】選択範囲をCSVファイルとして出力する

スポンサーリンク

選択範囲をCSVファイルとして出力する

Excelで作業をしていて、特定の部分(範囲)をCSVファイルに出力し
他のアプリケーションのインポートデータとして使用することがあります。

仮にExcel内の一部のデータが対象データとして
その都度、それをCSVファイルに出力することは大変面倒だと思います。

そこで、範囲選択した部分をCSVファイルとして出力するVBAマクロをご紹介します。

サンプルコード

Private Sub SENTAKU_CSV()

Dim sname As String
Dim bookpath As String
Dim rng As String
Dim strCsvFile As String

‘ 選択範囲のセルアドレス
rng = Selection.Address

sname = ActiveSheet.Name ‘シート名
bookpath = ActiveWorkbook.Path ‘フォルダパス

‘ 保存CSVファイル名
strCsvFile = bookpath & “\” & sname & “.csv”

‘ 新しいシートを追加し、選択範囲をコピー
Worksheets(sname).Range(rng).Copy
Worksheets.Add.Range(“A1”).PasteSpecial Paste:=xlPasteValues

‘ 新しいブックを作成し、そこにシートを移動する
ActiveSheet.Move

‘ 上書きのメッセージを表示させない
Application.DisplayAlerts = False
‘ CSV形式でファイル保存
ActiveWorkbook.SaveAs Filename:=strCsvFile, FileFormat:=xlCSV
‘ 保存せずに閉じる
ActiveWorkbook.Close savechanges:=False
‘ メッセージ表示を戻す
Application.DisplayAlerts = True

End Sub

解説

「Selection.Address」で現在選択しているセルを取得します。

そして、
①「新規シート」作成
②「①」に選択したセルの内容を貼り付け
③新規Book作成、
④「②」の新規シートを「③」のBookに移動
⑤「④」をCSVファイル形式で保存
という流れで処理します。

ポイントは、保存のときに「Application.DisplayAlerts = False」で
保存ダイアログ画面を省略している点です。
これがデフォルトのままだと、上書き確認が行われて処理が中断してしまいます。
また、ファイル形式をCSVに指定しているのが
「ActiveWorkbook.SaveAs Filename:=strCsvFile, FileFormat:=xlCSV」の「FileFormat:=xlCSV」です。

まとめ

簡単にCSVファイルを出力することができます。
もちろん途中にデータを加工する処理をつけくわえれば
それだけ手作業の手間が減りますので、より業務の効率化等の幅が広がります。

また今後もExcelやVBAについてお役立ち情報などご紹介していきたいと思います!!

以上、「【Excel VBA】選択範囲をCSVファイルとして出力する」でした。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする