2016-09-27 108 views
1

我想從Excel VBA中計算我的Outlook「草稿」文件夾中的電子郵件數量。計算草稿文件夾中的電子郵件數量 - 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 

當我運行這段代碼我收到錯誤Run-time error 5 Invalid procedure call or argument

有沒有人能協助,以幫助拯救了我大量的時間?謝謝!

回答

1

我能回答我自己的問題。首先,我沒有點擊MS Outlook Object庫。第二我修改我的代碼如下:

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 

我希望這可以幫助那裏的人。謝謝。

0

你也可以做這

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 
相關問題