- ベストアンサー
【OUTLOOK2007】VBAを使用して送信済みメールの宛先メールアドレスを取得する方法
- OUTLOOK2007を使用して送信済みメールの宛先のメールアドレスを取得する方法について教えてください。
- VBAを使用してOUTLOOK2007の送信済みメールの宛先メールアドレスを取得する方法について教えてください。
- OUTLOOK2007で送信済みメールの宛先を取得するVBAのコードを教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
私は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 '---↑ コンナカンジ ↑------------------------------------ 以上ご参考まで。
お礼
_Kyleさん 早速のご回答ありがとうございます。 教えていただいた方法で、ばっちりメールアドレスが取得できました! Recipientsプロパティはコレクションを返す上に、CC、BCCも含まれてしまうなんて、 同じmailItemオブジェクトのメンバでも、Toプロパティとはえらい違いなんですねぇ。 それはともかく、大変勉強になりました。 ありがとうございました。