kaiuwe28
Goto Top

E-Mail aus Outlook via Excel auslesen - Betreff mit regulären Ausdrücken ermitteln

Hallo zusammen,

ich komme gerade nicht weiter. Ziel ist es eine Mail aus einen bestimmten Zeitraum und einen bestimmten Betreff auszulesen und in Excel wieder zugeben.
Einen entsprechenden Code hierfür hatte ich bereit gefunden und für einige Sachen angepasst, dass funktioniert auch super.

Jetzt möchte ich aber Mails auslesen, aus einem bestimmten Zeitraum und einen leicht abweichenden Betreff.

Die Mail kommt immer von gleichen Absender. Es handelt sich um eine Weiterleitungsregel aus einen anderen Funktionspostfach. Der Betreff hat immer den identischen Anfang.

"FW: Verarbeitung System Global" danach kommen unterschiedliche Bezeichnungen und ein Datum.

Uwe "Colinardo" hatte mir bei einem ähnlichen Thema schon einmal einen Code geschrieben, wo er reguläre Ausdrücke verwendet hat.

In meinen Fall wäre es wahrscheinlich folgender Ausdruck:

regex.Pattern = "(FW: Verarbeitung System Global)"   

Wie setzte ich den aber in der Schleife ein mit meiner vorhandenen Abfrage:

'Beginn Schleifendurchlauf (Schleife 1)  -> die Variable 'i' läuft solange, wie Anzahl der EMails vorhanden sind  
While i < AnzahlEmail
    i = i + 1
'  
    'Anzeigen einer Nachricht in der Statuszeile  
    Application.StatusBar = "Lese Posteingang " & _  
        Format(i / AnzahlEmail, "0%")  
        'Was soll mit den Nachrichten geschehen?  (Schleife 2)  
    
        With olOrdner.Items(i)
            If .Subject = "FW: Verarbeitung System Global" Then  
                Email = Email + 1
                'Zelle 1 mit dem Wert Betreff in der EMail  
                Cells(Email + 1, 1).Value = .Subject
                'Zelle 2 mit dem Wert 'Empfangen am' in der EMail  
                Cells(Email + 1, 2).Value = .ReceivedTime
                'Zelle 3 Absender  
                Cells(Email + 1, 3).Value = .SenderName
                'Zelle 4 der gelesenen Nachrichten  
                Cells(Email + 1, 4).Value = Not .UnRead
                'Zelle 5 mit der eigentlichen Nachricht  
                Cells(Email + 1, 5).Value = .Body
                'Zelle 6 -> Anzahl der Anhänge in der EMail  
                Cells(Email + 1, 6).Value = .Attachments.Count
            End If
        'Ende der Schleife 2  
        Debug.Print Email
        End With

    
'Ende der Schleife 1  
Wend

Sollte der gesamte Code erforderlich sein, dann stelle ich diesen auch gerne hier rein.

Vielen Dank euch schon einmal für Hilfe.

Viele Grüße

Jens

Content-ID: 364881

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

Ausgedruckt am: 16.11.2024 um 19:11 Uhr

135333
Lösung 135333 17.02.2018 aktualisiert um 12:23:58 Uhr
Goto Top
Regular Expressions
Wie setzte ich den aber in der Schleife ein mit meiner vorhandenen Abfrage:
In der Schleife hier in zwischen Zeile 11 und 12, den Test einbauen mit
regex.Pattern = "^FW: Verarbeitung System Global"  
if regex.Test(.Subject) then
 ' ...... hier weiter wenn Regex zutrifft  
End if
Gruß Snap
kaiuwe28
kaiuwe28 19.02.2018 um 09:12:59 Uhr
Goto Top
Super und vielen Dank!

Kannst du mir eigentlich sagen, was das Test da bedeutet? Ist das eine feste Variable?
135333
135333 19.02.2018 aktualisiert um 09:15:17 Uhr
Goto Top
Zitat von @kaiuwe28:

Kannst du mir eigentlich sagen, was das Test da bedeutet? Ist das eine feste Variable?
Das ist eine Funktion des Regex Objektes welche einen Boolean Wert zurückgibt, True wenn der Regex zutrifft, False wenn nicht.