2016-05-25 9 views
1

Ich habe Code zum Exportieren von Outlook-Anhängen in einen lokalen Ordner.Ausschließen von Signaturbildern beim Exportieren von Anhängen in einen Ordner

Ich bemerkte, dass die kleinen Bilder in der Signatur auch als Anhänge gespeichert werden.

Ich denke, mit Ausnahme der Unterschrift Bilder mit einem Wenn dann entlang der Linien getan werden könnte:

For i = lngCount To 1 Step -1 
If objAttachments.Item(i).Size > 6000 Then 

Ich weiß nicht, wo in meinem Code zu setzen, vor allem die End If (vor oder nach der Nächster).

Hier ist mein Code:

Public Sub Renamefileandexcludesignature(Item As Outlook.MailItem) 
    Dim Atmt As Outlook.Attachment 
    Dim SavePath As String 
    Dim FileName As String 
    SavePath = "C:\Users\Antoine\Documents" 
    FileName = "Antoine" & ".csv" 
    For Each Atmt In Item.Attachments 
     Atmt.SaveAsFile SavePath & "\" & FileName 
    Next 
    Set Atmt = Nothing 
End Sub 

Antwort

1

Wenn Sie nach einem bestimmten Dateityp Download Sie die Erweiterung des Befestigungs überprüfen konnte (nicht getestet, sollte aber funktionieren):

Public Sub Renamefileandexcludesignature(Item As Outlook.MailItem) 
    Dim Atmt As Outlook.Attachment 
    Dim SavePath As String 
    Dim FileName As String 

    Dim objFSO As Object 
    Dim sExt As String 

    SavePath = "C:\Users\Antoine\Documents" 
    FileName = "Antoine" & ".csv" 

    Set objFSO = CreateObject("Scripting.FileSystemObject") 

    For Each Atmt In Item.Attachments 
     sExt = objFSO.GetExtensionName(Atmt.FileName) 

     Select Case sExt 
      Case "jpg", "png" 
       'Do nothing 
      Case Else 
       Atmt.SaveAsFile SavePath & "\" & FileName 
     End Select 
    Next 

    Set Atmt = Nothing 
End Sub 

But I have little to no knowledge in VBA and don't know where to place in my code, especially the EndIf (after or before the Next)

Diese müssen in der Reihenfolge gehen -
Wenn Sie IF und dann FOR verwenden, müssen Sie NEXT fi verwenden zuerst schließen Sie die FOR und dann END IF, um die IF zu schließen.
Wenn Sie FOR verwenden und dann IF Sie haben END IF zu verwenden, um die IF zu schließen, bevor Sie NEXT verwenden können die FOR zu schließen.

Hoffnung, die Sinn ergab.

+0

Dank Darren es jedoch nahtlos funktioniert sparen Ich suche nach etwas, das ausschließt, anstatt nur csv-Dateien "einzuschließen". Ist es möglich, etwas in der Art von "If sExt =" png; jpeg "zu sagen, dann speichere sie nicht"? –

+0

Sie können eine Anweisung 'Select Case' verwenden. Ich werde meinen Code aktualisieren. –

+0

Perfekt funktioniert sauber wie eine Pfeife, vielen Dank Darren! –

1

zu verwenden For i = lngCount To 1 Step -1 (Looping durch Makro rückwärts)

Ihre Variablen deklarieren

Dim objAttachments As Outlook.Attachments 
Dim i As Long 
Dim lngCount As Long 

Jetzt ist Ihre Schleife laufen Objekt Artikel

If Item.Attachments.Count > 0 Then 
    For i = lngCount To 1 Step -1 
     If objAttachments.Item(i).Size > 6000 Then 
      objAttachments.Item(i).SaveAsFile FileName 
     End If 
    Next i 
End If 
+0

Danke für Ihre Eingabe Om3r! Dies sieht so aus, als würde ich es brauchen, da es mir den Schmerz ersparen würde, bestimmte Formate zu isolieren, aber wenn ich deinen Code eingebe, heißt es: Kompilierfehler: Weiter ohne Für Was ich nicht verstehe, da du eine für 3 Zeilen oben hast. .. –

+0

@AntoineMyrd sieht aus, als hätte ich "End If" vor "Next i" verpasst – 0m3r