2017-10-04 180 views
0

zipファイルを含むERPシステムからシステム生成の電子メールを受け取ります。zipファイル内には、ダッシュボードにインポートするデータを含むExcelファイルがあります。製。私は、電子メールを受信したときに成功したフォルダに.zipの添付ファイルを保存し、このコード持っている時点ではOutlook VBA添付ファイルを解凍してフォルダに保存

Sub saveAttachment2(Item As Outlook.MailItem) 
Dim selItems   As Selection 
Dim objItem    As Object 
Dim iCount    As Integer 
Dim atmts     As Attachments 
Dim oAttachment As Attachment 
Dim sSaveFolder As String 

Set selItems = ActiveExplorer.Selection 
sSaveFolder = "C:\Users\212357980\Documents\Accounts Coordination\Oracle Exports\" 
For Each objItem In selItems 
    Set atmts = objItem.Attachments 
    For Each oAttachment In atmts 
     oAttachment.SaveAsFile sSaveFolder & "\Service Requests.zip" 
    Next 
Next 
End Sub 

今私はそれが場所に保存する前には、ファイルを解凍したいと思いますが、これは私がこれまで持っているものです。

Sub Unzip2() 

    Dim ns As NameSpace    'variables for the main functionality 
    Dim Inbox As MAPIFolder 
    Dim SubFolder As MAPIFolder 
    Dim Atchmt As Attachment 
    Dim FileName As String 
    Dim msg As Outlook.MailItem 

    Dim FSO As Object    'variables for unzipping 
    Dim oApp As Object 
    Dim FileNameFolder As Variant 
    Set ns = GetNamespace("MAPI") 
    Set Inbox = ns.GetDefaultFolder(olFolderInbox) 
    Set SubFolder = Inbox.Folders("Sales Orders") 

    For Each msg In SubFolder.Items 
      For Each Atchmt In msg.Attachments 
        If (Right(Atchmt.FileName, 3) = "zip") Then 

            FileNameFolder = "C:\Users\212357980\Documents\Accounts Coordination\Oracle Exports\" 
            Set oApp = CreateObject("Shell.Application") 
            With oApp 
             .NameSpace(FileNameFolder).CopyHere 
             .NameSpace(Atchmt.FileName).Items 
            End With 

            On Error Resume Next 
            Set FSO = CreateObject("scripting.filesystemobject") 
           FSO.deletefolder Environ("Temp") & "\Temporary Directory*", True 
        End If 
      Next 
    Next 
End Sub 

私はエラー「引数の数が間違っまたは無効なプロパティの割り当て」と後の2本のライン上を取得します。

あなたが提供できるヘルプは素晴らしいでしょう!

+0

あなたは一時フォルダにzipファイルを保存する必要があります... = 1(添付ファイルの数) 名前空間へなど(N)(Atchmt.FileName).Items を... nの を試してみて、そこから抽出してください:最初に保存せずにこれを行うことはできません。 –

+0

'With oApp'ブロック内の2行は、1行に記述してください。 –

答えて

0

ルック: 名前空間(Atchmt.FileName).Items にはいくつかの項目があります。それらをすべて1つのアイテムで収集しようとしています。

+0

PeakPeak、私は上記の行にもエラーが出ています、整数としてdim nしようとしてn = 1に設定し、提案したような項目の後に(n)を追加しましたが、これはうまくいきませんでした。提案? – Harwood95

+0

あなたはあなたの事件に関する専門家であり、あなたはそれについてすべてを知っています。他の人もそれを十分に知っているとは思わないでください。 より具体的で詳細をお聞かせください:あなたは何を達成したいですか?何が今働いていますか?それはうまくいかないのですか?エラーメッセージとは何ですか? – peakpeak

+0

こんにちはピークピーク、私はあなたが元の記事を読む場合、私はすべての答えが表示されますと信じています – Harwood95

関連する問題