Ich möchte das aktive geöffnete MailItem erhalten (ob es eine neue Mail oder eine empfangene Mail ist). Ich muss etwas Inhalt zu dieser Mail hinzufügen, wenn der Benutzer mein Makro ausführt. Ich verwende Outlook 2003 und VBA.
Ich habe folgendes gefunden: Wie erhalten Sie einen Verweis auf die E-Mail im aktuell geöffneten Fenster in Outlook mit VBA? Funktioniert aber nicht, weil TypeName(Application.ActiveWindow)
auf nichts gesetzt ist. Ich habe auch versucht, Set Mail = Application.ActiveInspector.currentItem
, aber es funktioniert auch nicht.
Es muss etwas geben, was ich nicht über die ActiveInspector -Ding verstehe.
Bei Bedarf ist dies die Prozedur / das Makro in einem dedizierten Modul, das aufgerufen wird, wenn der Benutzer auf eine Menüschaltfläche klickt, die in der Methode Application_Startup()
hinzugefügt wurde:
Ich weiß nicht genau, was mit deinem Code nicht stimmt. Zum einen bestätigen Sie jedoch nicht, dass eine neue, bearbeitbare E-Mail geöffnet ist. Der folgende Proof-of-Concept macht genau das, was Sie meiner Meinung nach tun möchten: Fügen Sie einen Text in die aktive E-Mail ein, die gerade erstellt wird. Wenn dies nicht möglich ist, wird ein Meldungsfeld angezeigt, in dem der Grund erläutert wird.
Der Teil, der Text einfügt, funktioniert nur, wenn Word als E-Mail-Editor verwendet wird ( IMMER der Fall in Outlook 2010 sein ). Wenn dies nicht der Fall ist, müssen Sie den Body- oder HTMLBody-Text direkt analysieren und aktualisieren.
%Vor%Meinst du die aktuell ausgewählte Nachricht? In diesem Fall müssen Sie die Application.ActiveExplorer.Selection-Auflistung verwenden, nicht Application.ActiveInspector.CurrentItem.