Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA & Outlook & Anhänge speichern 2

VBA & Outlook & Anhänge speichern 2
07.06.2018 08:28:29
Christian
Hallo
ich nehme Bezug auf folgenden Beitrag:
https://www.herber.de/forum/archiv/1520to1524/1523625_VBA_amp_Outlook_amp_Anhaenge_speichern.html
Der Code funktioniert im Outlook Posteingang wunderbar.
Jetzt benötige ich diese Funktion für den Posteingang im Outlook Archive.
Ist das möglich?
Der Code verwendet die Folderkonstante "olFolderInbox" wie kann ich jetzt deklarieren, dass nicht der normale Posteingangsordner, sondern der Posteingangsordner im Arcive durchsucht wird?
Vielen Dank für eure Hilfe!
Sub Anlagen_Speichern(olMail As MailItem)
'Objekte/Variablen deklarieren
Dim Ziel As String
Dim Anlagen As Attachments
Dim i As Integer
'Speicherordner angeben (bitte mit Backslash abschließen!)
Ziel = "C:\Bastian\Add\"
'Abbruch, wenn Ordner nicht vorhanden
If Dir(Ziel, vbDirectory) = "" Then Exit Sub
'Mailanhänge ermitteln
Set Anlagen = olMail.Attachments
If Anlagen.Count  0 Then
Ziel = Ziel & olMail.Sender & "\"
If Dir(Ziel, vbDirectory)  "" Then
Else
MkDir (Ziel)
End If
'alle Anhänge der Mail durchlaufen und speichern
For i = 1 To Anlagen.Count
'Dateiname zusammensetzen, Datum ist Empfangsdatum der Mail
If Anlagen.Item(i).Type  6 Then
Datei = Ziel & Format(olMail.ReceivedTime, "dd.mm.yyyy") & "_" & Anlagen.Item(i).Filename
'Anlage speichern
Anlagen.Item(i).SaveAsFile Datei
End If
Next i
End If
End Sub
Sub Los()
Dim objNS As Outlook.Namespace
Set objNS = GetNamespace("MAPI")
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
Dim oFolder As Outlook.MAPIFolder
Dim oMail As Outlook.MailItem
For Each oMail In Items
Call Anlagen_Speichern(oMail)
Next
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Auf das Archiv in Outlook kannst...
07.06.2018 09:14:10
Case
Hallo, :-)
... Du prinzipiell so zugreifen: ;-)
Set Items = objNS.Folders("Archive").Folders("Posteingang")
Servus
Case

AW: Auf das Archiv in Outlook kannst...
07.06.2018 10:29:51
Christian
Hallo,
das klappt super, vielen Dank!!!
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
Anzeige

Infobox / Tutorial

Anhänge aus Outlook speichern mit VBA


Schritt-für-Schritt-Anleitung

Um alle Anhänge aus mehreren Mails gleichzeitig zu speichern, kannst Du den folgenden VBA-Code verwenden. Dieser Code speichert die Anhänge in einem festgelegten Zielordner. Du kannst ihn anpassen, um auch Anhänge aus dem Archiv-Posteingang zu speichern.

  1. Öffne Outlook und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:
    • Klicke im Menü auf Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub Anlagen_Speichern(olMail As MailItem)
    Dim Ziel As String
    Dim Anlagen As Attachments
    Dim i As Integer

    Ziel = "C:\Bastian\Add\" ' Speicherordner angeben
    If Dir(Ziel, vbDirectory) = "" Then Exit Sub

    Set Anlagen = olMail.Attachments
    If Anlagen.Count > 0 Then
        Ziel = Ziel & olMail.Sender & "\"
        If Dir(Ziel, vbDirectory) = "" Then MkDir (Ziel)

        For i = 1 To Anlagen.Count
            If Anlagen.Item(i).Type <> 6 Then
                Dim Datei As String
                Datei = Ziel & Format(olMail.ReceivedTime, "dd.mm.yyyy") & "_" & Anlagen.Item(i).Filename
                Anlagen.Item(i).SaveAsFile Datei ' Anlage speichern
            End If
        Next i
    End If
End Sub

Sub Los()
    Dim objNS As Outlook.Namespace
    Set objNS = GetNamespace("MAPI")
    Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
    Dim oMail As Outlook.MailItem
    For Each oMail In Items
        Call Anlagen_Speichern(oMail)
    Next
End Sub
  1. Ändere den Ordner für den Posteingang:
    • Um alle Anhänge von mehreren Mails zu speichern, beispielsweise aus dem Archiv, kannst Du den folgenden Code verwenden:
Set Items = objNS.Folders("Archive").Folders("Posteingang").Items
  1. Führe das Makro aus, indem Du auf F5 drückst.

Häufige Fehler und Lösungen

  • Fehler: "Ordner nicht gefunden"
    Lösung: Stelle sicher, dass der Zielordner existiert. Erstelle ihn gegebenenfalls manuell oder passe den Pfad im Code an.

  • Fehler: "Keine Anhänge gefunden"
    Lösung: Überprüfe, ob die Mails tatsächlich Anhänge enthalten. Der Code filtert nur Anhänge, die nicht vom Typ "6" sind.


Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch Drittanbieter-Tools in Betracht ziehen, die speziell für das Speichern von Anhängen aus Outlook entwickelt wurden. Diese Tools ermöglichen es oft, alle Anhänge auf einmal zu speichern und unterstützen verschiedene Dateiformate.


Praktische Beispiele

  1. Alle Anhänge speichern Outlook: Mit dem obigen VBA-Code kannst Du Anhänge von mehreren Mails speichern, indem Du den Posteingang oder das Archiv angibst.
  2. Outlook mehrere Anhänge speichern: Ändere den Zielordner, um Anhänge nach Absendern zu organisieren.

Tipps für Profis

  • Verwende Variablen: Um den Code sauberer zu gestalten, kannst Du Variablen für die Ordnernamen verwenden.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen hinzu, um Deinen Code robuster zu machen. Beispiel:
On Error Resume Next
' Dein Code hier
On Error GoTo 0
  • Performance optimieren: Wenn Du viele Mails verarbeiten musst, kann es helfen, die Verarbeitung in Batches durchzuführen.

FAQ: Häufige Fragen

1. Wie speichere ich alle Anhänge von mehreren Mails in Outlook?
Du kannst den bereitgestellten VBA-Code verwenden, um alle Anhänge aus dem Posteingang oder dem Archiv zu speichern.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten Versionen von Outlook funktionieren, die VBA unterstützen.

3. Wie kann ich die Anhänge automatisch in einem bestimmten Ordner speichern?
Ändere einfach den Ziel-Pfad im Code auf den gewünschten Speicherort.

4. Kann ich auch Dateitypen filtern?
Ja, passe die Bedingung im Code an, um nur bestimmte Dateitypen zu speichern, indem Du die If-Bedingung erweiterst.

5. Was mache ich, wenn der Code nicht läuft?
Prüfe, ob Makros in Outlook aktiviert sind und ob der Pfad für den Speicherort korrekt ist.

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