ブックを保存する、閉じる

上書き保存

上書き保存は、以下の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

Follow me!