この記事では、複数のエクセルシートに記入されているデータを、別々のcsvファイルとして一括出力する方法をご紹介していきます。
エクセル集計した大量のデータを、ほかのアプリケーションで読み込ませたいときなどに役に立つはずです。
それでは早速やっていきます!
紹介するスキルの概要説明
まずはじめに今回の記事で紹介する作業内容を簡単にご説明しておきます。
まず、以下の画像のようにあるデータがエクセルシート上に記入されており、
このデータと同じようなデータが、3つのシートにそれぞれ記入されている状態です。
今回はこの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コードを実行するとどうなるのかを確認してみましょう。
実行する前は以下の画像のように、マクロファイルだけが保存されている状態です。
このファイルを開く⇒開発タブ⇒マクロ⇒先ほどのコードを選択⇒実行してみます。
実行すると以下の画像のように何もないエクセル画面が表示されるはずです。
形式上あえてこうしているだけですので、この画面は閉じてもらってOKです。
実行後に先ほど紹介したマクロが置いてあったフォルダを確認してみましょう。
以下のように新たに3つのcsvファイルが出力されていますね。
このファイルたちの中身を見てみましょう。
それぞれのcsvファイルの中にもとのマクロファイルに記入されていたデータがしっかりと記入されていますね。
というわけで、さきほど紹介したコードで、複数シートを一括でcsv化できることがしっかりと確認できました。
おわりに
というわけで今回は複数のシートに記入されたデータをそれぞれ別のcsvファイルとして出力する方法をご紹介しました。
大量のデータを整理する際にぜひご活用ください。
このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
・日々の残業時間を減らしたい。
・業務をもっと効率的にこなしたい。
・もっと勉強する時間を作りたい。
こんな思いを持っている人は、ぜひ他の記事も見てみてください。
この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント