『たった1秒で仕事が片づくExcel自動化の教科書』(技術評論社)にて、
紙面の都合で書けなかった詳細をこちらで解説します。
■VBAのイベント一覧
ヘルプの説明を参照しています。こうしてみると実にいろいろあるわけですが、普通使わないものも含まれていますので、最初からすべてマスターする必要はなくまずは一通り、こんなイベントの種類があるんだというのを概観しておけば結構です。
■ブック操作に関するイベント
・AddinUninstall
ブックのアドインとして組み込みを解除したときに発生します。アドインの組み込みを解除しても、ブックは自動的に閉
じません。
・BeforeClose
ブックを閉じる前に発生します。ブックが変更された場合、ユーザーに変更内容の保存を要求する前に、このイベントが発生します
※引数
Cancel:イベントが発生すると、False が渡されます。イベント プロシージャでこの引数に True を設定すると、閉じる操作が停止し、ブックは開いたままとなります。
・BeforePrint
ブックまたはその中に含まれる内容を印刷する前に発生します
※引数
Cancel:イベントが発生すると、False が渡されます。イベント プロシージャでこの引数に True を設定すると、プロシージャが終了しても、ブックは印刷されません。
・BeforeSave
ブックを保存する前に発生します
※引数
SaveAsUi:True を設定すると、[名前を付けて保存] ダイアログ ボックスが表示されます。
Cancel: イベントが発生すると False が渡されます。イベント プロシージャでこの引数に True を設定すると、プロシージャが終了しても、ブックは保存されません。
・Deactivate
グラフまたはブックが非アクティブになったときに発生します。
・NewSheet
新しいシートをブックに作成したときに発生します
※引数
Sh: 新しいシートが渡されます。Worksheet オブジェクトまたは Chart オブジェクトが渡されます。
・Open
ブックを開いたときに発生します
・SheetActivate
シートがアクティブになったときに発生します
※引数
Sh: アクティブになったシートが渡されます。Chart オブジェクトまたは Worksheet オブジェクトが渡されます。
・SheetBeforeDoubleClick
既定のダブルクリックの操作の前に、ワークシートをダブルクリックしたときに発生します。グラフ シートの場合、このイベントは発生しません。
※引数
Sh: シートを表す Worksheet オブジェクトが渡されます
Target: ダブルクリックが発生したときに、マウスに最も近いセルが渡されます
Cancel: イベントが発生すると、False が渡されます。イベント プロシージャでこの引数に True を設定すると、プロシージャが終了しても既定のダブルクリックの操作は実行されません。
・SheetBeforeRightClick
既定の右クリックの操作の前に、ワークシートを右クリックしたときに発生します。グラフ シートの場合、このイベントは発生しません。
※引数
Sh: シートを表す Worksheet オブジェクトが渡されます
Target: 右クリックが発生したとき、マウス ポインタに最も近いセルが渡されます
Cancel: イベントが発生すると、False が渡されます。イベント プロシージャでこの引数に True を設定すると、プロシージャが終了しても、既定の右クリックの操作は実行されません。
・SheetCalculate
ワークシートを再計算したり、グラフでデータをプロットして変更した後に発生します
※引数
Sh: シートが渡されます。Chart オブジェクトまたは Worksheet オブジェクトが渡されます。
・SheetChange
ユーザーまたは外部リンクにより、ワークシートのセルが変更されるときに発生します。グラフ シートの場合、このイベントは発生しません。
※引数
Sh: シートを表す Worksheet オブジェクトが渡されます
Source: 変更された範囲が渡されます
・SheetDeactivate
シートが非アクティブでになったときに発生します
※引数
Sh: シートが渡されます。Chart オブジェクトまたは Worksheet オブジェクトが渡されます。
・SheetFollowHyperlink
Excel のハイパーリンクをクリックすると発生します
※引数
Sh: 必ず指定します。オブジェクト型 (Object) の値を使用します。ハイパーリンクを含む Worksheet オブジェクトを指定します。
Target : 必ず指定します。Hyperlink オブジェクトを指定します。ハイパーリンクのリンク先を表す Hyperlink オブジェクトを指定します。
・SheetSelectionChange
いずれかのワークシートで選択範囲を変更したときに発生します。選択範囲がグラフ シート上にある場合は発生しません。
※引数
Sh: 新しい選択範囲を含むワークシートを指定します
Target: 新しい選択範囲を指定します
・WindowActivate
ブックのウィンドウがアクティブになったときに発生します
※引数
Wb: Application オブジェクトのイベントの場合だけ使用します。アクティブにするウィンドウを表示するブックを指定します。
Wn: アクティブにするウィンドウを指定します
・WindowDeactivate
ブックのウィンドウが非アクティブになったときに発生します
※引数
Wb: Application オブジェクトのイベントの場合だけ使用します。非アクティブにするウィンドウを表示するブックを指定します。
Wn: 非アクティブにするウィンドウを指定します
・WindowResize
ブックのウィンドウ サイズを変更したときに発生します
※引数
Wb: Application オブジェクトのイベントの場合だけ使用します。サイズを変更するウィンドウを表示するブックを指定します。
Wn: サイズを変更するウィンドウを指定します
■シート操作に関するイベント
・Activate
ブック、ワークシート、グラフ シート、または埋め込みグラフがアクティブになったときに発生します。同じブックを示す 2 つのウィンドウを切り替えると、WindowActivate イベントは発生しますが、そのブックに対し Activate イベントは発生しません。また、新しいウィンドウを作成するときに、このイベントは発生しません。
・BeforeDoubleClick
既定のダブルクリックの操作の前に、埋め込みグラフまたはワークシートがダブルクリックされたときに発生します
※引数
Target: ダブルクリックしたときにマウス ポインタに最も近いセルが渡されます
Cancel: イベントが発生すると、False が渡されます。イベント プロシージャでこの引数に True を設定すると、プロシージャが終了しても既定のダブルクリックの操作は実行されません。
ElementID: ダブルクリックされたオブジェクトが渡されます。次に示すように Arg1 と Arg2 は、ElementID の値により異なります。
・BeforeRightClick
既定の右クリックの操作の前に、埋め込みグラフまたはワークシートを右クリックしたときに発生します。他のワークシート イベントと同様に、ポインタが図形またはコマンド バー (ツールバーまたはメニュー バー) の上にある場合、右クリックしてもこのイベントは発生しません。
※引数
Target: 右クリックしたとき、マウス ポインタに最も近いセルが渡されます
Cancel: イベントが発生すると、False が渡されます。イベント プロシージャでこの引数に True を設定すると、プロシージャが終了しても既定の右クリックの操作は実行されません。
・Calculate
Chart オブジェクトでは、グラフが新しいデータまたは変更されたデータをプロットした後に発生します。Worksheet オブジェクトでは、ワークシートを再計算した後に発生します。
・Change
ワークシートのセルが、ユーザーまたは外部リンクで変更されたときに発生します。セルが再計算時で変更されないと、このイベントは発生しません。シートの再計算をトラップするには、Calculate イベントを使用します。セルを削除する場合、このイベントは発生しません。
※引数
Target: 変更された範囲が渡されます。複数のセルを渡すことができます。
・Deactivate
グラフまたはブックが非アクティブになったときに発生します
・FollowHyperlink
ワークシートのハイパーリンクをクリックすると発生します
※引数
Target: 必ず指定します。Hyperlink オブジェクトを指定します。ハイパーリンクのリンク先を表す Hyperlink オブジェクトを指定します。
・SelectionChange
ワークシートで選択範囲を変更したときに発生します
※引数
Target: 新しい選択範囲を指定します
『たった1秒で仕事が片づく Excel自動化の教科書』執筆陣が自ら直接指導。
実務直結・一日集中・受講後無期限サポート付きのマクロVBAセミナー