1.ワークブックのイベント †
以下はワークブックの主なイベントです。
イベント | 説明 |
Open | ワークブックが起動された時 |
BeforeClose | ワークブックが閉じられる前 |
Activate | ワークブックがActiveになった時 |
Deactivate | ワークブックが非Activeになった時 注1 |
BeforeSave | ワークブックの保存前 |
WindowActivate | ExcelがActiveになった時 注1 |
WindowDeactivate | Excelが非Activeになった時 |
WindowResize | Excelのサイズが変更された時 |
注1:ActivateとWindowActivateは、他のActiveでないWorkBookが閉じた時にも呼ばれようとするらしく、その時自分自身は既にActiveなためか、「アプリケーション定義またはオブジェクト定義のエラーです。」が発生します。該当のプロシージャが呼ばれる前にエラーが発生するので対応方法が見つかっていません。
2.ワークブックに対しての処理 †
- ) WorkBookを非表示にする
Private Sub Workbook_Open()
If ActiveWindow.Caption = ThisWorkbook.name Then
ActiveWindow.visible = False
End If
End Sub
- ) WorkBookのTitleの設定
Application.Caption = "Title" '設定
Application.Caption = vbNullString '設定リセット
WorkBookがActivateになった時に名前を設定すると便利です。
Public Const BookTitle As String = "Compass"
Private Sub Workbook_Activate()
Application.Caption = BookTitle
End Sub
- ) StatusBarの設定
計算途中に各処理毎にステータスバーにメッセージを設定すると計算経過が分かってイライラが解消されます。
Application.StatusBar = "Message" '設定
Application.StatusBar = False '設定リセット
- ) ワークブックを閉じるプロシージャ
Public Sub example401_Close()
ThisWorkbook.Close
End Sub
- ) エラーチェックオプション
- エラーチェックオプション設定値取得
Private Sub Workbook_Open()
blnErrChk = Application.ErrorCheckingOptions.BackgroundChecking
End Sub
- エラーチェックオプション無効
Private Sub Workbook_Activate()
Application.ErrorCheckingOptions.BackgroundChecking = False
End Sub
- エラーチェックオプション設定
Private Sub Workbook_Deactivate()
Application.ErrorCheckingOptions.BackgroundChecking = blnErrChk
End Sub