2016-09-27 5 views
1

Excel VBAからOutlookの「Drafts」フォルダにある電子メールの数を数えようとしています。Draftsフォルダ内の電子メール数をカウントする - Outlook

私はOutlookオブジェクト階層を使用してプログラムしていないので、何か問題があります。

以下は、私が試したさまざまなバリエーションの1つです。

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 Libraryをクリックしていませんでした。次にコードを次のように変更しました。

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 
を行うことができます
関連する問題