Outlookの受信ボックス内のメールについて、受信時間、送信者(表示名)、件名、送信者アドレス、本文を取得してデバッグウィンドウに出力する簡単なサンプルプログラム。
参照設定がされていなくても実行できるようにCreateObjectを使用してオブジェクトを参照する。
実行時、セキュリティ上、プログラムがOutlookにアクセスしても良いかどうか確認するメッセージボックスが表示されるので[はい]を選択しないとプログラムの実行が進まない。
ただし、アクセスを許可する時間を指定して[許可]を押せば許可した時間が過ぎるまではプログラムが実行される。
以下にサンプルプログラムを記述。
Outlookのメールボックスを参照するVBAのサンプルプログラム
サンプルプログラムを実行する際の前提条件としてOutlookのプロファイルが作成されている(実際にメールボックスにメールがある)必要がある。
Outlookのメールボックスを参照するVBAのサンプルプログラムを以下に記載する。
Sub Outlook_Test()
Dim olFolder, olSecFolder, olItem, olIndex As Long
Dim objOL, myNaSp
Set objOL = CreateObject("Outlook.Application")
Set myNaSp = objOL.GetNamespace("MAPI")
'指定している引数'6'は、定数'olFolderInbox'のこと
Set myfolder = myNaSp.GetDefaultFolder(6)
For olIndex = 1 To myfolder.Items.Count
Set myItem = myfolder.Items(olIndex)
Debug.Print myfolder
Debug.Print myItem.ReceivedTime
Debug.Print myItem.SenderName
Debug.Print myItem.Subject
Debug.Print myItem.SenderEmailAddress
Debug.Print myItem.Body
Next
Set myfolder = Nothing
End Sub
実行時に表示されるセキュリティ警告ダイアログボックスについて
プログラムを実行すると以下のようなセキュリティ警告を示すダイアログボックスが表示される。
[許可]をクリックし続ければそのままプログラムは実行されるが、[拒否]をクリックすると"実行時エラー"となってプログラムが止まる。
[アクセスを許可する時間]のチェックをオンにして、時間を指定した上で[許可]をクリックすれば、指定した時間を超えるまでプログラムの実行が継続される。
あまり使い勝手は良くない感じ。
コメント