こんにちは、くのへ@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
解説は以上!!
🦅バサバサ~