#257 | Outlookの受信メールを取り込む方法 | VBA | |
AccessのVBAからOutlook(ここではVer2002)を呼び出して、受信メールの内容を取り込むプログラム例です。 このプログラム例では、受信メールの件名をチェックして、指定の件名であればその発信元メールアドレスと本文をイミディエイトウィンドウに出力するだけですが、これを応用すれば、Outlookの受信メールをAccess側で仕分けして、HTMLのフォームから送信された「商品注文」のような定型的なメールの内容を、受注テーブルなどに半自動で取り込む処理も実現できると思います。 ※このプログラムを実行するには、「Microsoft Outlook 10.0 Object Library」のライブラリに参照設定を行う必要があります。 Sub OutlookMailRciv()
※Outlook2002では、セキュリティのためか、このプログラムを実行すると、"外部からアクセスされている、ウィルスの可能性がある・・・・・・"といった旨のメッセージが何度も表示されます。この警告の解除方法は分かりませんでしたが、アクセスを許可する時間を指定してやれば、以降は表示されないようです。 Dim olApp As Outlook.Application Dim olNameSpace As Outlook.NameSpace Dim olFld As Outlook.MAPIFolder Dim iintLoop As Integer 'Outlookのインスタンスを作成 Set olApp = New Outlook.Application '名前空間に"MAPI"を指定 Set olNameSpace = Outlook.GetNamespace("MAPI") '受信メールの保存先を設定 Set olFld = olNameSpace.Folders("個人用フォルダ").Folders("受信トレイ") '受信トレイ内のすべての受信メールを取り出すループ '(受信トレイのサブフォルダは対象外です) For iintLoop = 1 To olFld.Items.Count With olFld.Items(iintLoop) '未読メールのみピックアップ If .UnRead Then '件名に"注文書"という文字が含まれているかチェック If InStr(.Subject, "注文書") > 0 Then '含まれていたら送信元と本文を出力 Debug.Print .SenderName Debug.Print .Body End If End If End With Next iintLoop Set olFld = Nothing Set olNameSpace = Nothing olApp.Quit Set olApp = Nothing End Sub |
|||
|
Copyright © T'sWare All rights reserved |