質問: application.activeexplorer.currentfolder for each myitem in myfolder.items debug.print myitem.to next myitem end sub 送信済みメールフォルダを選択し、上記vbaを実行すると、 狙い通り宛先(myitem.toの値)は取得できるのですが、 宛先がメールアドレス(例:suzuki@**.com)ではなく、 名前(例:鈴木)になってしまっているメールに関しては、 myitem.toの値も“メールアドレス”ではなく名前になってしまいます。 どなたか、ご存知でしたら、 確実に宛先のメールアドレスを取得する方法をご教示いただけますでしょうか。 何卒、お願い申し上げます。
回答: 私はoutlook2003環境なので、2007では動作確認できていませんが...。 myitem.to とする代わりに myitem.recipients(1).address のようにすれば、受信者(宛先)のアドレスを取れると思います。 以下蛇足。 ●toに複数のアドレスが設定されていた場合... toプロパティはセミコロンで区切った単一のstringを返しますが recipientsプロパティはコレクションを返すので 総ての宛先を取得するには、recipientsコレクションを回してやる必要があります。 '---↓ タトエバ ↓---------------------------------------- sub getrecp() set myfolder = application.activeexplorer.currentfolder for each myitem in myfolder.items for each myrecp in myitem.recipients debug.print myrecp.address next myrecp next myitem end sub '---↑ コンナカンジ ↑------------------------------------ ●toにあるアドレスとcc,bccにあるアドレスを区別する必要があるなら... 上記ではtoにあるアドレスもcc,bccにあるアドレスも同様に処理してしまうので toにあるアドレスのみを取得したい場合は 下記のようにrecipientオブジェクトのtypeプロパティで切り分ける必要があります。 '---↓ タトエバ ↓---------------------------------------- sub getto2() set myfolder = application.activeexplorer.currentfolder for each myitem in myfolder.items for each myrecp in myitem.recipients if myrecp.type = olto then debug.print myrecp.address end if next myrecp next myitem end sub '---↑ コンナカンジ ↑------------------------------------ 以上ご参考まで。