albertminrich
Goto Top

Outlook neue Nachricht Betreff auslesen ist leer

Hallo,

Outlook 2010.
Ich möchte, wenn jemand eine Mail schreibt, einen Button im Menüband zur Verfügung stellen, der beim Anklicken den Betreff ergänzt.
Ich lese den aktuellen Betreff aus, ergänze ihn und schreibe ihn zurück.
Funktioniert auch. Allerdings kann der Betreff erst ausgelesen werden, wenn der Focus (der Cursor) nicht mehr im Betreff steht bzw. ihn wenigstens einmal verlassen hat.

Ich breche den Code mal auf das nötigste runter, auf das Auslesen des Betreff's:

Sub Betreff_aendern()
    Dim olMail As Outlook.MailItem
    Set olMail = Application.ActiveInspector.CurrentItem
    MsgBox "Alter Betreff: " & olMail.Subject  
End Sub

Vorgensweise 1:
  • Neue Mail öffnen
  • Ins Feld Betreff klicken
  • Betreff schreiben
  • Feld Betreff verlassen (durch <TAB> oder durch Klicken in irgendein anderes Feld)
  • Makro ausführen
Funktioniert. Der Betreff wird in einer Messagebox ausgegeben.

Vorgensweise 2:
  • Neue Mail öffnen
  • Ins Feld Betreff klicken
  • Betreff schreiben
  • Feld Betreff NICHT verlassen
  • Makro ausführen
Funktioniert nicht. Es wird eine leere Messagebox ausgegeben.

In der Praxis wird das wohl so gut wie nie vorkommen, aber trotzdem, kann man das irgendwie abfangen. Vielleicht einfach, indem man den Focus z.B. ins Feld Body wechselt?
Aber wie?

Danke
Gruß
Martin

Content-Key: 627428

Url: https://administrator.de/contentid/627428

Printed on: April 23, 2024 at 07:04 o'clock

Member: StefanKittel
StefanKittel Dec 03, 2020 at 07:13:14 (UTC)
Goto Top
Hallo,

schau mal ob es für das Feld ein Dirty-Flag gibt.
Dann kannst Du zumindest vergleichen.
(Dirty-Flag==TRUE) AND (olMail.Subject=="") -> Sonderaktion oder Warnung

Stefan
Mitglied: 146707
Solution 146707 Dec 03, 2020 updated at 08:56:18 (UTC)
Goto Top
Ich würde den Betreff einfach im ItemSend Event abändern dann brauchst du auch keinen extra Button face-wink.

Aber wenn du das unbedingt so willst, so kannst du das umgehen
With ActiveInspector
    ' im Editor in Zeile 1 springen  
    .WordEditor.GoTo(3, 1).Select
    ' Mail zwischen speichern  
    .CurrentItem.Save
    ' Subject ausgeben  
    msgbox .CurrentItem.SUBJECT
End With
Member: AlbertMinrich
AlbertMinrich Dec 06, 2020 at 10:49:02 (UTC)
Goto Top
Zitat von @146707:

Ich würde den Betreff einfach im ItemSend Event abändern dann brauchst du auch keinen extra Button face-wink.
Den Button brauche ich, weil das Wort, um den der Betreff ergänzt werden soll, erst vom User eingegeben werden muss.

Aber wenn du das unbedingt so willst, so kannst du das umgehen
> With ActiveInspector
>     ' im Editor in Zeile 1 springen  
>     .WordEditor.GoTo(3, 1).Select
>     ' Mail zwischen speichern  
>     .CurrentItem.Save
>     ' Subject ausgeben  
>     msgbox .CurrentItem.SUBJECT
> End With
> 

Funktioniert einwandfrei.

Danke und Gruß
Martin