web-dev-qa-db-ja.com

Outlook VBA件名が一致する場合に受信トレイをループしてメールのメールアドレスからリストする方法

件名が文字列と一致する場合、Outlook VBAを使用して受信トレイをループし、送信者の電子メールアドレスを一覧表示しようとしています。これまでグーグルとは言えませんが、うまくいきません。

Dim objNS As Outlook.NameSpace
Set objNS = GetNamespace("MAPI")
Set Items = objNS.GetDefaultFolder(olFolderInbox).Items

Dim oFolder As Outlook.MAPIFolder
Dim oMail As Outlook.MailItem
For Each oMail In Items
    Debug.Print oMail.SenderEmailAddress
Next

これを実行するとタイプミスマッチエラーが発生する理由を誰かが知っていますか?

7
Superdooperhero

コメントされているように、コードにMailItemのテストを組み込んでみてください。

Dim objNS As Outlook.NameSpace: Set objNS = GetNamespace("MAPI")
Dim olFolder As Outlook.MAPIFolder
Set olFolder = objNS.GetDefaultFolder(olFolderInbox)
Dim Item As Object

For Each Item In olFolder.Items
    If TypeOf Item Is Outlook.MailItem Then 
        Dim oMail As Outlook.MailItem: Set oMail = Item
        Debug.Print oMail.SenderEmailAddress
    End If
Next

Edit1: Dmitryによって提案されているように、次のものも使用できます。

If Item.Class = 43 Then

代わりに

If TypeOf Item Is Outlook.MailItem Then
14
L42