0

したがって、目標は、顧客から目的の添付ファイルを含む電子メールを受信したときに、選択した場所に添付ファイルを保存することです。

これは私の新しいコードです。コンパイルされますが、ファイルは出力されませんか?

前もって感謝します。

Private WithEvents Items As Outlook.Items

Private Sub Application_Startup()
    Dim olApp As Outlook.Application
    Dim objNS As Outlook.NameSpace
    Set olApp = Outlook.Application
    Set objNS = olApp.GetNamespace("MAPI")
    Set Items = objNS.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub Application_NewMail()

Dim oInbox As MAPIFolder
Dim oItem As MailItem

Set oInbox = Application.Session.GetDefaultFolder(olFolderInbox)
Set oItem = oInbox.Items.GetLast

'Only act if it's a MailItem
Dim Msg As Outlook.MailItem
If TypeName(item) = "MailItem" Then
    Set Msg = oItem

    'Change variables to match need. Comment or delete any part unnecessary.
    If (Msg.SenderName = "Name Of Person") And _
        (Msg.Subject = "Subject to Find") And _
        (Msg.Attachments.Count >= 1) Then

        'Set folder to save in.
        Dim olDestFldr As Outlook.MAPIFolder
        Dim myAttachments As Outlook.Attachments
        Dim Att As String

        'location to save in.  Can be root drive or mapped network drive.
        Const attPath As String = "C:\"

        ' save attachment
        Set myAttachments = item.Attachments
        Att = myAttachments.item(1).DisplayName
        myAttachments.item(1).SaveAsFile attPath & Att

        ' mark as read
       Msg.UnRead = False
    End If
End If

ProgramExit:
    Exit Sub

ErrorHandler:
    MsgBox Err.Number & " - " & Err.Description
    Resume ProgramExit
End Sub
4

1 に答える 1

1

VBAウィンドウを開くと、コードを配置する場所である「ThisOutlookSession」というオブジェクトが表示されます。

このイベントは、受信した新しい電子メールを受信すると自動的にトリガーされます。

Private Sub Application_NewMail()

Dim oInbox As MAPIFolder
Dim oItem As MailItem


Set oInbox = Application.Session.GetDefaultFolder(olFolderInbox)
Set oItem = oInbox.Items.GetLast

//MsgBox oItem.To
//Etcetera 

End Sub

あなたの編集について、私はそれが機能しなかった理由を実際には調査しませんでしたが、私がテストしたこれを使用することができます:

Dim atmt As Outlook.Attachment
Dim Att As String
Const attPath As String = "U:\"


For Each atmt In Msg.Attachments
    Att = atmt.DisplayName
    atmt.SaveAsFile attPath & Att
Next

WinExplorerの「変更日」を使用して最新の保存された添付ファイルを表示することはできないため、ファイルを保存していないように見える場合があることに注意してください(私は今気づきました)。ただし、アルファベット順に調べることができます。

于 2012-10-24T12:24:40.947 に答える