2016-05-25 12 views
1

Outlook添付ファイルをローカルフォルダにエクスポートするコードがあります。添付ファイルをフォルダにエクスポートするときに署名イメージを除外する

署名の小さな画像も添付ファイルとして保存されています。後か前に、私のコードでは、特にEND IFを(配置する場所を私は知らない

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

は私が署名画像はの線に沿って、その後の場合で行うことができ除くと思います次)。ここで

は私のコードです:

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 

答えて

1

あなたが特定のファイルタイプをダウンロード後にしている場合は(未テストが、動作するはずです)添付ファイルの拡張子を確認することができます:

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)

これらは順序通りに行なわなければなりません -
IF、次にFORを使用する場合は、NEXT fiを使用する必要があります最初にFORを閉じ、次にEND IFを閉じてIFを閉じます。
FORを使用し、次にIFを使用する場合は、を閉じる前にNEXTを使用する前に、IFを閉じるにはEND IFを使用する必要があります。

意味が合っています。

(マクロ後方をループ For i = lngCount To 1 Step -1を使用するには
+0

を保存するために、あなたのループを実行して、あなたの変数

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

を宣言私はcsvファイルだけを「含む」のではなく除外する何かを探しています。 「もしsExt = "png; jpeg"ならばそれらを保存しないでください "という行に沿って何かを言うことはできますか? –

+0

'Select Case'文を使うことができます。コードを更新します。 –

+0

パーフェクトはホイッスルとして清潔に動作します、ありがとうダーレン! –

1

さてしかし、それはシームレスに動作おかげダレンオブジェクト項目

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

あなたの入力Om3rありがとう!これは、私が必要とするようなもので、特定のフォーマットを分離する苦労がなくなりますが、コードを入力するときには次のように表示されます:コンパイルエラー:For Without For 上記の3行があると分かりません。 .. –

+0

@AntoineMyrdは、「次のi」の前に「終わり」を逃したように見える – 0m3r

関連する問題