Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Mail per VBA öffnen und als TXT abspeichern

Forumthread: Mail per VBA öffnen und als TXT abspeichern

Mail per VBA öffnen und als TXT abspeichern
12.07.2002 09:28:45
Markus
Hallo,

nachdem man mir so toll in diesem Forum erklärt hat, wie man Attachments von Outlook-Mails per VBA abspeichert.

Vielleicht kann mir doch jemand sagen, wie man per VBA in Excel Mails aus Outlook öffnet und als .txt abspeichert.

Attachments gehen so, wobei objMsg den Betreff der Mail enthält :

Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")

Set objFolder = objnSpace.Folders(Ordner1).Folders(Ordner2).Folders(Ordner3)

Set objMsg = objFolder.Items(1) ' Erstes Mail im objFolder

objMsg.Attachments.Item(Anlage_Nr).SaveAsFile Speicher_Pfad + objMsg.Attachments.Item(Anlage_Nr)

Ich habe es mit objMsg.SaveAsFile Speicher_Pfad + "test.txt" probiert. Das hat aber leider nicht geklappt.

Vielleicht kann mir jemand sagen, wie das klappt.
Und dann noch eins,

Wie deklariere ich objMsg als MailItem, damit ich alle Infos außer der Betreffzeile in eine Variable einlesen kann.

Hoffentlich kann mir jemand freundlicherweise helfen, den das Forum ist wirklich spitze.

Markus

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Mail per VBA öffnen und als TXT abspeichern
12.07.2002 10:13:10
Hans W. Herber
Hallo Markus,

der folgende Code beantwortet beide Fragen, denk ab dran, dass in der Entwicklungsumgebung ein Verweis zur Microsoft Outlook Object Library hergestellt sein muss:

hans

Nachfrage an Hans
12.07.2002 10:21:24
Michael Scheffler
Hallo Hans,

wie kriegt man denn VBA dazu, dass es nicht mehr die lästige Outlook-Meldung "Ein Programm versucht..." einstreut, die auf Bestätigung wartet. Ich habe mir schon ein Zertifikat erzeugt und diese auch bei Outlook registriert.

Ich versteh' das nicht, wenn ich auch meinem Rechner auf mein Konto zugreife?

Gruß

MichA

Anzeige

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Mails per VBA öffnen und als TXT abspeichern


Schritt-für-Schritt-Anleitung

  1. Verweis zur Microsoft Outlook Object Library hinzufügen:

    • Öffne den VBA-Editor in Excel (ALT + F11).
    • Gehe zu "Extras" > "Verweise".
    • Suche und aktiviere die "Microsoft Outlook XX.0 Object Library" (XX hängt von Deiner Office-Version ab).
  2. VBA-Code zum Öffnen und Speichern der Mail erstellen:

    Sub MailSpeichern()
       Dim objOutlook As Object
       Dim objNamespace As Object
       Dim objFolder As Object
       Dim objMsg As Object
       Dim Speicher_Pfad As String
    
       Speicher_Pfad = "C:\Dein\SpeicherPfad\" ' Passe den Pfad an
    
       Set objOutlook = CreateObject("Outlook.Application")
       Set objNamespace = objOutlook.GetNamespace("MAPI")
       Set objFolder = objNamespace.Folders("Ordner1").Folders("Ordner2").Folders("Ordner3")
       Set objMsg = objFolder.Items(1) ' Erstes Mail im objFolder
    
       ' Speichern als TXT
       objMsg.SaveAs Speicher_Pfad & "test.txt", 1 ' 1 steht für olTXT
    
       MsgBox "Mail gespeichert!"
    End Sub

Häufige Fehler und Lösungen

  • Fehler: Mail wird nicht als TXT gespeichert:

    • Stelle sicher, dass der Dateipfad korrekt ist und die Berechtigungen zum Schreiben vorhanden sind.
  • Fehler: Outlook-Meldung "Ein Programm versucht..." erscheint:

    • Diese Meldung kann durch Sicherheitsoptionen in Outlook verursacht werden. Eine Lösung wäre, ein Zertifikat zu erstellen und es in Outlook zu registrieren, wie Michael Scheffler es erwähnt hat.

Alternative Methoden

  • Verwendung von Power Automate:
    • Wenn VBA zu kompliziert ist, kann auch Power Automate verwendet werden, um E-Mails automatisch als TXT zu speichern. Dies erfordert jedoch eine andere Herangehensweise und eventuell zusätzliche Lizenzen.

Praktische Beispiele

  • Beispiel für mehrere Mails speichern:

    Sub MehrereMailsSpeichern()
      Dim objOutlook As Object
      Dim objNamespace As Object
      Dim objFolder As Object
      Dim objMsg As Object
      Dim i As Integer
      Dim Speicher_Pfad As String
    
      Speicher_Pfad = "C:\Dein\SpeicherPfad\"
    
      Set objOutlook = CreateObject("Outlook.Application")
      Set objNamespace = objOutlook.GetNamespace("MAPI")
      Set objFolder = objNamespace.Folders("Ordner1").Folders("Ordner2").Folders("Ordner3")
    
      For i = 1 To objFolder.Items.Count
          Set objMsg = objFolder.Items(i)
          objMsg.SaveAs Speicher_Pfad & "Mail_" & i & ".txt", 1
      Next i
    
      MsgBox "Alle Mails gespeichert!"
    End Sub

Tipps für Profis

  • Objektvariablen deklariert halten:

    • Deklariere objMsg als MailItem, um spezifische Eigenschaften und Methoden nutzen zu können:
      Dim objMsg As Outlook.MailItem
  • Fehlerbehandlung einfügen:

    • Füge Fehlerbehandlungsroutinen hinzu, um potenzielle Probleme während der Ausführung des Codes zu erkennen.

FAQ: Häufige Fragen

1. Wie deklariere ich objMsg als MailItem? Um objMsg als MailItem zu deklarieren, nutze den folgenden Code:

Dim objMsg As Outlook.MailItem
Set objMsg = objFolder.Items(1) ' Zuweisung des ersten Mail-Elements

2. Wie kann ich den Betreff einer Mail abrufen? Du kannst den Betreff mit der folgenden Zeile abfragen:

Dim betreff As String
betreff = objMsg.Subject

Nutze diese Anleitungen, um Mails per VBA in Outlook zu öffnen und als TXT zu speichern. Mit den richtigen Einstellungen und etwas VBA-Kenntnis kannst Du deine E-Mail-Verwaltung erheblich verbessern.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige