今回は 「保存形式をConfigシートで指定する版」 と 「世代フォルダ+ファイル名に時刻まで付ける版」 を紹介します。
📝 1. 保存形式をConfigシートで指定する版
Configシートに保存形式(例: XLSX / CSV)を記載しておき、その形式で保存します。
※ Configシートの A1 に保存先フォルダ、A2 に保存形式を記載しておく前提。
Sub SaveMerged_ConfigFormat()
Dim wsMaster As Worksheet, wsConfig As Worksheet
Dim newWb As Workbook
Dim folderPath As String, savePath As String, todayStr As String
Dim formatStr As String
Set wsMaster = ThisWorkbook.Sheets("Master")
Set wsConfig = ThisWorkbook.Sheets("Config")
folderPath = wsConfig.Range("A1").Value
If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
formatStr = UCase(wsConfig.Range("A2").Value) ' 保存形式指定 (XLSX/CSV)
todayStr = Format(Now, "yyyy-mm-dd")
' 新しいブックを作成
Set newWb = Workbooks.Add
wsMaster.UsedRange.Copy newWb.Sheets(1).Cells(1, 1)
Application.DisplayAlerts = False
Select Case formatStr
Case "XLSX"
savePath = folderPath & "MergedResult_" & todayStr & ".xlsx"
newWb.SaveAs Filename:=savePath, FileFormat:=xlOpenXMLWorkbook
Case "CSV"
savePath = folderPath & "MergedResult_" & todayStr & ".csv"
newWb.Sheets(1).SaveAs Filename:=savePath, FileFormat:=xlCSVUTF8
Case Else
MsgBox "Configシートの保存形式が不正です。XLSX または CSV を指定してください。"
End Select
Application.DisplayAlerts = True
newWb.Close SaveChanges:=False
MsgBox "統合結果を保存しました: " & savePath
End Sub
VB📝 2. 世代フォルダ+ファイル名に時刻まで付ける版
保存時に「日付ごとの世代フォルダ」を作成し、ファイル名に 時刻まで付与 して保存します。
例: C:\Data\Output\2025-11-20\MergedResult_2025-11-20_1811.xlsx
Sub SaveMerged_GenerationFolderWithTime()
Dim wsMaster As Worksheet
Dim newWb As Workbook
Dim baseFolder As String, genFolder As String, savePath As String
Dim todayStr As String, timeStr As String
Set wsMaster = ThisWorkbook.Sheets("Master")
' ベースフォルダ(固定)
baseFolder = "C:\Data\Output\"
If Right(baseFolder, 1) <> "\" Then baseFolder = baseFolder & "\"
' 日付ごとの世代フォルダを作成
todayStr = Format(Now, "yyyy-mm-dd")
genFolder = baseFolder & todayStr & "\"
If Dir(genFolder, vbDirectory) = "" Then MkDir genFolder
' 時刻文字列(例: 1811)
timeStr = Format(Now, "HHNN")
savePath = genFolder & "MergedResult_" & todayStr & "_" & timeStr & ".xlsx"
' 新しいブックを作成
Set newWb = Workbooks.Add
wsMaster.UsedRange.Copy newWb.Sheets(1).Cells(1, 1)
Application.DisplayAlerts = False
newWb.SaveAs Filename:=savePath, FileFormat:=xlOpenXMLWorkbook
Application.DisplayAlerts = True
newWb.Close SaveChanges:=False
MsgBox "統合結果を保存しました: " & savePath
End Sub
VB✅ まとめ
- Configシート指定版 → 保存形式を外部管理できるので、柔軟に変更可能。
- 世代フォルダ+時刻付き版 → 日付フォルダ+時刻付きファイル名で世代管理が容易。

