MailItem.BeforeDelete イベント (Outlook)
アイテム (親オブジェクトのインスタンス) が削除される前に発生します。
構文
式。BeforeDelete (Item, Cancel)
expression は MailItem オブジェクトを表す変数です。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
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
関連項目
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。