ヒガサラblog

サラリーマン向けに、仕事を効率良く進めていくための方法についてご紹介しています。プログラミングから対人スキルまでを幅広く掲載中。

ヒガサラblog

【VBA】複数シートを別々のcsvファイルとして一括出力する方法!

f:id:yshgs_elec:20210211194616j:plain

この記事では、複数のシートに記入されているデータを別々のcsvファイルとして一括出力する方法をご紹介していきます。

 

エクセル集計した大量のデータを、ほかのアプリケーションで読み込ませたいときなどに役に立つはずです。

 

それでは早速やっていきます!

 

スポンサーリンク

 

紹介するスキルの概要説明

 まずはじめに今回の記事で紹介する作業内容を簡単にご説明しておきます。

 

まず、以下の画像のようにあるデータがエクセルシート上に記入されており、

f:id:yshgs_elec:20210211192204j:plain

 

このデータと同じようなデータが、3つのシートにそれぞれ記入されている状態です。

f:id:yshgs_elec:20210211192313j:plain


今回はこの3つのシートに記入されているデータを、それぞれ別のcsvファイルとして保存していく作業をVBAにやらせてみたいと思います。

※出力するcsvファイルのファイル名はそれぞれのシート名にすることとします。

⇒data1.csv, data2.csv, data3.csv
 

スポンサーリンク

 

複数シートをcsvファイルとして一括出力するマクロ

 紹介するスキルの概要がわかったところで、早速VBAコードを書いていきましょう!

 以下が先ほど紹介した作業を自動実行してくれるVBAコードです。

◆複数シートをcsv化するVBAコード

Sub make_csv2()
'変数の型を宣言 Dim new_file As Variant
'3つのシートに対して繰り返し処理 For i = 1 To 3 Sheets(i).Activate
'シート名を記憶させる(csvファイル名で使う) new_file = ActiveSheet.Name
'csvファイルとして保存する ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & new_file & ".csv", _ FileFormat:=xlCSV, CreateBackup:=False Next ActiveWorkbook.Close End Sub

 

コード内の要所要所に、コメントをつけておりますので、だいたい何をやっているか理解できるはずです。

基本的には以下の記事のひとつのシートをcsv化する作業を各シートに対して行っているだけです。

 

【VBA】エクセルシートのデータをcsvファイルとして自動保存する方法!

 

⇒csv化する作業をもう少し簡単な状況で確認したい方は合わせて読んでみてください。

 

スポンサーリンク

 

 

サンプルコードの実行結果

 最後に先ほど紹介したVBAコードを実行するとどうなるのかを確認してみましょう。

 

実行する前は以下の画像のように、マクロファイルだけが保存されている状態です。

f:id:yshgs_elec:20210211193523j:plain

 このファイルを開く⇒開発タブ⇒マクロ⇒先ほどのコードを選択⇒実行してみます。

実行すると以下の画像のように何もないエクセル画面が表示されるはずです。

f:id:yshgs_elec:20210210211817j:plain

 形式上あえてこうしているだけですので、この画面は閉じてもらってOKです。

 

実行後に先ほど紹介したマクロが置いてあったフォルダを確認してみましょう。

f:id:yshgs_elec:20210211193804j:plain

 

 以下のように新たに3つのcsvファイルが出力されていますね。

 

このファイルたちの中身を見てみましょう。

f:id:yshgs_elec:20210211193847j:plain

それぞれのcsvファイルの中にもとのマクロファイルに記入されていたデータがしっかりと記入されていますね。

 

さきほど紹介したコードで、複数シートを一括でcsv化できることがしっかりと確認できました。 

 

スポンサーリンク

 

おわりに

というわけで今回は複数のシートに記入されたデータをそれぞれ別のcsvファイルとして出力する方法をご紹介しました。

大量のデータを整理する際にぜひご活用ください。

 

このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。

・日々の残業時間を減らしたい。

・業務をもっと効率的にこなしたい。

・もっと勉強する時間を作りたい。

こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。

 

この記事が役に立ったという方は、ぜひ応援よろしくお願いします。

 ↓ 応援ボタン

にほんブログ村 IT技術ブログ VBAへ
にほんブログ村

 

それではまた!