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