エクセル実践塾 > エクセル実践塾2007

2つのフォルダへの保存マクロを、汎用的なものにしたい

 

 

 

 

 

 

ファイル名の部分を、編集中のブックの名前を表す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