AccessのVBAからOutlook(ここではVer2002)を呼び出して、受信メールの内容を取り込むプログラム例です。
このプログラム例では、受信メールの件名をチェックして、指定の件名であればその発信元メールアドレスと本文をイミディエイトウィンドウに出力するだけですが、これを応用すれば、Outlookの受信メールをAccess側で仕分けして、HTMLのフォームから送信された「商品注文」のような定型的なメールの内容を、受注テーブルなどに半自動で取り込む処理も実現できると思います。
Sub OutlookMailRciv()
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
|