VBA:Outolookの受信ボックスのメールをVBAで取得するサンプル

VBA共通,VBA,Access VBA,Microsoft Office,Excel VBA,Outlook

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 

実行時に表示されるセキュリティ警告ダイアログボックスについて

プログラムを実行すると以下のようなセキュリティ警告を示すダイアログボックスが表示される。

[許可]をクリックし続ければそのままプログラムは実行されるが、[拒否]をクリックすると"実行時エラー"となってプログラムが止まる。

[アクセスを許可する時間]のチェックをオンにして、時間を指定した上で[許可]をクリックすれば、指定した時間を超えるまでプログラムの実行が継続される。

あまり使い勝手は良くない感じ。

(Visited 394 times, 166 visits today)

Posted by るーと