Outlook Visual Basic for Applications を使用して Outlook イベントに応答する

イベント プロシージャ (イベント ハンドラーともいう) を作成し、Microsoft Outlook で発生したイベントに応答します。 たとえば、Outlook の開始時にエクスプローラー ウィンドウを自動的に最大化するイベント プロシージャを作成できます。

イベントは特定のオブジェクトに関連付けられます。 Application オブジェクトは最上位のオブジェクトであり、常に使用できます (つまり、作成する必要はありません)。 左側の一覧で [アプリケーション] を選択し、右側の一覧でイベントを選択するだけで、Application イベント プロシージャを ThisOutlookSession モジュール ウィンドウに追加できます。

Application 以外のオブジェクトのイベント ハンドラーを追加する場合、さらにいくつかの手順が必要になります。

最初に、WithEvents キーワードを使用して、処理するイベントが含まれるオブジェクトを特定するための変数を宣言しなければなりません。 たとえば、OutlookBarPane オブジェクトを表す変数を宣言するには、コード モジュールに以下のコードを追加します。

Dim WithEvents myOlBar as Outlook.OutlookBarPane

その後、モジュール ウィンドウの [オブジェクト] リストでを選択 myOlBar し、プロシージャ の一覧でイベントを選択できます。 Visual Basic Editor で、イベント プロシージャ用のテンプレートがモジュール ウィンドウに追加されます。 そこに、イベントの発生時に実行するコードを入力できます。 以下の例は、 OutlookBarPane オブジェクトに対する BeforeNavigateイベント プロシージャに追加したコードを示しています。

Private Sub myOlBar_BeforeNavigate(ByVal Shortcut As OutlookBarShortcut, Cancel As Boolean) 
 If Shortcut.Name = "Notes" Then 
 MsgBox "You cannot open the Notes folder." 
 Cancel = True 
 End If 
End Sub

最後の手順では、ハンドルするイベントが含まれるオブジェクトにオブジェクト変数を設定するためのコードを追加します。 このコードはマクロに含めることもできますし、Outlook の実行時に必ずそのイベントをハンドルする場合には、以下の例に示すように Startup イベント プロシージャ内に配置できます。

Private Sub Application_Startup() 
 Set myOlBar = Application.ActiveExplorer.Panes(1) 
End Sub

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

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