次の方法で共有


Outlook のイベントの処理

Outlook では、重要な変更が発生したことを Microsoft Visual Basic、Microsoft Visual Basic for Applications (VBA)、および Microsoft Visual Basic Scripting Edition (VBScript) プログラムに通知できる広範囲のイベントが用意されています。 たとえば、Outlook のイベントは、アイテムが開かれたり、受信トレイに新しいメールが届いたりしたことをプログラムに通知します。

重要なイベントの通知を受け取るには、イベント ハンドラー プロシージャを記述します。 イベントが Visual Basic で処理されるか、Visual Basic for Applicationsまたは VBScript で処理されるかに応じて、イベントがSub呼び出されたときに Outlook が呼び出す または Function のいずれかになります。 イベント ハンドラーにコードを記述すると、プログラムがイベントに対して適切に応答し、場合によっては (メール アイテムを送信しないようにする場合など)、イベントに関連付けられている既定の操作を取り消しできるようになります。

イベントの種類

Outlook のイベントは、主にアイテム レベルのイベントとアプリケーション レベルのイベントの 2 種類に分類できます。

アイテム レベルのイベントは特定のアイテムに属し、一般に、そのアイテムに関連付けられているフォームに含まれる VBScript コードで処理されます。 これらのイベントはアイテムが開かれたり、送信または投稿されたり、保存されたり、あるいは閉じられたとき、およびユーザーがメッセージに返信または転送したり、カスタム アクションを初期化したときにプログラムに通知します。 また、アイテム レベルのイベントは、ユーザーがフォーム上のコントロールをクリックしたとき、またはアイテムのプロパティが変更されたときにもプログラムに通知できます。

アプリケーション レベルのイベントは、特定のフォームに関連付けられているアイテムより上位のオブジェクトに属しているため、一般に、Visual Basic または Visual Basic for Applications で処理されます。 アプリケーション レベルのイベントはアプリケーションそのもの、エクスプローラー コレクションとウィンドウ ([ショートカット] ウィンドウを含む)、インスペクター コレクションとウィンドウ、フォルダーとフォルダー コレクション、アイテム コレクション、および同期オブジェクトに属すことができます。

イベントへの応答

アイテム レベルのイベントに応答するには、アイテムを表示するフォームのスクリプトにイベント ハンドラー プロシージャを追加します。 たとえば、このフォームを使用してアイテムが開かれたときにコードを実行するには、次に示すようなプロシージャをフォームのスクリプトに追加します。

Function Item_Open() 
 MsgBox "A new item has opened in this form." 
End Function

アプリケーション レベルのイベントに応答するには、イベントが発生する Outlook の部分とイベント ハンドラーを関連付ける必要があるため、少し複雑です。 オートメーションと共にイベントを使用する方法については、ここをクリックしてください。

イベントの順序

イベントが一貫した順序で発生するように見えたとしても、特定のフォーム イベントを除いて、プログラムではイベントが特定の順序で呼び出されるとは限りません。 Outlook がイベント ハンドラーを呼び出す順序は、発生する可能性のあるほかのイベントによって異なったり、Outlook の将来のバージョンで変更される可能性があります。

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。