エクセルシート上のデータをcsvファイルとして自動出力したい。
それならこの記事のVBAコードを実行するだけでOK。
というわけで、この記事では、作業中のエクセルシートの情報を、csvファイルとして同じ作業フォルダに出力する方法をご紹介していきます。
それでは早速やりかたをご紹介していきましょう!
紹介するスキルの概要説明
今回は、以下の画像のように、あるマクロ有効ブック(.xlsmファイル)に記入されているデータを、csvファイルとして出力していきます。
また、このデータはdata1という名前のシートに記入されています。
今回はこのデータを、シート名と同じ名前のcsvファイルとして出力していくことにします。
つまりこのファイルをcsv化するとdata1.csvというファイルになるということです。
事前説明はこのくらいにして、実際にコードを書いていきましょう。
シートをcsvファイルとして出力する方法
早速ですが、以下がシート内のデータをcsvファイルとして出力するVBAコードです。
◆シート内のデータをcsvファイルとして出力するVBAコード
Sub make_csv1()
'変数の型を宣言
Dim new_file As Variant
'現在のシート名を記憶させる(csvファイル名として使う)
new_file = ActiveSheet.Name
'csvファイルとして保存する
ActiveWorkbook.SaveAs ThisWorkbook.Path & "\" & new_file & ".csv", _
FileFormat:=xlCSV, CreateBackup:=False
'ファイルを閉じる
ActiveWorkbook.Close
End Sub
基本的にはそれぞれの処理でコメントをつけておりますので、何をやっているかはなんとなくイメージできるはずです。
なお、最後のActiveWorkbook.Closeはなくても問題ありませんが、つけてないと私は結構混乱するのでつけるようにしています。
(気になる方ははずして実行してみてください。きっと混乱します。)
サンプルコードの実行結果の確認
コードが記述できたら、実行してみましょう。
まずは実行前の状況確認です。
実行前は、以下のようにコードを記述してある(データ集計をした)ファイルだけが保存されている状態です。
このファイルを開いて、
開発⇒マクロ⇒さっき書いたコードを選択⇒実行
でマクロを実行します。
すると以下の画像のように何もないエクセル画面が表示されるはずです。
この画面は閉じてもらって先ほどのフォルダの中身を確認してみましょう。
もともとのファイルと同じフォルダ内に、新たにcsvファイルが保存されていますね。
(ファイル名がもとのファイルのシート名に使われていたものと同じになっていることをご確認ください。)
新たにできたファイルの中身を開いてみると、以下のように最初にお見せしたデータと全く同じものが入っていますね。
というわけで、今回のコードを実行することで、しっかりとcsvファイルとして自動保存できることが確認できました。
また、以下の記事では今回使用した使用したスキルを複数のエクセルシートに一括適用する方法もご紹介しています。
興味があればこちらもあわせてご覧ください。
【VBA】複数シートを別々のcsvファイルとして一括出力する方法!
おわりに
というわけで今回はシート上のデータをcsvファイルとして自動保存する方法をご紹介しました。
大量のデータをcsvとして出力する際にぜひご活用ください。
このように私のブログではエクセルスキルはもちろん、様々なプログラミングスキルを紹介しています。
・日々の残業時間を減らしたい。
・業務をもっと効率的にこなしたい。
・もっと勉強する時間を作りたい。
こんな思いを持っている人は、ぜひ他の記事も見てみてくださいね。
この記事が役に立ったという方は、ぜひ応援よろしくお願いします。
↓ 応援ボタン
それではまた!
コメント