Excel vba: Aus Outlook Daten auslesen
#11
Hallo André,

ich komme nicht so recht weiter, denn es handelt sich nur um mails.

In der Überwachung sehe ich wenn das Makro abbricht leider nichts - nur das hier.
Watch : : objMsg : Nothing : MailItem : Mod_Mailimport.MailsImportieren

Wo müsste ich denn auf das MailItem abfragen?

Nachtrag:
Ich glaube ich habe herausgefunden warum das Makro nicht durchläuft. Es stolpert über eine Lesebestätigung und listet diese dann auch nicht auf.
Aber ich benötige diese (alle) Lesebestätigungen leider auch in der Auflistung aller Mails in einem Ordner.
Wie müsste das Marko aussehen damit ich diese auch auflisten kann bzw. keine Fehlermeldung bekomme?

Hoffe Du, Ihr könnt mir da noch weiterhelfen!?
Top
#12
Hallo Erich,

füge noch einen Else-Zweig hinzu, im Prinzip erst mal nur:
If TypeName(objMsg) = "MailItem" Then
...
Else
   Stop
End If

Dann schaust Du in der Überwachung Dein Objekt an und was Du davon für Eigenschaften auslesen willst. Ob das dann mit Deiner

Function EmailTextExtraction(Field As String, Message As Outlook.MailItem)

geht, sei mal dahingestellt. Zumindest müsstest Du die Message als Object deklarieren oder eben für die Lesebestätigung eine Function mit dem ReportItem erstellen.. Wenn Du weitere Typen drin hast und listen willst, musst Du das entsprechend berücksichtigen (Einladung = MeetingItem)
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • sharky51
Top
#13
Hallo André,

jetzt bin ich ein Stückchen weiter.
Ich habe mal folgendes probiert:

Code:
Dim objMsg As Object
......
If TypeName(objMsg) = "MailItem" Or TypeName(objMsg) = "ReportItem " Then
     LRow = LRow + 1
     myAr(LRow, 1) = lngAnzahl
     myAr(LRow, 2) = objMsg.SenderEmailAddress 'Mail- Adresse
     myAr(LRow, 3) = objMsg.ReceivedTime 'Datum
     myAr(LRow, 4) = objMsg.Subject 'Betreff
     myAr(LRow, 5) = objMsg.To 'Empfänger
Else
 Stop
End If
......

Der Stopp im Else-Zweig wiederspiegelt genau diese "Lesebestätigungs-Rückmeldung wo das Ganze dann hängen bleibt.
Wenn ich den Else-Zweig auskommentiere läuft der Code ohne Fehler durch, aber leider wird das ReportItem nicht aufgelistet.
Bzw. was muss angegeben werden um dieses Item aufzulisten?

Vielen Dank für eine weitere Rückmeldung!
Top
#14
Hallo Erich,

das ReportItem muss in den Else-Zweig...

If TypeName(objMsg) = "MailItem" Then
...
ElseIf TypeName(objMsg) = "ReportItem" Then
Stop
End If

Was man da rausholen kann, steht z.B. bei MS:
https://docs.microsoft.com/de-de/office/...ReportItem

oder eben in der Überwachung.

Da siehst Du, dass es z.B. keinen Sender und kein To gibt. Dazu müsstest Du z.B. den Body auseinander nehmen, z.B. mit INSTR nach An, Gesendet, wurde am … gelesen suchen und den Teilstring bis zum Zeilenvorschub extrahieren. Allerdings müsstest Du eventuell auch prüfen, wie so eine Lesebestätigung bei verschiedenen E-Mail-Programmen und Sprachversionen aussieht.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste