Wie man Anlagen in Outlook mit einem VBA-Skript speichert und öffnet

Outlook VBA

Wie werden Anlagen in Outlook gespeichert und anschließend geöffnet, ohne dass der Windows Explorer geöffnet werden muss, um die Anhänge zu finden?

Dies ist ein einfaches VBA-Skript. Es speichert den Anhang einer ausgewählten E-Mail und öffnet ihn sofort, ohne den Windows Explorer öffnen zu müssen. Sie sollten jedoch darauf achten, dass Sie nur vertrauenswürdige Anhänge öffnen, da dies ein Sicherheitsrisiko darstellen kann.

Dieses Skript speichert die Anlagen im temporären Verzeichnis von Windows, was in den meisten Fällen C:\Users[Benutzername]\AppData\Local\Temp ist.

Bitte beachten Sie, dass Sie für dieses Skript den Microsoft Outlook Object Library und den Microsoft Scripting Runtime Reference hinzufügen müssen. Sie können dies tun, indem Sie im VBA-Editor auf Extras -> Verweise klicken und dann die entsprechenden Bibliotheken auswählen.

Sub SpeichernUndOeffnenAnlagen()

Dim objOL As Outlook.Application
Dim objMsg As Outlook.MailItem 'Objekt
Dim objAttachments As Outlook.Attachments
Dim objSelection As Outlook.Selection
Dim i As Long
Dim lngCount As Long
Dim strFile As String
Dim strFolderpath As String
Dim strDeletedFiles As String
Dim objShell As Object
Dim objFolder As Object
Dim strTempFolderPath As String

' Den Pfad des Temp-Ordners ermitteln
strTempFolderPath = Environ$("temp") & "\"

' Eine Outlook Application-Objekt-Instanz erstellen
Set objOL = CreateObject("Outlook.Application")

' Die Sammlung der ausgewählten Objekte abrufen
Set objSelection = objOL.ActiveExplorer.Selection

' Jedes ausgewählte Element auf Anhänge überprüfen
For Each objMsg In objSelection

Set objAttachments = objMsg.Attachments
lngCount = objAttachments.Count

If lngCount > 0 Then

' Wir müssen eine rückwärts zählende Schleife für
' das Entfernen von Elementen aus einer Sammlung verwenden. Andernfalls,
' gerät der Schleifenzähler durcheinander und nur jedes zweite
' Element wird entfernt.
For i = lngCount To 1 Step -1

' Anhang speichern, bevor er aus dem Element gelöscht wird.
' Den Dateinamen abrufen.
strFile = objAttachments.Item(i).FileName

' Mit dem Pfad zum Temp-Ordner kombinieren.
strFile = strTempFolderPath & strFile

' Den Anhang als Datei speichern.
objAttachments.Item(i).SaveAsFile strFile

' Die gespeicherte Anhangsdatei öffnen
Shell "Explorer.exe " & strFile, vbNormalFocus

Next i
End If

Next

Set objAttachments = Nothing
Set objMsg = Nothing
Set objSelection = Nothing
Set objOL = Nothing

End Sub

Zum Ausführen dieses Skripts wählen Sie die gewünschte E-Mail aus und führen dann dieses Makro aus. Es speichert alle Anhänge in der ausgewählten E-Mail im Temp-Verzeichnis und öffnet sie anschließend.

-

Vorheriger Artikel Nächster Artikel

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

CAPTCHA eingeben * Das Zeitlimit ist erschöpft. Bitte CAPTCHA neu laden.