Microsoft 製品に組み込まれている Visual Basic の実装。
http://www.ken3.org/cgi-bin/group/vba_outlook_Mail.asp
ここの
「メールを読む」の
Sub OL_TEST_LOOK_MAIL_0221()
Dim oApp As Object 'OutlookのApplication オブジェクトを入れる
Dim myNameSpace As Object '名前のスペースと言われても、、
Dim myFolder As Object 'フォルダー指定
'outlook 起動をCreateObjectで ※これだと複数起動してしまうがご勘弁を
Set oApp = CreateObject("Outlook.Application")
'呪文1 名前空間 の 指定 と言っても、.GetNamespace("MAPI")しただけ
Set myNameSpace = oApp.GetNamespace("MAPI")
'次は作業フォルダーの指定(.GetDefaultFolder) と 表示(.Display)
Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダー olFolderInbox=6 指定
myFolder.Display '表示 いつものクセで .Visible = True とやりがちだけど
'次にメールの中身を取り出したいと思います。
Dim objMAILITEM As Object 'メールアイテム
Dim n As Integer 'カウンター
For n = 1 To myFolder.Items.Count 'フォルダーのアイテム数分ループ
'メールを1通取り出す、変数にセットする
Set objMAILITEM = myFolder.Items(n) '別にあらためてセットしなくても使えるけど
'テストデータをセルにセットする※11行目からセットする。。。
Cells(n + 10, "A") = objMAILITEM.CreationTime '作成日
Cells(n + 10, "B") = objMAILITEM.SenderName '差出人
Cells(n + 10, "C") = objMAILITEM.SenderEmailAddress '差出人のアドレス
Cells(n + 10, "D") = objMAILITEM.Subject '件名
Cells(n + 10, "E") = objMAILITEM.Body '本文
Next n
End Sub
を試してみたら取り込むことが出来ました。
ただし、本文のサイズが大きいとメモリ不足エラーになりました。