今回は 「保存ファイル名に日付を付ける版」 と 「複数の保存形式(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
VB2. 複数の保存形式(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両方で保存できるので、配布やシステム連携に便利。

