#255 | Outlookの送信メールを生成する方法 | VBA | |
AccessのVBAからOutlook(ここではVer2002)を呼び出して、送信メールを新規作成するプログラム例を紹介します。 ここでは固定的な送信先メールアドレス、固定的な本文を例としていますが、このプログラムを応用して、メールアドレスなどをテーブルからループで順次読み込んで切り替えていくようにすれば、Accessに保存された顧客情報などに沿って、複数の人を対象にメールを送るようなこともできます。 ※このプログラムを実行するには、「Microsoft Outlook 10.0 Object Library」のライブラリに参照設定を行う必要があります。 Sub OutlookMailSend1()
※Outlook2002では、セキュリティのためか、このプログラムを実行すると、"外部からアクセスされている、ウィルスの可能性がある・・・・・・"といった旨のメッセージが何度も表示されます。この警告の解除方法は分かりませんでしたが、アクセスを許可する時間を指定してやれば、以降は表示されないようです。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のアプリケーションがすでに開いているとうまく送信メールが生成されないことがあります。必ず閉じてからこのプログラムを実行するようにすれば安定してうまくいくようです。 ※Office Developer付属の「コードライブラリアン」にもOutlookのメール送信プログラム例が載っていましたが、テスト環境(WinXP+Access2002+Outlook2002)ではエラーが発生し、まったく動作しませんでした。 |
|||
|
Copyright © T'sWare All rights reserved |