Outlook-Anhänge automatisch speichern – #ordnungmusssein


Bei Ihnen trudeln haufenweise E-Mails ein, deren Anhänge Sie dann ablegen müssen – und zwar jedes Mal in den gleichen Ordner?

Das lässt sich automatisieren. Mit ein bisschen VBA – nicht erschrecken, ich zeig Ihnen, wie Sie das einrichten:

Öffnen Sie den VBA-Editor in Outlook (dazu drücken Sie die Tastenkombination Alt+F11).

Fügen Sie ein neues Modul hinzu. Dazu klicken Sie im Projekt-Explorer, den Sie links im Fenster finden, mit der rechten Maustaste auf den Eintrag Projekt1, wählen dann Einfügen und dann Modul.

In das große leere Feld rechts fügen Sie nun Folgendes ein:

Public Sub Anhaenge_handeln(myItem As Outlook.MailItem)
Dim mAtts As Attachments
Dim mAtt As Attachment
    Set mAtts = myItem.Attachments
    While mAtts.Count > 0
        Set mAtt = mAtts(1)
        mAtt.SaveAsFile "C:\meinSpeicherort\" & mAtt.DisplayName
        mAtts.Remove 1
    Wend
End Sub

Ersetzen Sie darin C:\meinSpeicherort durch das Verzeichnis, in das Sie die Anhänge speichern wollen. Speichern Sie – durch Klick auf die Diskette (wie altmodisch!) oder mit der Tastenkombination Strg+S.

Schließen Sie den VBA-Editor.

Öffnen Sie den Regel-Manager mit START > Verschieben > Regeln > Regeln und Benachrichtigungen verwalten … und klicken Sie auf Neue Regel. Im Regel-Assistent klicken Sie im Feld 1. Schritt auf Regel ohne Vorlage erstellen > Regel auf von mir empfangene Nachrichten anwenden, und dann auf Weiter >.

Nun bestimmen Sie die Bedingung, unter der Sie die automatische Anhangspeicherung vornehmen wollen (z.B. alle Mails von einem bestimmten Empfänger, mit einem bestimmten Schlüsselwort, …). Weiter >.

Unter 1. Schritt: Aktionen auswählen haken Sie nun ein Skript ausführen an (dazu müssen Sie eventuell ein bisschen hinunterscrollen), dann klicken Sie auf den unterstrichenen Text ein Skript, und jetzt wählen Sie in der Skriptliste Anhaenge_handeln aus. Ok. Weiter >. Weiter >. Fertigstellen.

OTipp Regel Anhänge

Viel Freude mit der neuen Automatik!

Über katharinakanns

Microsoft Office Master Specialist mit viel Verständnis für IHR Geschäft - ich analysiere IHRE Situation, optimiere IHRE Prozesse, automatisiere IHRE Routineaufgaben, finde IHRE Lösung, unterrichte IHRE MitarbeiterInnen, mache Vorlagen mit IHRER CI, spare IHRE Zeit und IHR Geld. Ich freue mich darauf, SIE kennenlernen zu dürfen :-) Profilfoto: Miriam blitzt - Miriam Mehlman Fotografie - www.miriammehlman.at
Dieser Beitrag wurde unter Outlook, VBA abgelegt und mit , , , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

