- VB,VBA
- 2014-06-06 - 更新:2014-08-19
この記事は最終更新日から1年以上経過しています。
Outlookのメッセージファイル(.msg)から送信元アドレスや件名、本文等のデータを取り出すことができます。
よくあるのは、受信トレイのメールからデータを取り出したりしますが、今回は任意の場所にコピーしたメッセージファイル(.msg)からデータを取り出す方法をご紹介します。
まずは宣言
Dim OL As Object Dim msg As Object
Outlookオブジェクトを生成
Set OL = CreateObject("Outlook.Application")
msgファイルを指定
strFileName = "c:\sample.msg"
メッセージファイルをオブジェクトに読み込む
Set msg = OL.CreateItemFromTemplate(strFileName)
各種データを取得します。
Debug.Print "SentOnBehalfOfName: " & msg.SentOnBehalfOfName Debug.Print "SenderName: " & msg.SenderName Debug.Print "ReceivedByName: " & msg.ReceivedByName Debug.Print "ReceivedOnBehalfOfName: " & msg.ReceivedOnBehalfOfName Debug.Print "ReplyRecipientNames: " & msg.ReplyRecipientNames Debug.Print "To: " & msg.To Debug.Print "CC: " & msg.CC Debug.Print "BCC: " & msg.Bcc Debug.Print "Subject: " & msg.Subject Debug.Print "Body: " & msg.Body Debug.Print "HTMLBody: " & msg.HTMLBody 'Debug.Print "Recipients: " & msg.Recipients Debug.Print "SenderEmailAddress: " & msg.SenderEmailAddress
プロパティについてはMSDNを参照しましたが、Recipients
はプロパティが存在しないとエラーが発生したのでスキップしています。
オブジェクトの解放
Set msg = Nothing Set OL = Nothing
結果は以下のように出力されます。
SentOnBehalfOfName: sender@example.jp SenderName: sender@example.jp ReceivedByName: ReceivedOnBehalfOfName: ReplyRecipientNames: sender@example.jp To: to@example.jp CC: BCC: Subject: 件名 Body: 本文 HTMLBody: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <HTML> <HEAD> <META NAME="Generator" CONTENT="MS Exchange Server version 14.02.5004.000"> <TITLE></TITLE> </HEAD> <BODY> <!-- Converted from text/plain format --> <P>本文</P> </BODY> </HTML> SenderEmailAddress: sender@example.jp
参考URL:
http://msdn.microsoft.com/en-us/library/office/aa210946(v=office.11).aspx
http://msdn.microsoft.com/en-us/library/office/ff861332(v=office.15).aspx
71,226 views