vba学习:outlook批量获取附件到本地

2018-04-26  本文已影响0人  kiddragon

引言

工作中常常用到邮箱收发邮件,如果有很多需要保存的附件,一封一封的处理工作量很大,今天来分享一下outlook中批量把附件下载到本地的方法。

主要步骤

  1. 在outlook中创建应用对象

    Set myOlApp = CreateObject("Outlook.Application")
    
  2. 在outlook中创建命名空间

    Set myNamespace = myOlApp.GetNamespace("MAPI")
    

    注意:这里的MAPI是指支持 的唯一数据源是 MAPI,允许访问存储在用户的邮件存储区中的所有Outlook 数据。

  3. 获取Folder文件,olFolderInbox代表指定收件箱。

     Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox)
     
     '可以得到所有的子文件夹的个数
     MsgBox myFolder.folders.count
     
     '弹出对话框来显示各个文件
     for i=0 to myFolder.folders.count
         set foldertmp = myFolder.folders(i)
         MsgBox foldertmp.name
     next
    
  4. 保存outlook附件

    '设置附件保存本地地址
    Dim path
    path = 'E:\test\'
    'myFolder为收件箱的文件夹Folder
    For Each mymailitem In myFolder.Items
     If mymailitem.UnRead Then
         mymailitem.UnRead = False
         If mymailitem.Attachments.Count > 0 Then
             For Each att In mymailitem.Attachments
                 att.SaveAsFile path
             Next
         End If
     End If
    Next
    

完整代码

'在outlook中创建应用对象
Set myOlApp = CreateObject("Outlook.Application")

'在outlook中创建命名空间
Set myNamespace = myOlApp.GetNamespace("MAPI")

'获取收件夹Folder
Set myFolder = myNamespace.GetDefaultFolder(olFolderInbox).Folders(1)

'设置附件保存本地地址
Dim path
path = "E:\test\"
'myFolder为收件箱的文件夹Folder
For Each mymailitem In myFolder.Items
    If mymailitem.UnRead Then
        mymailitem.UnRead = False
        If mymailitem.Attachments.Count > 0 Then
            For Each att In mymailitem.Attachments
                att.SaveAsFile path & "\" & att.FileName
            Next
        End If
    End If
Next
上一篇下一篇

猜你喜欢

热点阅读