トップページ

#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はセルの選択範囲が代入されるオブジェクト型変数です。

いかに実例を示しておきます。