今回は 「保存先フォルダをConfigシートで指定する版」 と 「自動で世代フォルダを作成して保存する版」 を紹介します。
1. 保存先フォルダをConfigシートで指定する版
Configシートに保存先フォルダを記載しておき、そこへ統合結果を保存する例です。
※ Configシートのセル A1 に保存先フォルダパスを記載しておく前提。
Sub SaveMergedToConfigFolder()
Dim wsMaster As Worksheet, wsConfig As Worksheet
Dim newWb As Workbook
Dim savePath As String, folderPath As String
Dim todayStr As String
Set wsMaster = ThisWorkbook.Sheets("Master")
Set wsConfig = ThisWorkbook.Sheets("Config")
' ConfigシートのA1に保存先フォルダパスを記載しておく
folderPath = wsConfig.Range("A1").Value
If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"
todayStr = Format(Now, "yyyy-mm-dd")
savePath = folderPath & "MergedResult_" & todayStr & ".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
VB2. 自動で世代フォルダを作成して保存する版
保存時に「日付ごとの世代フォルダ」を自動作成し、その中に保存する例です。
例: C:\Data\Output\2025-11-20\MergedResult.xlsx
Sub SaveMergedToGenerationFolder()
Dim wsMaster As Worksheet
Dim newWb As Workbook
Dim baseFolder As String, genFolder As String, savePath As String
Dim todayStr 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
End If
savePath = genFolder & "MergedResult.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シート指定版 → 保存先フォルダを外部管理できるので、柔軟に変更可能。
- 世代フォルダ作成版 → 日付ごとにフォルダを自動生成し、世代管理が容易。

