【VBA】イベントプロシージャと標準プロシージャの違い|実行タイミングと役割を徹底解説

スポンサーリンク

1. 標準プロシージャとは何か

標準プロシージャとは、
標準モジュールに記述し、任意のタイミングで実行できるVBAの処理です。

一般的に「マクロ」と呼ばれているものの多くは、
この標準プロシージャを指しています。

特徴は次のとおりです。

  • 自由に名前を付けられる
  • マクロ一覧から実行できる
  • ボタンやショートカットに割り当てられる
  • 自分で「実行する」必要がある

つまり、
明示的に呼び出して初めて動く処理が標準プロシージャです。


スポンサーリンク

2. イベントプロシージャとの根本的な違い

イベントプロシージャと標準プロシージャの最大の違いは、
「実行のきっかけ」 にあります。

項目標準プロシージャイベントプロシージャ
実行タイミングユーザーが実行イベント発生時に自動
実行方法手動・呼び出し自動
記述場所標準モジュールオブジェクトモジュール
名前自由固定
実行意識必要不要

イベントプロシージャは、
Excelの動作に紐づいて自動的に実行される処理
という点が本質的な違いです。


スポンサーリンク

3. 実行フローの違いをイメージで理解する

両者の違いを、流れで比較すると理解しやすくなります。

標準プロシージャの場合

  1. ユーザーがマクロを実行
  2. プロシージャが呼び出される
  3. 処理が実行される

イベントプロシージャの場合

  1. ユーザー操作またはExcel動作が発生
  2. Excelがイベントを検知
  3. 対応するプロシージャを自動実行

このように、
「誰が処理を起動しているのか」 が明確に異なります。


スポンサーリンク

4. どちらを使うべきか(使い分けの考え方)

どちらが優れている、という話ではありません。
役割が異なるため、使い分けが重要です。

標準プロシージャが向いているケース

  • 任意のタイミングで処理を実行したい
  • まとめて処理を行いたい
  • デバッグやテストを頻繁に行う

イベントプロシージャが向いているケース

  • 操作に応じて自動で処理したい
  • 入力チェックや制御を行いたい
  • ユーザーに操作を意識させたくない

実務では、
イベントで検知 → 標準プロシージャを呼び出す
という組み合わせもよく使われます。


スポンサーリンク

5. 両者を理解するとVBA設計が安定する

イベントプロシージャと標準プロシージャの違いを理解すると、

  • 処理の置き場所に迷わなくなる
  • 意図しない自動実行を防げる
  • 保守性の高い構成が作れる

といったメリットがあります。

コメント

タイトルとURLをコピーしました