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

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

作業をしていて、特定の部分を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ファイル形式で保存 という流れで処理します。

これで簡単にCSVファイルを出力することができます。

もちろん途中に加工する処理をつけくわえれば
より業務の効率化等の幅が広がります。

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

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

スポンサーリンク

シェアする

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

フォローする