次の方法で共有


MailItem.BeforeDelete イベント (Outlook)

アイテム (親オブジェクトのインスタンス) が削除される前に発生します。

構文

BeforeDelete (Item, Cancel)

expressionMailItem オブジェクトを表す変数です。

パラメーター

名前 必須 / オプション データ型 説明
Item 必須 オブジェクト型 (Object) 削除されるアイテムです。
Cancel 必須 Boolean False イベントが発生します。 イベント プロシージャでこの引数に True を設定する場合、操作は完了せず、アイテムは削除されません。

注釈

このイベントが、電子メール メッセージ、配布リスト、ジャーナルエントリ、タスク、連絡先、または投稿がアクションを通じて削除されたときに発生するには、インスペクターを開く必要があります。

このイベントは、アイテムが削除されるたびに発生します。

次のVisual Basic for Applications (VBA) の例では、現在開いている項目を削除するかどうかをユーザーに求めます。 この例を実行するには、削除できる開いている電子メール アイテムが必要です。 [いいえ] をクリックすると、アイテムは削除されません。 このイベントがキャンセルされた場合、 Microsoft Outlookには、エラー メッセージが表示されます。 したがって、コード内でこのイベントをキャプチャする必要があります。 これを行う方法の 1 つを次に示します。 サンプル コードは、 などの ThisOutlookSessionクラス モジュールに配置する必要があり、イベント プロシージャを DeleteMail() Outlook から呼び出す前にプロシージャを呼び出す必要があります。

Public WithEvents myItem As Outlook.MailItem 
 
 
 
Public Sub DeleteMail() 
 
 Const strCancelEvent = "Application-defined or object-defined error" 
 
 On Error GoTo ErrHandler 
 
 Set myItem = Application.ActiveInspector.CurrentItem 
 
 myItem.Delete 
 
 Exit Sub 
 
 
 
ErrHandler: 
 
 MsgBox Err.Description 
 
 If Err.Description = strCancelEvent Then 
 
 MsgBox "The event was cancelled." 
 
 End If 
 
 'If you want to execute the next instruction 
 
 Resume Next 
 
 'Otherwise it will finish here 
 
End Sub 
 
 
 
Private Sub myItem_BeforeDelete(ByVal Item As Object, Cancel As Boolean) 
 
 'Prompts the user before deleting an item 
 
 Dim strPrompt As String 
 
 
 
 'Prompt the user for a response 
 
 strPrompt = "Are you sure you want to delete the item?" 
 
 If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbNo Then 
 
 'Don't delete the item 
 
 Cancel = True 
 
 End If 
 
End Sub

関連項目

MailItem オブジェクト

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

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