次の方法で共有


イベントのキャンセル

Outlook ではプログラムのイベント ハンドラーが呼び出されて、メッセージ ストア内でユーザーが行った操作、または変更などのイベントにプログラムが応答します。 各イベントには、イベントの結果として行う既定の操作があります。 たとえば、あるアイテムに Open イベントが実行されると、既定ではインスペクター ウィンドウにアイテムが表示されます。

一部のイベントは、特定のイベントが発生したことをプログラムにのみ通知します。 これらのイベントの場合、イベント ハンドラーは単にイベントに応答します。 その他のイベントでは、イベント ハンドラーがイベントを取り消すことができます。つまり、イベントに関連付けられている既定のアクションを実行しないように Outlook に指示できます。 たとえば、 Open イベントの場合、プログラムは Outlook がインスペクターにアイテムを表示できないようにすることができます。 イベントを取り消すことができる場合、イベントを説明する参照トピックは、イベントを取り消す方法を示します。

イベントがキャンセル可能な場合、Visual Basic または Microsoft Visual Basic for Applications で記述したイベント ハンドラーでパラメーターを受け取り、イベントをキャンセルするかどうかを示す値を設定してから、そのパラメーターを返します。 たとえば、Visual Basic for Applications で記述した Open イベントのイベント ハンドラーは、次のようになります。 この例は、OpenOK の値がほかの場所で設定されていることを前提としています。

Sub myItem_Open(byRef Cancel as Boolean) 
 If OpenOK Then 
 Cancel = False ' Outlook performs default action 
 Else 
 Cancel = True ' Outlook does not perform default action 
 EndIf 
End Sub

ただし、VBScript の場合は制限があるので、この構文は使用できません。 アイテムのスクリプトでの Open イベントのイベント ハンドラーは、関数として記述する必要があります。 イベントを取り消すには、次の例に示すように、その関数の値が返される前に値を False に設定します。

Function Item_Open() 
 If OpenOK Then 
 Item_Open = True ' Outlook performs default action 
 Else 
 Item_Open = False ' Outlook does not perform default action 
 End If 
End Function

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

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