Automation を使用して Access 2000 を使用して Microsoft Outlook メッセージを送信する方法

この記事は、Microsoft Access データベース (.mdb) と Microsoft Access プロジェクト (.adp) に適用されます。

概要

この記事では、Automation を使用して Microsoft Access 2000 で Microsoft Outlook メッセージを作成して送信する方法について説明します。

Microsoft は、例示のみを目的としてプログラミング例を提供しており、明示または黙示にかかわらず、いかなる責任も負わないものとします。 これには、市販性または特定の目的との適合性についての黙示の保証も含まれますが、これに限定はされません。 この記事は、説明されているプログラミング言語、手順を作成およびデバッグするために使用されているツールに読者が精通していることを前提にしています。 マイクロソフト サポート窓口では、特定のプロシージャの機能説明に関するご質問に対して支援いたしますが、本例を特定の目的を満たすために機能を追加したり、プロシージャを構築することは行いません。

注:

Outlook 電子メール セキュリティ更新プログラムをインストールした場合、次のコードが正しく動作しない可能性があります。

メソッドを SendObject 使用して、Microsoft Access でプログラムで MAPI メール メッセージを送信できます。 ただし、 メソッドでは、 SendObject 外部ファイルを添付したり、メッセージの重要度を設定したりする機能など、完全なメール機能にアクセスすることはできません。 次の例では、Automation を使用して、メソッドで使用できない Microsoft Outlook の多くの機能を利用するために使用できるメール メッセージを SendObject 作成して送信します。

Automation を使用して Microsoft Outlook メール メッセージを送信するには、次の 6 つのメイン手順があります。

  1. Outlook セッションを初期化します。
  2. 新しいメッセージを作成します。
  3. 受信者 (宛先、CC、BCC) を追加し、その名前を解決します。
  4. サブジェクト、本文、重要度などの有効なプロパティを設定します。
  5. 添付ファイルを追加します (存在する場合)。
  6. メッセージを表示/送信します。

プログラムによる Microsoft Outlook メール メッセージの送信

  1. C:\My Documents フォルダーに Customers.txt という名前のサンプル テキスト ファイルを作成します。

  2. Microsoft Access を起動し、サンプル データベース Northwind.mdbを開きます。

  3. モジュールを作成し、[宣言] セクションに次の行を入力します (まだ存在しない場合)。

    Option Explicit

  4. [ ツール ] メニューの [ 参照] を選択します。

  5. [ 参照 ] ボックスで、 Microsoft Outlook 9.0 オブジェクト ライブラリを選択し、[ OK] を選択します

    注:

    [使用可能な参照] ボックスに Microsoft Outlook 9.0 オブジェクト ライブラリが表示されない場合は、ハード ディスクで Msoutl9.olb というファイルを参照します。 このファイルが見つからない場合は、この例に進む前に、Microsoft Outlook セットアップ プログラムを実行してインストールする必要があります。

  6. 新しいモジュールに次の手順を入力します。

    Sub SendMessage(Optional AttachmentPath)
        Dim objOutlook As Outlook.Application
        Dim objOutlookMsg As Outlook.MailItem
        Dim objOutlookRecip As Outlook.Recipient
        Dim objOutlookAttach As Outlook.Attachment
    
        ' Create the Outlook session.
        Set objOutlook = CreateObject("Outlook.Application")' Create the message.
        Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
    
        With objOutlookMsg
        ' Add the To recipient(s) to the message.
        Set objOutlookRecip = .Recipients.Add("Nancy Davolio")
        objOutlookRecip.Type = olTo
    
        ' Add the CC recipient(s) to the message.
        Set objOutlookRecip = .Recipients.Add("Andrew Fuller")
        objOutlookRecip.Type = olCC
    
        ' Set the Subject, Body, and Importance of the message.
        .Subject = "This is an Automation test with Microsoft Outlook"
        .Body = "Last test - I promise." & vbCrLf & vbCrLf
        .Importance = olImportanceHigh 'High importance
    
        ' Add attachments to the message.
        If Not IsMissing(AttachmentPath) Then
        Set objOutlookAttach = .Attachments.Add(AttachmentPath)
        End If
    
        ' Resolve each Recipient's name.
        For Each objOutlookRecip In .Recipients
        objOutlookRecip.Resolve
        If Not objOutlookRecip.Resolve Then
        objOutlookMsg.Display
        End If
        Next
        .Send
    
        End With
        Set objOutlookMsg = Nothing
        Set objOutlook = Nothing
    End Sub
    
  7. この手順をテストするには、[ イミディエイト ] ウィンドウに次の行を入力し、Enter キーを押します。

    SendMessage "C:\My Documents\Customers.txt"

    添付ファイルを指定せずにメッセージを送信するには、次のようにプロシージャを呼び出すときに引数を省略します。

    SendMessage