VBAマクロでワークシートを新規CSVで出力する簡単な方法
こんちには、説也です。😀
今回は、エクセルマクロで簡単にワークシートの内容を書き出して保存するコードを紹介します。
自分の日々の業務においても、よく使用するコードなのでメモ代わりに投稿しています。
※ 業務効率化を促進させるサンプルコードを多数掲載
プログラマーとしてではなく「ともかく業務を効率化できる部分のコードだけ知りたい」という方は、下記の書籍が参考になるかもしれません。サンプルコードがダウンロードできるので、業務ですぐに使えると思います。
書籍:Excel自動化 最強 時短仕事術
さっそくコードから紹介します。
プログラムソースの全体像
'+-------------------------------------------------------------------+
'+ 変数宣言
'+-------------------------------------------------------------------+
Dim 保存先 As String
'
'+-------------------------------------------------------------------+
'+ 初期処理
'+-------------------------------------------------------------------+
保存先 = ThisWorkbook.Path & "\CSV.csv"
'
'+-------------------------------------------------------------------+
'+ シートコピー
'+-------------------------------------------------------------------+
Sheets("シート名").Copy
'
'+-------------------------------------------------------------------+
'+ CSV出力
'+-------------------------------------------------------------------+
ActiveWorkbook.SaveAs 保存先, FileFormat:=xlCSV
ActiveWorkbook.Close
'
解説
変数宣言
Dim 保存先 As String
書き出したCSVファイルの保存先ディレクトリを格納しておく変数を宣言しています。
変数名の保存先は任意で指定できます。
初期処理
保存先 = ThisWorkbook.Path & "\CSV.csv"
“保存先"という変数に、書き出し先のディレクトリパスと保存ファイル名を指定します。
ThisWorkbook.Path は、実行ファイルのディレクトリの場所が展開されます。
ThisWorkbook.Pathを使用せずに、ディレクトリパスを直接指定することも可能です。
その際は「"」ダブルコーテーションで括る必要があります。
“\CSV.csv" は、保存ファイル名になります。
任意で、保存したいファイル名を指定しましょう。
その際、拡張子に".csv"を指定し忘れないようにしましょう。
シートコピー
Sheets("シート名").Copy
上記のコードが実行されると、指定したシートの内容が全てコピーされます。
“シート名"の部分は、任意で指定することができます。
“シート名"は、実行するファイル内に実在するシート名を指定するようにしましょう。😀
※この段階では、内部的にコピーされるだけなので出力は行われません。
のちに実行するコードで出力を行う必要があります。
新規CSV出力
ActiveWorkbook.SaveAs 保存先, FileFormat:=xlCSV
上記コードが、実行されると
“保存先"に指定した、ディレクトリにコピーした内容がCSV形式に変換されて出力されます。
ActiveWorkbook.SaveAs 保存先でコピーした内容を保存先に保存という意味になります。
FileFormat:=xlCSVで保存形式を指定できます。
今回はCSV形式に変換を行うので、xlCSVを指定しています。
ActiveWorkbook.Close
上記コードが、実行されると
新規で書き出されたCSVファイルを閉じます。
あとがき
今回、ワークシートに保存された内容を一括でCSVに変換して別ファイルに保存する方法を紹介させていただきました。とってもシンプルで簡単だったかと思います。
CSVの出力は、多様な業務で使用できるかと思いますので、参考にしてもらえると嬉しいです。
参考になったと思われた方はリツイートなどで拡散して頂けると、筆者が喜びます。
ここまで、読んでいただき、ありがとうございます。😀
ディスカッション
コメント一覧
利用させていただきました。
すごくわかりやすかったです♪
ありがとうございました。
読んでいただきましてありがとうございます。
お役に立てて光栄です。