#257 Outlookの受信メールを取り込む方法 VBA

AccessのVBAからOutlook(ここではVer2002)を呼び出して、受信メールの内容を取り込むプログラム例です。

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

※このプログラムを実行するには、「Microsoft Outlook 10.0 Object Library」のライブラリに参照設定を行う必要があります。
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
※Outlook2002では、セキュリティのためか、このプログラムを実行すると、"外部からアクセスされている、ウィルスの可能性がある・・・・・・"といった旨のメッセージが何度も表示されます。この警告の解除方法は分かりませんでしたが、アクセスを許可する時間を指定してやれば、以降は表示されないようです。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved