Accessから電子メールを送信するための関数

Access97からOutlook97経由で電子メールを送信する関数を解説します。AccessからOutlookを呼び出して操作することをオートメーション(Automation)と呼びます。ここで紹介する例では、Accessのことをオートメーションクライアント(Automation Client)、Outlook97のことをオートメーションサーバ(Automation Server)と呼びます。

Access97からOutlook97経由にて電子メールを送信するには3つのプロシージャを使用します。

構文

OpenOutlook_FS オートメーション機能を利用してOutlook97を起動します。
SendtoOutlook_FS Outlook97の送信用のフォルダにメールデータ(Emailアドレス、件名、本文、添付ファイル、重要度)を作成します。このプロシージャを呼び出すときは5個の引数が必要になります。
strTo メールアドレスを指定します(必須)
strSubject 件名を指定します(必須)
strBody 本文を指定します(必須)
strAttachmentPath 添付ファイルのフルパス名を指定します(オプション)
intImportance 重要度( olImportanceHigh, olImportanceLow, olImportanceNormal)を指定します。省略すると普通となります。
CloseOutlook_FS Outlook97を終了します。

使用例1
この例では、電子メールのアドレス、用件、本文を直接指定して送信しています。

Public Sub Sample1()
 
    OpenOutlook_FS
    If gobjOutlook Is Nothing Then
        MsgBox "MS Outlook 8.0 is not installed on your computer"
        Exit Sub
    End If
        
    SendtoOutlook_FS strTo:="fs21@ceres.ocn.ne.jp", _
                     strSubject:="Automation", _
                     strBody:="Access97/Outlook Automation", _
                     intImportance:=olImportanceHigh

    CloseOutlook_FS
    
End Sub  


使用例2
この例では、メーリングリストのクエリーを開いてレコードセットのフィールド名(To,Subject,Body)を指定して電子メールを送信しています。メーリングリストのテーブル(To, Subject, Bodyのフィールドが必要)とクエリ(qrySubscriber)を作成してから実行してください。

Public Sub Sample2()
    Dim rs As Recordset
 
    OpenOutlook_FS
 
    Set rs = CurrentDb.OpenRecordset("qrySubscriber")
    With rs
      .MoveFirst
      Do Until .EOF
          SendtoOutlook_FS !To, !Subject, !Body
          .MoveNext
      Loop
    End With
    rs.Close
    Set rs = Nothing

    CloseOutlook_FS
    
End Sub  

注)
使用例をテストするには、ライブラリーデータベース(
MyLib.mda)を組み込む必要があります。