ユーザーが [送信] ボタンを押すたびに電子メールの件名を見るマクロを作成しようとしています。
ただし、そのボタンをリッスンするドキュメントは見つかりません。今MsgBox
のところ、メールが送信されたときに件名を付けて送信するようにしようとしています。このボタンをリッスンし ( DOM の観点から考える)、クリック時にマクロを起動する方法はありますか。
シッダールスが示唆するように:
送信操作をキャンセルする必要があるかどうかを判断するいくつかの条件をチェックする小さなデモを作成しました。これを拡張して、日付の挿入、メールのフォルダーへの保存など、他のことを行うことができます...
Option Explicit
Private Sub Application_ItemSend(ByVal objItem As Object, Cancel As Boolean)
Dim mi As MailItem
If TypeName(objItem) = "MailItem" Then
Set mi = objItem
Debug.Print mi.Subject
check Cancel, Trim(mi.Subject) <> "", "Subject is empty!"
check Cancel, Not isRecipient(mi, "John@Doe.net"), _
"John is on our embargo list!"
End If
End Sub
Private Sub check(ByRef Cancel As Boolean, cond As Boolean, msg As String)
If Not (Cancel Or cond) Then
Cancel = (MsgBox(msg & vbCrLf & "Cancel send operation?", _
vbYesNoCancel, "Confirm?") <> vbNo)
End If
End Sub
Private Function isRecipient(mi As MailItem, forbidden As String) As Boolean
Dim ret As Boolean
Dim rc As Recipient
ret = False
For Each rc In mi.recipients
If StrComp(rc.Address, forbidden, vbTextCompare) = 0 Then
ret = True
Exit For
End If
Next
isRecipient = ret
End Function