HiÐΞClassic

VBAを使用してCSVファイルを効率的に結合する方法

SHOGAKU
3 months ago
VBAを使用してCSVファイルを効率的に結合する方法目的完全なVBAコード使用方法コードの説明注意点まとめ

VBAを使用してCSVファイルを効率的に結合する方法

こんにちは!今回は、複数のCSVファイルを1つのExcelシートにまとめる方法をVBAを使って解説します。この方法は、大量のデータを扱う際に非常に便利です。

目的

  • 指定フォルダ内の全CSVファイルを結合
  • 結合したデータを新しいシートに貼り付け
  • 1つ目のファイルのヘッダー情報を保持

完全なVBAコード

以下が、目的を達成するための完全なVBAコードです:

Sub CombineCSVFiles()
    Dim folderPath As String
    Dim fileName As String
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim destWs As Worksheet
    Dim lastRow As Long
    Dim fileNum As Integer
    
    ' "合体"シートを設定
    Set ws = ThisWorkbook.Sheets("合体")
    
    ' "データまとめ"シートを設定(存在しない場合は作成)
    On Error Resume Next
    Set destWs = ThisWorkbook.Sheets("データまとめ")
    On Error GoTo 0
    If destWs Is Nothing Then
        Set destWs = ThisWorkbook.Sheets.Add
        destWs.Name = "データまとめ"
    Else
        destWs.Cells.Clear
    End If
    
    ' フォルダパスを取得
    folderPath = ws.Range("B2").Value
    If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
    
    ' CSVファイルを処理
    fileName = Dir(folderPath & "*.csv")
    fileNum = 0
    
    Do While fileName <> ""
        fileNum = fileNum + 1
        Set wb = Workbooks.Open(folderPath & fileName)
        
        If fileNum = 1 Then
            ' 1つ目のファイルの場合、ヘッダー行をコピー
            wb.Sheets(1).Rows(3).Copy Destination:=destWs.Rows(1)
            lastRow = 1
        End If
        
        ' データ行をコピー
        lastRow = destWs.Cells(destWs.Rows.Count, "A").End(xlUp).Row
        wb.Sheets(1).Range("A4:Z" & wb.Sheets(1).Cells(wb.Sheets(1).Rows.Count, "A").End(xlUp).Row).Copy _
            Destination:=destWs.Cells(lastRow + 1, 1)
        
        wb.Close SaveChanges:=False
        fileName = Dir()
    Loop
    
    MsgBox "CSVファイルの合体が完了しました。", vbInformation
End Sub

使用方法

  1. Excelファイルに"合体"という名前のシートを作成します。
  2. "合体"シートのB2セルに、CSVファイルが格納されているフォルダパスを入力します。
  3. VBAエディタを開き、新しいモジュールに上記のコードを貼り付けます。
  4. マクロを実行します。

コードの説明

  1. 必要なシートの設定:

    • "合体"シートから作業を開始
    • "データまとめ"シートを作成または初期化
  2. CSVファイルの処理:

    • 指定されたフォルダ内のCSVファイルを順に開く
    • 1つ目のファイルの3行目(ヘッダー)を結果シートの1行目にコピー
    • 各ファイルの4行目以降のデータを結果シートに追加
  3. 結果の表示:

    • すべてのファイルの処理が終わったら完了メッセージを表示

注意点

  • CSVファイルは4行目からデータが始まることを前提としています。
  • デフォルトでA列からZ列までのデータを処理します。必要に応じて範囲を調整してください。
  • 既存の"データまとめ"シートがある場合、その内容は上書きされます。

まとめ

このVBAマクロを使用することで、大量のCSVファイルを簡単に1つのExcelシートにまとめることができます。データ分析や報告書作成の際の作業効率が大幅に向上するでしょう。

ぜひ試してみてください。質問やカスタマイズの要望があれば、コメントでお知らせください!



コメント
いいね
投げ銭
最新順
人気順
SHOGAKU
3 months ago
コメント
いいね
投げ銭
最新順
人気順
トピック
アプリ

Astar Network

DFINITY / ICP

NFT

DAO

DeFi

L2

メタバース

BCG

仮想通貨 / クリプト

ブロックチェーン別

プロジェクト

目次
Tweet
ログイン