Excel VBA | フォルダ内の全 CSV を 1 枚の Excel に統合するテンプレート

Excel VBA VBA
スポンサーリンク

今回は 「保存ファイル名に日付を付ける版」「複数の保存形式(CSV/Excel両方)を同時に出力する版」 を紹介します。


1. 保存ファイル名に日付を付ける版

保存時にファイル名へ日付を付与しておくと、世代管理や履歴追跡が容易になります。

Sub SaveMergedWithDate()
    Dim wsMaster As Worksheet
    Dim newWb As Workbook
    Dim savePath As String
    Dim todayStr As String
    
    Set wsMaster = ThisWorkbook.Sheets("Master")
    
    ' 新しいブックを作成
    Set newWb = Workbooks.Add
    wsMaster.UsedRange.Copy newWb.Sheets(1).Cells(1, 1)
    
    ' 日付文字列(例: 2025-11-20)
    todayStr = Format(Now, "yyyy-mm-dd")
    
    ' 保存先パス(例: デスクトップ)
    savePath = Environ("USERPROFILE") & "\Desktop\MergedResult_" & todayStr & ".xlsx"
    
    ' 保存
    Application.DisplayAlerts = False
    newWb.SaveAs Filename:=savePath, FileFormat:=xlOpenXMLWorkbook
    Application.DisplayAlerts = True
    
    newWb.Close SaveChanges:=False
    
    MsgBox "統合結果を保存しました: " & savePath
End Sub
VB

2. 複数の保存形式(CSV/Excel両方)を同時に出力する版

統合結果を Excel形式(.xlsx)CSV形式(.csv) の両方で保存する例です。

Sub SaveMergedToExcelAndCSV()
    Dim wsMaster As Worksheet
    Dim newWb As Workbook
    Dim savePathXLSX As String, savePathCSV As String
    Dim todayStr As String
    
    Set wsMaster = ThisWorkbook.Sheets("Master")
    
    ' 新しいブックを作成
    Set newWb = Workbooks.Add
    wsMaster.UsedRange.Copy newWb.Sheets(1).Cells(1, 1)
    
    todayStr = Format(Now, "yyyy-mm-dd")
    
    ' 保存先パス(例: デスクトップ)
    savePathXLSX = Environ("USERPROFILE") & "\Desktop\MergedResult_" & todayStr & ".xlsx"
    savePathCSV = Environ("USERPROFILE") & "\Desktop\MergedResult_" & todayStr & ".csv"
    
    ' Excel形式で保存
    Application.DisplayAlerts = False
    newWb.SaveAs Filename:=savePathXLSX, FileFormat:=xlOpenXMLWorkbook
    
    ' CSV形式で保存(1枚目のシートのみ)
    newWb.Sheets(1).SaveAs Filename:=savePathCSV, FileFormat:=xlCSVUTF8
    
    Application.DisplayAlerts = True
    
    newWb.Close SaveChanges:=False
    
    MsgBox "統合結果を保存しました: " & savePathXLSX & vbCrLf & savePathCSV
End Sub
VB

✅ まとめ

  • 日付付き保存版 → ファイル名に日付を付けて世代管理が容易。
  • 複数形式保存版 → ExcelとCSV両方で保存できるので、配布やシステム連携に便利。
VBA
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました