Ich bin noch ziemlich neu bei VBA (tut mir also leid, wenn das eine dumme Frage ist), obwohl ich schon seit ein paar Jahren kleine Anwendungen für „Gefällt mir“-Schaltflächen in Excel oder so etwas programmiere. Aber das hier ist mir nie klar geworden: Ich möchte diese BCC-Eingabeaufforderungsfunktion in einer automatischen Schleife für Outlook implementieren. Wenn ich das Makro ausführe, funktioniert es einwandfrei, bis ich Outlook neu starte. Warum muss ich dieses Makro jedes Mal wieder neu aktivieren, wenn ich Outlook starte? Ich habe es in ThisOutlooksession platziert, alle Makros aktiviert (muss das übrigens für immer aktiviert sein? Scheint mir unsicher), aber ohne Erfolg. Wenn mir jemand helfen könnte, wäre das großartig! Vielen Dank im Voraus.
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
Antwort1
So führen Sie es automatisch aus Initialize_handler
:
Private Sub Application_startup()
Initialize_handler
End Sub
Sie können es vereinfachen mit:
Private Sub Application_startup()
Set myolApp = CreateObject("Outlook.Application")
End Sub
Sie können es vereinfachen, indem Sie den gesamten Code weglassen und stattdessen Folgendes verwenden:
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
Antwort2
Verwenden Sie Application_Startup()
anstelle von Initialize_handler()
.