見出し画像

VBA|Excel操作|Workbook|Workbook.Save|既存ブックを上書き保存する


■ 基本構文

Workbook.Save は、指定したブックへの変更を保存するメソッドである。

すでにファイル名と保存場所を持つ既存ブックを上書き保存するときに使う。初回保存でファイル名を指定する場合は SaveAs を使う。

Workbook.Save

各要素の意味:

・要素:意味

・Workbook:保存対象のブック
・Save:現在の保存先へ上書き保存するメソッド

・戻り値:なし
・主な用途:編集済みブックの保存、処理途中の確定保存


■ サンプルコード

サンプル①:最短実行例

役割:マクロが入っているブックを保存する。
理由:現在の変更内容をファイルへ反映する。
注意:ThisWorkbook は「コードが入っているブック」を指す。

Sub Sample_WorkbookSave_Min()
    ThisWorkbook.Save
End Sub

サンプル②:実務での定番例

役割:既存ブックを開き、値を書き換えて保存する。
理由:処理対象ファイルを確実に保存してから閉じる。
注意:Save 後に Close SaveChanges:=False とすることで、二重確認を避ける。

Sub Sample_WorkbookSave_UpdateExisting()
    Dim wb As Workbook
    Dim targetPath As String

    targetPath = "C:\Temp\売上集計.xlsx"

    Set wb = Workbooks.Open(targetPath)

    wb.Worksheets("Sheet1").Range("A1").Value = Now

    wb.Save
    wb.Close SaveChanges:=False
End Sub

■ 備考

Save は既存の保存先へ上書きする処理である。

新規ブックに対して保存先未指定のまま Save すると、保存ダイアログやエラーの原因になる。

自動処理では、保存対象が ThisWorkbook なのか、ActiveWorkbook なのか、Workbooks.Open で開いたブックなのかを明確にする。

保存前にバックアップが必要な場合は、Save の前に SaveCopyAs を使う。

いいなと思ったら応援しよう!

Parusの寺小屋 技術メモや学習の整理として書いています。 もし内容が役に立ったり、続きを読みたいと思っていただけたら、 応援として受け取らせてもらえたら嬉しいです。