私はまだ 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()
。