Outlook BCCプロンプトVBAが自動的に実行されない

Outlook BCCプロンプトVBAが自動的に実行されない

私はまだ VBA の初心者です (馬鹿げた質問だったらすみません)。ただし、数年前から Excel のボタンなどの小さなアプリケーションをコーディングしています。しかし、これは私にとっては明確ではありませんでした。この BCC プロンプト機能を Outlook の自動ループに実装したいのです。マクロを実行すると、Outlook を再起動するまでは正常に動作します。Outlook を起動するたびに、なぜこのマクロを毎回何度も再アクティブ化する必要があるのでしょうか。マクロを ThisOutlooksession に配置し、すべてのマクロを有効にしましたが (ところで、これは永久に有効にしておく必要がありますか? 私には安全ではないようです)、成功しませんでした。誰かが私を助けてくれると嬉しいです! よろしくお願いします。

Public WithEvents myOlApp As Outlook.Application

Public Sub Initialize_handler()
    Set myOlApp = CreateObject("Outlook.Application")


End Sub

Private Sub myOlApp_ItemSend(ByVal Item As Object, Cancel As Boolean)


Dim prompt As String
prompt = "The BCC Field is empty!"



If Item.BCC = "" Then


    If msgbox(prompt, vbYesNo + vbQuestion, "BCC Field") = vbNo Then
    Cancel = True
    End If
 End If

End Sub

答え1

自動的に実行するにはInitialize_handler:

Private Sub Application_startup()
    Initialize_handler
End Sub

次のように簡略化できます。

Private Sub Application_startup()
    Set myolApp = CreateObject("Outlook.Application")
End Sub

すべてのコードを削除し、代わりにこれを使用することで簡素化できます。

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    Dim prompt As String
    prompt = "The BCC Field is empty!"

    If Item.BCC = "" Then
        If MsgBox(prompt, vbYesNo + vbQuestion, "BCC Field") = vbNo Then
            Cancel = True
        End If
    End If

End Sub

答え2

Application_Startup()の代わりにを使用しますInitialize_handler()

関連情報