CSVのデータを統合したいけど、いちいち開けるのは面倒
沢山あるCSVのどこに必要なデータがあるかわからない…
社内業務で溜まってしまいがちなのが、システムから出力されるCSVファイルです。CSVはエクセルで編集でき便利ですが、一つずつ開けて確認する手間がかかりますよね。溜まってしまうと、ほしいデータを見つけるだけで、かなりの時間がかかってしまいます。
そんな時に便利なのが、今回紹介するCSV統合VBAです。このVBAでは、フォルダに入っているCSVを一つのエクセルにまとめることができます。これにより検索性が格段に向上します。さらに、目次作成VBAを使用することで、一覧を作成しより見やすいファイルが作成できます。
この記事ではVBAが使えない人でもわかるように、コピペで使えるコードを使って環境設定から紹介しています。ぜひこの記事を参考に、VBAの効率化を行ってみてください。
【結論】コピペで使えるCSV統合VBA
以下のコードをコピペするだけで、指定したフォルダ内のCSVファイルをエクセルに統合できます。
各CSVはシートとして追加され、CSVのファイル名がシート名になります。
Sub ImportCSVFilesToExcel()
Dim folderPath As String
Dim csvFile As String
Dim wb As Workbook
Dim ws As Worksheet
Dim csvData As Workbook
Dim csvSheet As Worksheet
Dim fileDialog As Object
Dim i As Integer
' フォルダ選択ダイアログを表示
Set fileDialog = Application.fileDialog(msoFileDialogFolderPicker)
fileDialog.Title = "CSVファイルが入っているフォルダを選択してください"
If fileDialog.Show = -1 Then
folderPath = fileDialog.SelectedItems(1) ' 選択したフォルダパスを取得
Else
MsgBox "フォルダが選択されていません。処理を中止します。"
Exit Sub
End If
' 新しいワークブックを作成
Set wb = Workbooks.Add
' フォルダ内のCSVファイルを順番に処理
csvFile = Dir(folderPath & "\*.csv")
Do While csvFile <> ""
' CSVファイルを開く
Set csvData = Workbooks.Open(folderPath & "\" & csvFile)
' CSVファイルの内容を新しいシートに
Set csvSheet = csvData.Sheets(1)
csvSheet.Copy After:=wb.Sheets(wb.Sheets.Count) ' 新しいシートにコピー
' CSVファイルを閉じる
csvData.Close False
' 次のCSVファイルを取得
csvFile = Dir
Loop
' 初期シート(最初のシート)を削除
Application.DisplayAlerts = False ' 削除確認ダイアログを非表示にする
wb.Sheets(1).Delete
Application.DisplayAlerts = True ' 削除確認ダイアログを再表示
' 終了メッセージ
MsgBox "CSVファイルのインポートが完了しました!"
End Sub
Office付きで有料AIを月1800円以下で使う方法をコチラで紹介しています!
【番外】すぐ使えるエクセルファイル
VBAが分からないという方向けに、VBAが入ったエクセルファイルを用意しました。ダウンロードしてフォルダを選択するだけで、CSVファイルの統合ができます。
ファイルはnoteにて販売しています。すぐに活用したいという方はそちらを確認してください。

【さらにお得】効率化ツール全セット版も公開中!
Outlook操作やファイル整理など、今後追加されるツールもすべて使い放題になる「まとめ買いセット」も紹介しています。
複数使う予定の方は、こちらの方が圧倒的にお得です。

CSV統合VBAの動作
フォルダに入っているCSVを、一つのエクセルファイルにまとめるVBAになります。新しいエクセルにコードを打ち込んで使用します。

Office付きで有料AIを月1800円以下で使う方法をコチラで紹介しています!
CSV統合VBAの使い方
フォルダの準備
はじめに、統合したいCSVファイルを一つのフォルダにまとめます。なお、CSVファイル以外は読み込まれませんので、注意してください。

VBAの埋め込み/ボタンの挿入
エクセルの「開発」タブから「Visual Basic」エディタを開きます。そしてVBAコードを「標準モジュール」に貼り付けます。
「開発」を出す設定やコードの書き方は、VBAの基礎まとめのページで詳しく解説しています。こちらの記事もぜひ参考にしてみてください。
実行・実行後の結果
[F5]を押すとマクロが実行されます。フォルダ選択ダイアログが表示されるので、統合したいCSVファイルが入ったフォルダを選択します。
なお、フォルダ内のCSVは表示されません。「項目はありません」と表示されますが、[OK]を押してください。

CSVがエクセルのシートになって、保存されます。なお、シート名はCSVのファイル名です。

【発展】リンク付き目次作成VBAとの組み合わせ
リンク付き目次作成VBAを使用すると、シート名の一覧をリンク付きで作成することができます。
CSVを一つにまとめて、目次シートからリンクで飛べるようになるので、とても便利なVBAとなります。

リンク付き目次作成VBAは下記で詳しく紹介しています。ぜひこちらも参考にしてみてください。
まとめ
CSVの統合は、パワークエリやPower BIでも行うことができます。どちらもコードが不要なので初心者向きに見えますが、実はVBAが一番手順が少なく簡単なやり方です。コードさえ用意できれば、あとは貼り付け→実行で動作ができるので、一番おすすめです。
このブログでは、このように日常業務が楽になるテクニックから、VBA等のスキルになる情報まで幅広く紹介しています。また現在、Office+生成AIを2年間月1800円以下で使える、お得なキャンペーンをMicrosoftが実施しています。裏技的なやり方ですが大変お得なキャンペーンなので、興味がある方はぜひこの記事も参考にしてみてください!
MicrosoftのOffice+生成AIが月1800円以下で使えるお得な裏技はコチラ!







コメント