MailItem.BeforeDelete イベント (Outlook)

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

構文

BeforeDelete (Item, Cancel)

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

パラメーター

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

注釈

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

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

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

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 のサポートおよびフィードバックを参照してください。