エクセルシートをCSV形式で出力するマクロの作り方【VBAサンプルコードあり】

SE・情シス担当歴20年のコウノです。
取引先にデータを送るときやシステムにアップロードするときにCSV形式のデータを求められることは多いですよね?エクセルで用意した表をそのままCSVで保存できたら便利だと思いませんか?
本記事では、エクセルのシートをワンクリックでCSV出力するマクロの作り方をサンプルコードを交えて解説します。記事後半では、様々な用途に合わせてCSVを出力する方法も解説します。
エクセルマクロを作り始めて20年の私の経験をもとに、開発テクニックを解説しますのでぜひ参考にしてください。
なお、エクセルマクロの作り方は理解しているから、エクセルを業務改善に活用する方法を知りたいという人はお気軽に下記リンクからメッセージください。
\自社にノウハウが貯まる業務代行/「パソコン業務・情シス代行」を詳しく読む
処理概要と活用事例

シートに作った表をワンクリックでCSV出力するマクロです。
CSV形式のデータ提出が求められるときに活用できます。取引先にメールで資料を添付するだけでなく、システムにアップロードする機会も多くなり、CSVを取り扱う頻度も高くなっていると思います。簡単にCSVを作ることができる仕組みを用意できると業務効率化につながるのではないでしょうか。
VBAサンプルコード:エクセルシートをCSV形式でファイル出力する
処理フロー
- CSVの保存先となるファイルパスとファイル名を決めます
- データシートに作った表を読み込みます。
- 各セルの値をカンマでつないで、保存先のファイルに書き込みます。
応用編
各項目をダブルクォーテーションで囲む
各項目をダブルクォーテーション「"」で囲んだCSVを求められることもあります。その場合は、以下のように変更します。
「UTF-8」でもCSV形式でファイル出力できるようにする
エクセルで取り扱うデータは「Shift_JIS」という文字コードを採用しています。日本では標準的な文字コードで広く採用されていますが、ときどき「UTF-8」という文字コードでCSVを作るように求められることもあります。
VBAサンプルコード
文字コードを指定してから、CSVを出力できるようなマクロに変更してみます。

「UTF-8」は世界的に標準的な文字コードで、主にWebサイトで採用されています。ホームページに掲載するようなデータを提供する際に「UTF-8」でCSVを作る機会が多くあります。
エクセルを活用して業務改善する方法
本記事ではシートをCSV出力するマクロの作り方を解説しました。エクセルを活用して業務を効率化する方法はたくさんあります。もっと知りたいというかたは以下の記事を参考にしてみてください。


RPA・ITツール導入・検討