ブックを保存する、閉じる
上書き保存
上書き保存は、以下のSaveメソッドを使用
ThisWorkbook.Save
名前を付けて保存
名前を付けて保存するには、以下のように、SaveAsメソッドを使用します。
Dim wb As Workbook
Set wb = ThisWorkbook
wb.SaveAs wb.Path & "\別名で保存.xlsm"
同名ファイルがある場合は、以下のメッセージが表示されます。
このメッセージを表示させないようするには、以下のように、保存する前に、警告メッセージを非表示にします。
Dim wb As Workbook
' 現在のブックを変数wbにセット
Set wb = ThisWorkbook
' 警告メッセージを非表示にする
Application.DisplayAlerts = False
' ブックを別名で保存
wb.SaveAs wb.Path & "\別名で保存.xlsm"
' 警告メッセージの表示を再度有効にする
Application.DisplayAlerts = True
コピーを保存
ブックのコピーを保存するには、以下のSaveCopyAsメソッドを使用します。
Sub BookSaveCopyAs()
Dim wb As Workbook
Dim bookPath As String
' 現在のブックを変数wbにセット
Set wb = ThisWorkbook
' ブックのフルパスを取得
bookPath = wb.FullName
' 日付をファイル名に付加
' ブックのフルパスに含まれる拡張子の前に日付を追加
bookPath = Replace(bookPath, ".", Format(Date, "_yyyymmdd."))
' ブックのコピーを保存
wb.SaveCopyAs bookPath
End Sub
このマクロの動作
このマクロは、現在のExcelブックのフルパスを取得し、そのファイル名に日付を追加した名前でブックのコピーを保存します。保存されるファイルは元のファイルと同じフォルダにあり、元のファイル名に日付が追加された形式になります。例えば、example.xlsx
というファイルがあれば、そのコピーは example_20240624.xlsx
となります。
閉じる
ブックを閉じるには、Closeメソッドを使用します。
Sub bookCloseSaveChange()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim filePath As String
filePath = "C:\TEMP\別名で保存して閉じる.xlsm"
wb.Close SaveChanges:=True, Filename:=filePath
End Sub
同名ファイルがある場合は、以下のメッセージが表示されます。
このメッセージを表示させないようするには、以下のように、保存する前に、警告メッセージを非表示にします。
Sub bookCloseSaveChange()
Dim wb As Workbook
Set wb = ThisWorkbook
Dim filePath As String
filePath = "C:\TEMP\別名で保存して閉じる.xlsm"
' 警告メッセージを非表示にする
Application.DisplayAlerts = False
' ブックを別名で保存して閉じる
wb.Close SaveChanges:=True, Filename:=filePath
' 警告メッセージの表示を再度有効にする
Application.DisplayAlerts = True
End Sub