我對 VBA 還很陌生(如果這是一個愚蠢的問題,我很抱歉),儘管我已經為 excel 中的按鈕之類的小型應用程式編寫了幾年程式碼。但這一點我一直沒有弄清楚;我想在 Outlook 的自動循環中實作此 BCC 提示功能。當我運行巨集時,它工作正常,直到我重新啟動 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()
.