ファイル名の部分を、編集中のブックの名前を表すActiveWorkbook.Nameにすると、編集中のブックならどれでもマルチ保存が可能になります
ActiveWorkbook.Nameは、編集中のブックの名前を表すコードです。拡張子まで含まれるので、指定したフォルダへそのまま保存できます。
@前号で編集したマクロの、ファイル名を表す部分を、ActiveWorkbook.Nameに書き換えます。
Sub MultiSave()
'
' MultiSave Macro
' 異なる2つのフォルダに保存
'
'
Application.DisplayAlerts = False
ActiveWorkbook.Save
ChDir "J:\"
ActiveWorkbook.SaveAs Filename:="J:\学年別授業時間数.xlsx", FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
赤色のコードを、保存先とファイル名を切り離して、次のように書き換えます。
ActiveWorkbook.SaveAs Filename:="J:\" & ActiveWorkbook.Name
引数のFileFormatとCreateBackupはなくても問題ないので、削除してしまいます。
AChDir行も削除します。
保存先はファイル名とともに指定してあるので、ChDir行はなくても問題ありません。ついでに削除してしまいます。
Sub MultiSave()
'
' MultiSave Macro
' 異なる2つのフォルダに保存
'
'
Application.DisplayAlerts = False
ActiveWorkbook.Save
ChDir "J:\"
ActiveWorkbook.SaveAs Filename:="J:\" & ActiveWorkbook.Name
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub
Bマクロは次のようになり、編集中のブックが2つのフォルダに保存され、閉じるようになります。
Sub MultiSave()
'
' MultiSave Macro
' 異なる2つのフォルダに保存
'
'
Application.DisplayAlerts = False
ActiveWorkbook.Save
ActiveWorkbook.SaveAs Filename:="J:\" & ActiveWorkbook.Name
ActiveWindow.Close
Application.DisplayAlerts = True
End Sub