• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【OUTLOOK2007】VBAを使用して送信済みメールの宛先メールア)

【OUTLOOK2007】VBAを使用して送信済みメールの宛先メールアドレスを取得する方法

このQ&Aのポイント
  • OUTLOOK2007を使用して送信済みメールの宛先のメールアドレスを取得する方法について教えてください。
  • VBAを使用してOUTLOOK2007の送信済みメールの宛先メールアドレスを取得する方法について教えてください。
  • OUTLOOK2007で送信済みメールの宛先を取得するVBAのコードを教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.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 '---↑ コンナカンジ ↑------------------------------------ 以上ご参考まで。

saru83
質問者

お礼

_Kyleさん 早速のご回答ありがとうございます。 教えていただいた方法で、ばっちりメールアドレスが取得できました! Recipientsプロパティはコレクションを返す上に、CC、BCCも含まれてしまうなんて、 同じmailItemオブジェクトのメンバでも、Toプロパティとはえらい違いなんですねぇ。 それはともかく、大変勉強になりました。 ありがとうございました。

関連するQ&A