142 Antworten zu Outlook-Anhänge automatisch speichern – #ordnungmusssein

  1. Hermann Maier schreibt:

    Hallo Karin,
    ich finde den Blog super. Attachements + Emails strukturiert in generierten Unterverzeichnissen abzulegen ist für uns in Projekten sehr wichtig. Eine schlanke Lösung (bzw. in Kombination mit Regeln) wie hier bevorzuge ich aber.
    Folgender Wunschablauf:
    -) Ablage von Attachements in ein Zielverzeichnis mit generiertem Unterverzeichnis (Format: yyyymmdd_Betreff_Absender\); Bei Betreff wäre gut limitieren zu können 😉 (z.B. 20 Zeichen)
    -) Email in das gleiche generierte Unterverzeichnis ablegen (Attachements abgetrennt , Emails als .msg oder .eml). Das Email kann aber den gleichen Namen wie das Unterverzeichnis haben (Datum_Betreff_Absender\).
    -) Falls gleiche Dateinamen bei den Attachments: zusätzliche Nummer oder Zeitstempel anhängen
    (aber die Lösung habe ich hier schon gesehen 🙂 ).
    Ich habe Dir auch schon eine Anfrage geschickt. Aber bis jetzt keine Antwort erhalten ;-).
    Danke & lg aus Graz
    Hermann

    Liken

    • Hermann Maier schreibt:

      PS: hätte ja auch unsere Website angegeben. Aber dann wird der Kommentar nicht angeschickt. Ohne Website ging es dann ;-).

      Liken

  2. Hermann Maier schreibt:

    PPS: meinte natürlich Katharina, Karin war ein Freud’scher Verschreiber :-).

    Liken

  3. katharinakanns schreibt:

    🙂 Kein Problem, bei „Martha“ wär ich irritiert gewesen, „Karin“ bin ich gewöhnt 🙂
    Mail ist geschrieben. Danke fürs Erinnern. Es war zu viel los hier …

    Liken

  4. MB schreibt:

    funktioniert leider nicht mehr ab Outlook 2013. Gibt es hierfür eine Alternative? (Emails werden mit Regel in bestimmten Ordner verschoben und nur die Anhänge dieser Mails sollen abgespeichert werden

    Liken

    • katharinakanns schreibt:

      Hallo,
      wie zeigt sich denn dieses „funktioniert nicht mehr“?
      Grundsätzlich klappt das auch in Version 2019 noch, es liegt also nicht ursächlich an der Version, wobei natürlich bei einer Versionsänderung manche Parameter verstellt werden (ärgerlicherweise).
      lg
      Katharina

      Liken

  5. Swen Knorst schreibt:

    Hallo, ich habe das Skript über den VBA Editor erstellt, wenn ich jetzt eine Regel erstellen will, erscheint mir unter dem 2. Aktion NICHT der Punkt mit dem Skript ausführen ?!??! Was tun ?
    Danke Swen

    Liken

  6. Ingo schreibt:

    Hallo Katharina,

    ich nutze Outlook 2016 in Office365 m. Exchange und habe versucht das Script über den Regelassistenten aufführen zu lassen.
    Die erste Hürde war in der Registry nötig, dort habe ich in HKCU „EnableUnsafeClientMailRules“ eingefügt, um die in Outlook 2016 verschwundene Aktion „Skript ausführen“ wieder im Regelassistenten sichtbar zu machen.
    Die neue Regel mit aktiviertem Skript läuft aber sie führt nichts aus, im lokalen Verzeichnis auf USB Datenträger wird nichts gespeichert.

    Wie kann ich prüfen woran es liegt, kann ich sehen wo das Skript hängt oder warum es nicht zur Speicherung von Anlangen kommt?

    Danke vorab 😉

    Liken

  7. Florian M schreibt:

    Hallo Katharina,
    immer noch toller Blog – ich hab das jetzt so gelöst, da ich es auf Knopfdruck brauche und mir sonst die gleichen PDF’s überschrieben werden:

    Public Sub Anhaenge_handeln(myItem As Outlook.MailItem)
    Dim mAtts As Attachments
    Dim mAtt As Attachment

    Set mAtts = myItem.Attachments
    While mAtts.Count > 0
    Set mAtt = mAtts(1)

    mAtt.SaveAsFile „C:\meinOrdner\“ & Format(Now, „yyyymmdd hhmmss“) & Strings.Right(Strings.Format(Timer, „#0.00“), 2) & mAtt.DisplayName
    mAtts.Remove 1
    Wend
    End Sub

    aber die Schleife damit nur PDF’s reinlaufen, habe ich leider nicht hinbekommen.
    Kannst du mir da eve noch kurz helfen?

    ‚If Right(mAtt.DisplayName, 4) = „.pdf“ Then mAtt.SaveAsFile „C:\MeinOrdner\“ & mAtt.DisplayName“

    Liken

    • katharinakanns schreibt:

      Guten Morgen, Florian,
      danke für das Lob 🙂

      Mit dem Schnipsel hier werden nur pdfs „behandelt“ und auch nur pdfs gelöscht:

      Dim numAtt As Long
      numAtt = 1

      Set mAtts = myItem.Attachments
      While mAtts.Count > numAtt – 1
      Set mAtt = mAtts(numAtt)
      If LCase(Right(mAtt.DisplayName, 4)) = „.pdf“ Then
      mAtt.SaveAsFile „C:\“ & Format(Date, „yyyymmdd“) & „_“ & myItem.Sender & „_“ & Format(myItem.ReceivedTime, „yyyymmdd“) & „_“ & mAtt.DisplayName
      mAtt.Delete
      Else
      numAtt = numAtt + 1
      End If
      Wend

      Viel Erfolg!
      lg Katharina

      Liken

  8. SteffenM schreibt:

    Hallo Katharina,
    Ich hab dasselbe Problem wie Ingo (siehe Kommentar vom 07.01.2020)
    Das Problem mit der fehlenden Aktion „Skript ausführen“ hatte ich auch gelöst.
    Allerdings werden bei mir auch keine empfangenen Excel-Datei in einem vorgegebenen Ordner gespeichert.

    Vielen Dank schonmal für deine Rückmeldung

    Liken

  9. Nico schreibt:

    Hallo Katharina,

    vielen Dank für die guten Erklärungen, ich habe es nach deiner Anleitung umgesetzt und es tut auch was es soll.
    Allerdings habe ich ein weiterführendes Problem:
    Von manchen Kollegen kommt eine Mail mit mehreren Anhängen, die nach Möglichkeit alle in unterschiedliche Ordner sollten. Manche Anhänge davon sollen aber auch gar nicht erst gespeichert werden. Zudem müssten die Anhänge noch unter einem bestimmtem Namen, je nach Originalname abgespeichert werden.
    Ist das alles irgendwie machbar?

    Viele Grüße!
    Nico

    Liken

    • katharinakanns schreibt:

      Hallo Nico,
      das ist machbar – es stecken hier in den Kommentaren schon die richtigen Codeschnipsel zum Ausschließen bestimmter Dateien oder Dateiformate, und zur Unterscheidung für unterschiedliche Behandlungs“methoden“ – z.B. unterschiedliche Ordner.
      Wichtig ist dafür die Arbeit, bevor die Programmierung beginnt: eine genaue Definition, woran das Programm erkennen soll, was es tun soll.
      lg
      Katharina

      Liken

  10. Reinhard schreibt:

    Hallo Katharina !
    Ich habe schon vor einigen Jahren diese Applkation nutzen wollen, bin aber gescheitert (seither erhalte ich alle eure Korrespobndenz zu diesem Thema, habe aber damals das Problem anders gelöst). Jetzt ist das Problem wieder aktuell. Kein Problem das Madul zu erstellen und eine Regel zu erstellen. Aber in der Auswahl der Aktion die ausgeführt werden soll wird die Option „Skript ausführen“ nicht angezeigt (leider kann ich keinen screenshot des Bidschirms senden). Was kann ich tun ? Ich habe Win10, Windows365. vorher war es win8, win 7 und entsprechand anderes Office. Ich konnte es nie zum Laufen bringen…
    Danke für einen Hinweis

    Liken

    • katharinakanns schreibt:

      Hallo Reinhard,
      Lösungsvorschlag 1:
      Hast du im Fenster mit den möglichen Aktionen nach unten gescrollt? Der Eintrag „ein Skript ausführen“ ist auf den ersten Blick nicht ersichtlich.
      Lösungsvorschlag 2:
      Unter Optionen>TrustCenter>Einstellungen für das Trust Center>Makroeinstellungen die Sicherheitsstufe runtersetzen, da dein Makro vermutlich keine Signatur hat. Danach Outlook neu starten und es sollte funktionieren
      Lösungsvorschlag 3:
      Sonst wird es mühsam – da ist wahrscheinlich die Registry verhunzt. Sollzustand:
      Windows Registry Editor Version 5.00
      [HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security]
      „EnableUnsafeClientMailRules“=dword:00000001

      und hier der Link zum Artikel bei Microsoft:
      https://answers.microsoft.com/en-us/msoffice/forum/msoffice_outlook-mso_win10/the-option-to-run-a-scritp-has-disappeared-from/d289e698-47fa-497a-80fa-633067a0de37#ThreadAnswers

      lg Katharina

      Liken

      • Reinhard schreibt:

        Danke. Die Vorschläge 1+2 haben erwartungsgemäß keinen Erfolg gehabt. Aber der Eintrag hat in der Registry gefehlt, ich habe ihn eingetragen und jetzt kann ich „ein Skript“ ausführen anklicken und das skript anwählen. Alles läuft wie versprochen und erwünscht. Danke.

        Liken

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Google Foto

Du kommentierst mit Deinem Google-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s