目次
1. 標準プロシージャとは何か
標準プロシージャとは、
標準モジュールに記述し、任意のタイミングで実行できるVBAの処理です。
一般的に「マクロ」と呼ばれているものの多くは、
この標準プロシージャを指しています。
特徴は次のとおりです。
- 自由に名前を付けられる
- マクロ一覧から実行できる
- ボタンやショートカットに割り当てられる
- 自分で「実行する」必要がある
つまり、
明示的に呼び出して初めて動く処理が標準プロシージャです。
2. イベントプロシージャとの根本的な違い
イベントプロシージャと標準プロシージャの最大の違いは、
「実行のきっかけ」 にあります。
| 項目 | 標準プロシージャ | イベントプロシージャ |
|---|---|---|
| 実行タイミング | ユーザーが実行 | イベント発生時に自動 |
| 実行方法 | 手動・呼び出し | 自動 |
| 記述場所 | 標準モジュール | オブジェクトモジュール |
| 名前 | 自由 | 固定 |
| 実行意識 | 必要 | 不要 |
イベントプロシージャは、
Excelの動作に紐づいて自動的に実行される処理
という点が本質的な違いです。
3. 実行フローの違いをイメージで理解する
両者の違いを、流れで比較すると理解しやすくなります。
標準プロシージャの場合
- ユーザーがマクロを実行
- プロシージャが呼び出される
- 処理が実行される
イベントプロシージャの場合
- ユーザー操作またはExcel動作が発生
- Excelがイベントを検知
- 対応するプロシージャを自動実行
このように、
「誰が処理を起動しているのか」 が明確に異なります。
4. どちらを使うべきか(使い分けの考え方)
どちらが優れている、という話ではありません。
役割が異なるため、使い分けが重要です。
標準プロシージャが向いているケース
- 任意のタイミングで処理を実行したい
- まとめて処理を行いたい
- デバッグやテストを頻繁に行う
イベントプロシージャが向いているケース
- 操作に応じて自動で処理したい
- 入力チェックや制御を行いたい
- ユーザーに操作を意識させたくない
実務では、
イベントで検知 → 標準プロシージャを呼び出す
という組み合わせもよく使われます。
5. 両者を理解するとVBA設計が安定する
イベントプロシージャと標準プロシージャの違いを理解すると、
- 処理の置き場所に迷わなくなる
- 意図しない自動実行を防げる
- 保守性の高い構成が作れる
といったメリットがあります。
コメント