Excel VBA ブックとワークシートのイベントプロシージャ―

スポンサーリンク
スポンサーリンク

イベントプロシージャー

VBAでは、ある操作をきっかけとして自動的に
実行されるプロシージャーのことを
「イベントプロシージャー」といいます。

自動実行のきっかけとなる操作のことを
「イベント」と呼び

「イベント」は、ブックやワークシート
ユーザーフォームのActiveX【アクティブエックス】コントロールなどの
オブジェクトに対して発生します。

この「イベント」を利用して特定の処理を実行するには
「イベントプロシージャー」を作成します。

イベントプロシージャーの作成場所

イベントプロシージャ―は
ブック、ワークシート、ユーザーフォームなどのイベントが
発生する対象となる「オブジェクトモジュール」に記述します。


モジュールとは、プロシージャ―を記述するためのシートです。
ブックやワークシートのイベントプロシージャーは
「Microsoft Excel Objects」の中の
それぞれのオブジェクトに対応したモジュールに作成し
ユーザーフォームのイベントプロシージャーは
「フォーム」の中のモジュールに作成します。


イベントプロシージャーの作成方法

イベントプロシージャーは、イベントの対象となる
オブジェクトのコードウィンドウに記述します。

プロシージャー名は
対象オブジェクトを「オブジェクトボックス」から選択し
実行するイベントを「プロシージャーボックス」から選択します。

「Private Sub」【プライベートサブ】プロシージャーが
自動的に作成されます。
「Private Sub」プロシージャーは、このプロシージャーが
記述されているモジュール内のみ有効で
ほかのモジュールから呼び出すことのできません。



ワークシートイベントプロシージャーの種類

イベント名イベントが発生するタイミング
Activate
【アクティベート】
シートがアクティブになったとき
BeforeDoubleClick
【ビフォアダブルクリック】
シートをダブルクリックしたとき
BeforeRightClick
【ビフォアライトクリック】
シートを右クリックしたとき
Calculate
【カルクレート】
シートが再計算されたとき
Chenge
【チェンジ】
シートのセルの値が変更されたとき
Deactivate
【ディアクティベート】
シートがアクティブでなくなったとき
FollowHyperlink
【フォローハイパーリンク】
シート上のハイパーリンクをクリックしたとき
PivotTableUpdate
【ピボットテーブルアップデイト】
シート上のピボットテーブルが更新されたとき
SelectionChange
【セレクションチェンジ】
シートの選択範囲が変更されたとき

ブックイベントプロシージャーの種類

イベント名イベントが発生するタイミング
Activate
【アクティベート】
ブックがアクティブになったとき
AddinInstall
【アドインインストール】
ブックがアドインとして組み込まれたとき
AddinUninstall
【アドインアンインストール】
ブックのアドインとして組み込みが解除されたとき
AfterXmlExport
【アフターエックスエムエルエクスポート】
XMLをエクスポートしたあと
AfterXmlImport
【アフターエックスエムエルインポート】
XMLをインポートしたあと
BeforeClose
【ビフォアクローズ】
ブックを閉じる操作をしたとき
BeforePrint
【ビフォアプリント】
ブックを印刷する操作をしたとき
BeforeSave
【ビフォアセーブ】
ブックを保存する操作をしたとき
BeforeXmlExport
【ビフォアエックスエムエルエクスポート】
XMLをエクスポートする前
BeforeXmlImport
【ビフォアエックスエムエルエクスポート】
XMLをインポートする前
Deactivate
【ディアクティベート】
ブックがアクティブでなくなったとき
NewSheet
【ニューシート】
新しいシートをブックに追加したとき
Open
【オープン】
ブックをひらいたとき
PivotTableCloseConnection
【ピボットテーブルクローズコネクション】
ピボットテーブルレポートへの接続が閉じたとき
PivotTableOpenConnection
【ピボットテーブルオープンコネクション】
ピボットテーブルへの接続が開いたとき
RowsetComplete
【ロウセットコンプリート】
OLAPピボットテーブルで行セットアクションを
起動するか、レコードセットを詳細表示したとき
SheetActivate
【シートアクティベート】
ブック内のシートがアクティブになったとき
SheetBeforeDoubleClick
【シートビフォアダブルクリック】
ブック内のシート上でダブルクリックしたとき
SheetBeforeRightClick
【シートビフォアライトクリック】
ブック内のシート上で右クリックしたとき
SheetCalculate
【シートカルクレート】
ブック内のシートで再計算されたとき
SheetChange
【シートチェンジ】
ブック内のシートのセルが変更されたとき
SheetDeactivate
【シートディアクティベート】
ブック内のシートがアクティブになったとき
SheetFollowHyperlink
【シートフォローハイパーリンク】
ブック内のシート上にあるハイパーリンクをクリックしたとき
SheetPivotTableUpdete
【シートピボットテーブルアップデイト】
ブック内のピボットテーブルレポートが更新されたとき
SheetSelectionChange
【シートセレクションチェンジ】
ブック内のワークシートで選択範囲を変更したとき
Sync
【シンク】
ブックがサーバー上のブックと同期されたとき
WindowActivate
【ウィンドウアクティベート】
ブックウィンドウがアクティブになったとき
WindowDeactivate
【ウィンドウディアクティベート】
ブックウィンドウがアクティブでなくなったとき
WindowResize
【ウィンドウリサイズ】
ブックウィンドウの大きさが変更になったとき

ブックとシートの共通のイベントについて

イベントの中には、ブックとワークシートの両方に
共通のものがあります。
ブックのシートに関するイベントは全シートが対象になり
シートのイベントは個々のシートが対象になります。
なお、両方使用した場合は
シートのイベントプロシージャーが先に実行され
後にブックのイベントプロシージャーが実行されます。

「Workbook_Open」イベントを無効にしてブックを開く方法

Workbook_Openイベントを設定すると
ブックを開くと同時にイベントプロシージャーが
実行されますが
ブックをひらくときに「Shiht」キーを押しながら
ブックを開くとWorkbook_Openイベントプロシージャは
無効になります。

ワークシートイベントプロシージャー実行コード例

以下のリンクでご確認ください。
セルのドロップダウンリストを作成して入力効率UP
セルをダブルクリックして電卓を起動させる

ブックイベントプロシージャー実行コード例

以下のリンクでご確認ください。
ブックを開いた時にマクロを実行する
入力が必要なセルが未入力の場合メッセージを出す
入力漏れを確認してからブックを保存する方法
シートの印刷をできないようにする
ブックを開いたときにユーザーフォームを表示する


以上で
ブックとワークシートのイベントプロシージャーについての解説を終了します。
ありがとうございました。

スポンサーリンク
スポンサーリンク

フォローする

スポンサーリンク
スポンサーリンク