#15_2 ブックのイベント
ブックに関するイベントの種類
前回、イベントマクロの定義と基本的な構文について学習しました。そこで、今回から数回に分けて、「ブック」「シート」と言ったオブジェクトごとに、そのイベントマクロの具体例を見ていきたいと思います。
その一回目となる今回はブックのイベントを紹介します。と言ってもブックのイベントだけでも40種類近くあるため、そのすべてのマクロ例を紹介することはできませんが、イベントを一覧にして紹介しようと思います。
もちろん[プロシージャ]ボックスから閲覧できるのですが、その意味は以下の通りになります。この中で特によく使うものについてはイベント名を赤くしました。
例としては「ブックを閉じる時(BeforeClose)」と「セルの選択範囲を変更した時(SheetSelectionChange)」の2つを紹介したいと思います。
| イベント | イベントの発生時期 |
|---|---|
| Activate | 対象のブックがアクティブになった時に発生 |
| AddinInstall | 対象のブックがアドインとして組み込まれた時発生 |
| AddinUninstall | ブックのアドイン組み込みを解除した時発生 |
| AfterSave | ブックが保存された後に発生 |
| AfterXmlExport | ブックをXMLデータファイルにエクスポートした後に発生 |
| AfterXmlImport | XMLデータがブックにインポートされた後に発生 |
| BeforeClose | ブックを閉じる前に発生 |
| BeforePrint | ブックを印刷する前に発生 |
| BeforeSave | ブックを保存する前に発生 |
| BeforeXmlExport | ブックをxmlデータファイルにエクスポートする前に発生 |
| BeforeXmlImport | XMLデータがブックにインポートされる前に発生 |
| Deactivate | ブックが非アクティブになった時に発生 |
| ModelChange | Excelデータモデルが変更された後に発生 |
| NewChart | 新しくグラフを作成した後に発生 |
| NewSheet | 新しくシートを作成した後に発生 |
| Open | ブックを開いた時に発生 |
| PivotTableCloseConnection | ピボットテーブルレポート接続が閉じた後に発生 |
| PivotTableOpenConnection | ピボットテーブルレポート接続が開いた後に発生 |
| RowsetComplete | OLAPピボットテーブルに対する行セットアクションを呼び出した後に発生 |
| SheetActivate | シートがアクティブになった時に発生 |
| SheetBeforeDelete | シートが削除される前に発生 |
| SheetBeforeDoubleClick | シートをダブルクリックした時に発生 |
| SheetBeforeRightClick | シートを右クリックした時に発生 |
| SheetCalculate | 計算した時に発生 |
| SheetChange | セルの値が変更された時に発生 |
| SheetDeactivate | シートが非アクティブになった時に発生 |
| SheetFollowHyperlink | シート上のハイパーリンクをクリックした時に発生 |
| SheetLensGalleryRenderComplete | シートの引き出し線ギャラリーの表示が完了した後に発生 |
| SheetPivotTableAfterValueChange | ピボットテーブル内のセル範囲が編集された後に発生(再計算後でも発生) |
| SheetPivotTableBeforeAllocateChanges | ピボットテーブルが変更される前に発生 |
| SheetPivotTableBeforeCommitChanges | ピボットテーブルのOLAPデータが変更される前に発生 |
| SheetPivotTableBeforeDiscardChanges | ピボットテーブルの変更が破棄される前に発生 |
| SheetPivotTableChangeSync | ピボットテーブルが変更された後に発生 |
| SheetPivotTableUpdate | ピボットテーブルレポートのシートが更新された後に発生 |
| SheetSelectionChange | シートで選択範囲を変更した後に発生 |
| SheetTableUpdate | シートテーブルが更新された後に発生 |
| WindowActivate | ウィンドウがアクティブになった時に発生 |
| WindowDeactivate | ウィンドウが非アクティブになった時に発生 |
| WindowResize | ウィンドウサイズを変更した時に発生 |
ブックを保存する時に発生するイベント
引数を渡すことができるサブルーチンについて勉強しましたが、イベントの中にも引数を渡せるものがあります。このBeforeSaveもその1つです。
イベントマクロの引数を使いこなすために、次のようなマクロを記述してみてください。
このケースの場合、2つの引数(SaveAsUIとCancel)がイベントマクロに自動的に渡されています。この引数は両方ともブール型であり、SaveAsUIは「名前をつけて保存」ダイアログを表示するかしないかを決める引数であり、Cancelは保存をキャンセルするかどうかを決める引数です。
特にCancelはイベントマクロの引数では1番見かけるものなので、意味をよく覚えておきましょう。
「特定の条件を満たさない限りブックを保存できない」といった条件付きイベントマクロを作ることができます。



セルの選択範囲を変更した時に発生するイベント
セルの選択範囲を変更した時に発生するイベントはSheetSelectionChangeです。このイベントに渡される引数はTargetです。このTargetはセルの選択範囲が代入されるオブジェクト型変数です。
いかに実例を示しておきます。
