美文网首页
vba学习:outlook批量获取附件到本地

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

作者: kiddragon | 来源:发表于2018-04-26 10:43 被阅读0次

    引言

    工作中常常用到邮箱收发邮件,如果有很多需要保存的附件,一封一封的处理工作量很大,今天来分享一下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
    

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/gmdplftx.html