【コピペでOK】VBAでフォルダ内CSVを一括統合!コピペで使えるコード紹介!

コピペで使えるコード集

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にて販売しています。すぐに活用したいという方はそちらを確認してください。

note ご指定のページが見つかりません
【さらにお得】効率化ツール全セット版も公開中!

Outlook操作やファイル整理など、今後追加されるツールもすべて使い放題になる「まとめ買いセット」も紹介しています。

複数使う予定の方は、こちらの方が圧倒的にお得です。

▼ 効率化ツール全セットはこちら

【DLで使える!】Excel・Outlookの「単純作業」自動化ツール|犬井 | 効率化大全
※2025/1/7にエクセルファイル/CSVの統合ツールを追加しました! 購入いただいた方は、追加ツールは追加費用なしでダウンロード可能です! Outlookで、宛先と添付ファイルだけを変えた似たようなメールの作成『202501_請求書』の...

CSV統合VBAの動作

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

※動作イメージ/複数のCSVが、一つのエクセルにシートごとに保存される。

Office付きで有料AIを月1800円以下で使う方法をコチラで紹介しています!

CSV統合VBAの使い方

フォルダの準備

はじめに、統合したいCSVファイルを一つのフォルダにまとめます。なお、CSVファイル以外は読み込まれませんので、注意してください。

VBAの埋め込み/ボタンの挿入

エクセルの「開発」タブから「Visual Basic」エディタを開きます。そしてVBAコードを「標準モジュール」に貼り付けます。

「開発」を出す設定コードの書き方は、VBAの基礎まとめのページで詳しく解説しています。こちらの記事もぜひ参考にしてみてください。

実行・実行後の結果

[F5]を押すとマクロが実行されます。フォルダ選択ダイアログが表示されるので、統合したいCSVファイルが入ったフォルダを選択します。

なお、フォルダ内のCSVは表示されません。「項目はありません」と表示されますが、[OK]を押してください。

※フォルダ選択画面。フォルダを正しく選択しても、CSVは表示されないので注意

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

【発展】リンク付き目次作成VBAとの組み合わせ

リンク付き目次作成VBAを使用すると、シート名の一覧をリンク付きで作成することができます。

CSVを一つにまとめて、目次シートからリンクで飛べるようになるので、とても便利なVBAとなります。

※リンク付き目次サンプル。シート名の一覧をリンク付きで自動作成できる。

リンク付き目次作成VBAは下記で詳しく紹介しています。ぜひこちらも参考にしてみてください。

まとめ

CSVの統合は、パワークエリやPower BIでも行うことができます。どちらもコードが不要なので初心者向きに見えますが、実はVBAが一番手順が少なく簡単なやり方です。コードさえ用意できれば、あとは貼り付け→実行で動作ができるので、一番おすすめです。

このブログでは、このように日常業務が楽になるテクニックから、VBA等のスキルになる情報まで幅広く紹介しています。また現在、Office+生成AI2年間月1800円以下で使える、お得なキャンペーンをMicrosoftが実施しています。裏技的なやり方ですが大変お得なキャンペーンなので、興味がある方はぜひこの記事も参考にしてみてください!

MicrosoftのOffice+生成AIが月1800円以下で使えるお得な裏技はコチラ

コメント

タイトルとURLをコピーしました