Thema Datum  Von Nutzer Rating
Antwort
Rot Anhänge aus markierten Mails in neue Mail einfügen
21.12.2017 14:23:06 Moritz
NotSolved

Ansicht des Beitrags:
Von:
Moritz
Datum:
21.12.2017 14:23:06
Views:
1012
Rating: Antwort:
  Ja
Thema:
Anhänge aus markierten Mails in neue Mail einfügen

Hallo Leute,

 

ich habe ein Problem mit einem Makro für Outlook. Ich möchte gerne mittels Makro alle Anhänge von allen markierten Mails in eine neue Email einfügen. Also neue Email öffnen, 3-10 Mails markieren und das Makro starten -> alle Anhänge aus den markierten Mails sollen nun in die neue Mail eingefügt werden.

 

Ich habe leider so gut wie keine Ahnung von VBA oder anderen Programmiersprachen, interessiere mich aber dafür und dachte ich bekomme das schon hin. Nach viel rumbasteln und recherchieren hab ich nun folgendes: 

 

Option Explicit
 
Public Sub InsertAttachmentsTest()
 
    '=====================================================================
    ' Fügt in eine geöffnete E-Mail die Anlagen einer markierten E-Mail ein
    ' (c) Peter Marchert - http://www.outlook-stuff.com
    ' 2008-12-18 Version 1.0.0
    '=====================================================================

    Dim objMail As Outlook.MailItem
    Dim objAnswer As Outlook.MailItem
    Dim objAttachment As Outlook.Attachment
    Dim objAttachments As Outlook.Attachments
    Dim strMyDocuments As String
    Dim strAttachment As String
    Dim objSelection As Outlook.Selection
    Dim i As Integer
    
 
    '---------------------------------------------------------------------
    ' Fehlerbehandlung wegen Set-Anweisungen ausschalten
    '---------------------------------------------------------------------
    On Error Resume Next
      
    '---------------------------------------------------------------------
    ' Menge an markierten Mails referenzieren
    '---------------------------------------------------------------------
    Set objSelection = Application.ActiveExplorer.Selection
    
 
    '---------------------------------------------------------------------
    ' Markierte E-Mail referenzieren (= Originalmail)
    '---------------------------------------------------------------------
    Set objMail = Outlook.ActiveExplorer.Selection(i)
    i = 0
    
    '---------------------------------------------------------------------
    ' Keine E-Mail markiert?
    '---------------------------------------------------------------------
    If objSelection.Count = 0 Then GoTo ExitProc
 
    '---------------------------------------------------------------------
    ' Geöffnete E-Mail referenzieren (= Antwort)
    '---------------------------------------------------------------------
    Set objAnswer = Outlook.ActiveInspector.CurrentItem
 
    '---------------------------------------------------------------------
    ' Anlagen der Originalmail referenzieren
    '---------------------------------------------------------------------
    Set objAttachments = objMail.Attachments
 
    '---------------------------------------------------------------------
    ' Ordner "Eigenen Dateien" bzw. "Dokumente" ermitteln
    '---------------------------------------------------------------------
    strMyDocuments = GetMyDocuments

        
If objSelection.Count > i Then i = i + 1

    
Speichern:
 
    '---------------------------------------------------------------------
    ' Alle Anlagen in die aktuell geöffnete "übertragen"
    '---------------------------------------------------------------------
    For Each objAttachment In objAttachments
 
        '-----------------------------------------------------------------
        ' Anlage temporär speichern
        '-----------------------------------------------------------------
        Call objAttachment.SaveAsFile(strMyDocuments & "\" & objAttachment.FileName)
 
        '-----------------------------------------------------------------
        ' Anlage in Antwort hinzufügen
        '-----------------------------------------------------------------
        Call objAnswer.Attachments.Add(strMyDocuments & "\" & objAttachment.FileName)
 
        '-----------------------------------------------------------------
        ' Temporäre Anlage löschen
        '-----------------------------------------------------------------
        Call Kill(strMyDocuments & "\" & objAttachment.FileName)
 
If objSelection.Count > i Then i = i + 1: GoTo Speichern:

If objSelection.Count = i Then GoTo ExitProc:
       
  
    Next
 
ExitProc:
 
    '---------------------------------------------------------------------
    ' Clean Up
    '---------------------------------------------------------------------
    Set objMail = Nothing
    Set objAnswer = Nothing
    Set objAttachment = Nothing
    Set objAttachments = Nothing
 
End Sub
 
Private Function GetMyDocuments() As String
 
    '=====================================================================
    ' Gibt den Ordner "Eigene Dateien" zurück
    ' 2008-12-18 Version 1.0.0
    '=====================================================================
 
    Dim objWshShell As Object     ' Windows Script Host
 
    On Error Resume Next
 
    '---------------------------------------------------------------------
    ' Instanz des Windows Script Host starten
    '---------------------------------------------------------------------
    Set objWshShell = CreateObject("WScript.Shell")
 
    '---------------------------------------------------------------------
    ' Ordner "Eigene Dateien" bzw. "Dokumente" zurückgeben
    '---------------------------------------------------------------------
    GetMyDocuments = objWshShell.SpecialFolders("MyDocuments")
 
    '---------------------------------------------------------------------
    ' Clean Up
    '---------------------------------------------------------------------
    Set objWshShell = Nothing
 
End Function

 

Wenn ich manuell i = 1 setze, klappt es mit einer markierten Mail.  Bei i = 2 wird der Anhang der 2. markierten Mail in die neue Mail kopiert. Deswegen dachte ich ich erhöhe i jeweils um 1 für jede markierte Mail und das Script wird für jedes i ausgeführt. Leider klappt das nicht und kein Anhang wird in die neue Mail kopiert.

Kann mir jemand helfen?

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Anhänge aus markierten Mails in neue Mail einfügen
21.12.2017 14:23:06 Moritz
NotSolved