Excelファイルを開いた時/保存した時/閉じた時にVBAマクロを実行してみる

Excel VBAでマクロを書いてみる
の続き

Excelファイルを開いた時や保存した時、閉じたときにVBAマクロを実行してみる。


コードを下記のように書く。

' ファイルを開いたとき実行するマクロ
Private Sub Workbook_Open()
  MsgBox "ファイルを開きました!"
End Sub

' ファイルを保存したとき実行するマクロ
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
  MsgBox "ファイルを保存します!"
End Sub

' ファイルを閉じたときに実行するマクロ
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  MsgBox "ファイルを閉じます!"
End Sub


これで、ファイルを開いたときや保存したとき、終了したときに メッセージが表示される。


ファイルを保存せずに閉じようとした場合

Workbook_BeforeCloseの処理が実行された後、

ファイルを保存するかどうか問われる。

ファイルが保存されている場合のみ処理を実行したい場合は ActiveWorkbook.Savedを見て判断するのが良さそう。
また、CancelにTrueを設定しておくと、この後、Close処理がキャンセルされるみたい。

' ファイルを閉じたときに実行するマクロ
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  If ActiveWorkbook.Saved = True Then
    MsgBox "ファイルを閉じます!"
  Else
    MsgBox "ファイルを保存してください!"
    Cancel = True
  End If
End Sub