2011年11月13日日曜日

step3 Outlook アドレス、件名、受信時間を調べる

前回は届いていたメールの総数を数えました。(step2
いよいよ個別メールの情報を調べていきましょう。
これが自在にできれば、目標にかなり近づきます!!
コードは↓のような感じ

Sub Outlook_test()
Dim objOL As Object
Dim objNAMESPC As Object
Dim myfolder As Object

Set objOL = CreateObject("Outlook.Application")
Set objNAMESPC = objOL.GetNamespace("MAPI")
Set myfolder = objNAMESPC.GetDefaultFolder(olFolderInbox)
Debug.Print myfolder

myfolder.Items.Count
Debug.Print myfolder.Items.Count

Dim i As Long
i = 1
Dim ItemNumber As Long
ItemNumber = myfolder.Items.Count
Do While i <= ItemNumber
   Debug.print "受信時間" & myfolder.Items(i).ReceivedTime & "アドレス" & myfolder.Items(i).SenderEmailAddress & "件名" & myfolder.Items(i).Subject

i = i + 1
Loop
End Sub
動きましたか? やってることは 「myfolderにあるi番目のアイテム(メールのこと)の受信時間(ReceivedTime)、アドレス(SenderEmailAddress)、件名(Subject)を表示する」 という作業をItemNumber(受信メール総数)回だけ繰り返す ということです。

NTTフレッツ光

ちなみに、プチネタですがプログラムを少し早く動かすために工夫があります。 ItemNumber = myfolder.Items.Count Do While i <= ItemNumber の部分です。 次のエントリーではいよいよ添付ファイルの情報を調べるやり方について書きます。 これって Do While i <= myfolder.Items.Count と書いても同じ意味ですよね? 変数も一つ減るし楽な感じがします。 でも、実はこの書き方の方が実行速度は落ちます。 なぜかというと、毎回myfolderにあるアイテムの数を数えているからです。 件数が少なければ大したことありませんが、1,000件も10,000件も溜っているメールボックスの情報を取る場合は目に見える差が出ます!! まぁちょっとしたこだわりです。 別に気にしなくても構いません。笑 PVランキング 人気ブログランキングへ

0 件のコメント:

コメントを投稿