004 Outlook VBA 送信時に本当に送っていいか確認するマクロ(送信イベント)

こんにちは、くのへ@MasazaneKunoheです。

「送信イベント」の基本コードを纏めました。

送信時に本当に送っていいか確認するマクロ

メールを送った時、あっ!!タイトルにちょっと誤記が!!ってありませんか?
このコードを書くと、送信ボタンを押したときにメッセージボックスが出てきて、本当に送っていいですか?って聞いてくれます。
そして、Noを押すと送信キャンセルになります。

今回作ったコードは「送信イベント」の基本コードになります。

↓コピペで動きます

Private Sub Application_ItemSend(ByVal objItem As Object, boolCancel As Boolean)

    If MsgBox("本当に送っていいですか?", vbYesNo) = vbNo Then
        boolCancel = True
    End If

End Sub

ただし、「送信時に動作」のようなイベント系のマクロは、標準モジュールに入れては動きません。ThisOutlookSessionの方に入れる必要があることに注意が必要です。

↓こっちに入れる必要あり

解説

送信を押したときに自動起動させたい時にはApplication_ItemSendの呪文を唱えます。
とりあえず↓このシンプルな呪文を唱えてみましょう。

Private Sub Application_ItemSend(ByVal objItem As Object, boolCancel As Boolean)

    MsgBox "メール送信時に実行します"

End Sub

これをVBAに書いてメールを送信すると、「メール送信時に実行します」というメッセージボックスが表示されます。

送信メールデータはobjItemの中に格納される

先ほどの呪文を唱えると、↓赤字にしたこのobjItemに送信メールデータが格納される、ということを覚えておくと色々と応用できます。

Application_ItemSend(ByVal objItem As Object, boolCancel As Boolean)

このobjItemから送信メールの件名(subject)や本文(body)を抽出できます。

↓こんな感じです

Private Sub Application_ItemSend(ByVal objItem As Object, boolCancel As Boolean)

    MsgBox objItem.Body

End Sub

こいつを使えば、「送信メールの件名が○○で始まる時」みたいなイベントが作れますよ!!

送信自体をキャンセル出来る

先ほどの呪文を唱えた後、↓赤字にしたこのboolCancelにTrueをいれると、送信自体をキャンセルできます。

Application_ItemSend(ByVal objItem As Object, boolCancel As Boolean)

↓こんな感じです

これで送信ボタンを押したときにメッセージボックスが出てきて、Noを押すと送信キャンセルになります。

Private Sub Application_ItemSend(ByVal objItem As Object, boolCancel As Boolean)

    If MsgBox("本当に送っていいですか?", vbYesNo) = vbNo Then
        boolCancel = True
    End If

End Sub

解説は以上!!

🦅バサバサ~

感想等はツイッターにお願いします。こちら。
くのへスタジオはこちら。
Outlook-VBAコーナーはこちら。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です