#255 Outlookの送信メールを生成する方法 VBA

AccessのVBAからOutlook(ここではVer2002)を呼び出して、送信メールを新規作成するプログラム例を紹介します。

ここでは固定的な送信先メールアドレス、固定的な本文を例としていますが、このプログラムを応用して、メールアドレスなどをテーブルからループで順次読み込んで切り替えていくようにすれば、Accessに保存された顧客情報などに沿って、複数の人を対象にメールを送るようなこともできます。

※このプログラムを実行するには、「Microsoft Outlook 10.0 Object Library」のライブラリに参照設定を行う必要があります。
Sub OutlookMailSend1()

  Dim olApp As Outlook.Application
  Dim olMailMessage As Outlook.MailItem
  Dim olRecipient As Outlook.Recipient
  Dim blnKnownRecipient As Boolean
  Dim strRecip As String
  Dim strSubject As String
  Dim strBody As String

  '送信先メールアドレスの設定
  strRecip = "xxxxxxx@xxxx.com"
  '件名の設定
  strSubject = "Outlookメール送信のテストです"
  'メール本文の設定
  strBody = "Outlookメール送信のテストです"

  'Outlookのインスタンスを作成
  Set olApp = New Outlook.Application
  'メッセージを新規作成
  Set olMailMessage = olApp.CreateItem(olMailItem)
  'メッセージの内容を設定して送信メール作成
  With olMailMessage
    Set olRecipient = .Recipients.Add(strRecip)
    blnKnownRecipient = olRecipient.Resolve
    .Subject = strSubject
    .Body = strBody
    If blnKnownRecipient Then
      '送信実行
      .Send
    End If
  End With
  Set olMailMessage = Nothing
  olApp.Quit
  Set olApp = Nothing

End Sub
※Outlook2002では、セキュリティのためか、このプログラムを実行すると、"外部からアクセスされている、ウィルスの可能性がある・・・・・・"といった旨のメッセージが何度も表示されます。この警告の解除方法は分かりませんでしたが、アクセスを許可する時間を指定してやれば、以降は表示されないようです。
Outlookの警告メッセージ
※Outlook2002のアプリケーションがすでに開いているとうまく送信メールが生成されないことがあります。必ず閉じてからこのプログラムを実行するようにすれば安定してうまくいくようです。
※Office Developer付属の「コードライブラリアン」にもOutlookのメール送信プログラム例が載っていましたが、テスト環境(WinXP+Access2002+Outlook2002)ではエラーが発生し、まったく動作しませんでした。
| Index | Prev | Next |



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