イベントプロシージャのコードを見ると普通のプロシージャとよく似ているが、プログラムから呼び出すのではなく、ユーザーの操作やイベントを誘発させるプログラムによってイベントプロシージャは実行される(呼び出される)。
イベントプロシージャが呼び出されるタイミングは、ユーザーが意識している場合と無意識に処理する場合がある。
- 意識できるイベントの例:コマンドボタンを押したときのイベントプ ロシージャ
- 無意識なイベントの例:ファイルの呼び込み、データ入力時のイベント プロシージャ
後者のイベントを使うとユーザーにプログラムを意識させない処理ができる。イベントを使う注意は、どのタイミングに何度、発生するのか確認しないと意図しない結果になる。
話しは変わって、イベントをメモり空間で説明します。
プログラムでのデータの処理は、大雑把(抽象的)にコンピュータのメモリをイメージする必要がある。
次図のアプリとは、ExcelやWordなどのことで、これらのアプリをWindows(OS、オペレーティングシステム)が管理する。OSは常に固定でメモリに存在するがアプリは時間ごとに切り替わって複数のアプリが連続いているように見せている。
アプリがファイル保存する場合は、アプリがWindowsにファイルの保存を要求する。ファイルを保存するのはアプリではなくWindowsがする。
Windowsがマウスやキーボード、ディスプレイ、HDD(ハードディスクドライブ)などを複数のアプリから統一管理する。ディスプレイやHDDなどの機器は1つ、アプリが複数動くような仕組みを作るためにWindowsがある。マウスなどの周辺装置からのイベントはWindowsが管理し、Windowsが必要なイベントを各アプリに知らせる(Windowsメッセージ)。
Excelのイベントプロシージャを呼び出すキッカケはExcel自身が起動した時などのイベントの他にWindowsからの知らせるイベントもある。Windowsからイベントを受け取って処理するかどうかの仕組みはアプリの作り方で決める。
メモリとファイルの違いは以下。
- メモリはアプリごとに独立
- ファイルはWindowsを通して複数のアプリで供給できる