アフィリエイト広告を利用しています

SAVEメソッドでブックを保存するマクロ

Saveメソッドは、ブックを保存するメソッドです。SaveメソッドとSaveプロパティを使うと色々な保存をすることができます。

目次

SAVEメソッドの使い方

エクセルで「Book1」を作り、デスクトップに保存します。

ブックを上書き保存する

ブックを上書き保存するには、Workbooks(“ブック名”).Saveメソッドを使います。

次のコードは、ブックを上書き保存するマクロです。

Sub サンプル3150()

  Workbooks("Book1").Save

End Sub

Book1を開いて、のセルA3に例えば「ブックを上書き保存します。」と入力します。

マクロの実行結果

マクロを実行すると、「ブックを上書き保存します。」と書き加えた状態を保存します。見た目は変化がないようですが、上書き保存されているので、ブックを閉じても保存されています。

メッセージボックスで保存を確認する

このマクロは、メッセージボックスで、上書き保存をするかどうかの確認します。

Sub サンプル3155()

 Dim R As Integer
 R = MsgBox("ワークブックを上書き保存します。", vbYesNo)
  If R = vbYes Then
      ActiveWorkbook.Save
  End If

End Sub

マクロの実行結果

マクロを実行すると、上書き保存」のメッセージボックスが表示されます。

「はい」をクリックすると、「上書き保存」されます。
「いいえ」をクリックすると、保存しないで画面に戻ります。

Savedプロパティで変更があった時に上書き保存するマクロ

メッセージボックスを使って、ブックに変更があった時と変更がなかった時の動作を設定します。

Sub サンプル3160()

If ActiveWorkbook.Saved = False Then
    MsgBox "ブックの変更を保存します。"
    ActiveWorkbook.Save
Else
    MsgBox "ブックは変更されていません。"
End If

End Sub

ブックに変更がない時のマクロの表示

下のテキストの内容がすでに保存されていて、ブックの内容が変更がされていない状態にあるとします。

マクロを実行すると、MsgBoxに「ブックは変更されていません。」と表示されます。

ブックが変更されている時

テキストの内容を「ブックを上書き保存します」から「ブックに変更があったときだけ上書き保存するマクロ」と変更します。

マクロを実行すると、MsgBoxに「ブックの変更を保存します。」と表示されます。

SavedプロパティがFalseの場合

テキストの内容を「ブックに変更があったときだけ上書き保存するマクロ」から「Savedプロパティの説明」と変更します。

Sub サンプル3165()

  ActiveWorkbook.Saved = False
  ActiveWorkbook.Close

End Sub

Saved = False
’ Saved=Falseの時は「保存しますか?」が表示されます。

マクロの実行結果

マクロを実行すると、ブックを閉じる時に確認画面がでます。

SavedプロパティがTrueの場合

Sub サンプル3170()

 ActiveWorkbook.Saved = True
 ActiveWorkbook.Close

End Sub

Saved = True
’ Savedプロパティ=Trueの時は「保存しますか?」が表示されません。

例えば、Book1の「Savedプロパティの説明」を「ブックを変更しました。」と変更します。

マクロの実行結果

「保存しますか?」が表示されないで、画面が閉じます。
このとき、Book1の変更は保存されないで、変更する前の表示のままです。

すべてのブックを保存して Excel を終了するマクロ

複数のブックが開いている時に、次のマクロを実行するとすべてのブックを保存してからExcel を終了します。

Sub サンプル3180()

Dim WB As Workbook

  For Each WB In Application.Workbooks
     WB.Save
  Next WB

MsgBox "ブックの保存が終わりました。Excel を終了します。"

Application.Quit

End Sub

For Each ~ Next
’ For Each ~ Nextで開いているブックを「Saveプロパティ」ですべて保存します。Application.Quit
’ Quitメソッドは、「OK」をクリックすると、Excel(エクセル)を閉じます

マクロの実行結果

すべてのブックを保存して終了します。MsgBoxを使うと終了を確認することができます。

まとめ

SAVEメソッドを使うと、保存することができます。

SavedプロパティがFalseの場合は、変更があったときだけ上書き保存することができます。

SavedプロパティがTrueの場合は、変更をしません。

Closeメソッドでブックを保存してから閉じるマクロ

目次