【问题标题】:Counting the number of emails in an Outlook Drafts folder计算 Outlook 草稿文件夹中的电子邮件数量
【发布时间】:2020-06-24 15:40:03
【问题描述】:

我正在尝试从 Excel VBA 计算 Outlook“草稿”文件夹中的电子邮件数量。

我没有使用 Outlook 对象层次结构进行编程,所以遇到了一些麻烦。

以下是我尝试过的一种变体。

Dim objOutlook As Object
Set objOutlook = CreateObject("Outlook.Application")

Dim objNameSpace As Object
Set objNameSpace = objOutlook.GetNamespace("MAPI")
Set items = objNameSpace.GetDefaultFolder(olFolderDrafts).items

MsgBox items.count

当我运行此代码时,我收到错误:

运行时错误 5 无效的过程调用或参数

【问题讨论】:

    标签: excel vba outlook


    【解决方案1】:

    我能够回答我自己的问题。首先,我没有点击 MS Outlook 对象库。其次,我将代码修改为以下内容:

    Dim objOutlook As Object, objNameSpace As Object, objFolder As Object
    
    Set objOutlook = CreateObject("Outlook.Application")
    Set objNameSpace = objOutlook.GetNamespace("MAPI")
    Set objFolder = objNameSpace.GetDefaultFolder(olFolderDrafts)
    
    MsgBox objFolder.items.count
    

    【讨论】:

      【解决方案2】:

      你也可以这样做

      Option Explicit
      Public Const olFolderInbox As Long = 6
      Public Const olFolderDrafts As Long = 16
      Public Const olFolderContacts As Long = 10
      Public Const olFolderDeletedItems As Long = 3
      
      Public Sub Count_MailItems()
          Dim olApp As Object  ' Outlook.Application
          Dim olNs As Object   ' Outlook.Namespace
          Dim Folder As Object ' Outlook.MAPIFolder
          Dim Items As Object  ' Outlook.Items
          Dim Msg As String
      
          Set olApp = CreateObject("Outlook.Application")
          Set olNs = olApp.GetNamespace("MAPI")
      
      '    Set Folder = olNs.Session.PickFolder
          'or
      '    Set Folder = olApp.ActiveExplorer.CurrentFolder
          'or
          Set Folder = olNs.GetDefaultFolder(olFolderInbox)
      '                                      olFolderDrafts
      '                                      olFolderContacts
      '                                      olFolderDeletedItems
      
          Set Items = Folder.Items
      
          Msg = Items.Count & " Items in " & Folder.Name & " Folder"
      
          MsgBox (Msg)
      
      End Sub
      

      【讨论】:

      • 这很可能是一个好的答案的开始,但我想知道它是否会受益于一些段落文本来解释它为什么会有所帮助?问题作者可能早已不复存在,但新读者可能会发现此类修改很有帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      相关资源
      最近更新 更多