2

ユーザーが [送信] ボタンを押すたびに電子メールの件名を見るマクロを作成しようとしています。

ただし、そのボタンをリッスンするドキュメントは見つかりません。今MsgBoxのところ、メールが送信されたときに件名を付けて送信するようにしようとしています。このボタンをリッスンし ( DOM の観点から考える)、クリック時にマクロを起動する方法はありますか。

4

1 に答える 1

4

シッダールスが示唆するように:

送信操作をキャンセルする必要があるかどうかを判断するいくつかの条件をチェックする小さなデモを作成しました。これを拡張して、日付の挿入、メールのフォルダーへの保存など、他のことを行うことができます...

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
于 2013-04-16T20:05:33.233 に答える