DoCmd.SendObject メソッド (Access)

SendObject メソッドは、Visual Basic で "SendObject/オブジェクトの送信" アクションを実行します。

構文

SendObject (ObjectTypeObjectNameOutputFormatToCcBccSubjectMessageTextEditMessageTemplateFile)

expression: DoCmd オブジェクトを表す変数。

パラメーター

名前 必須 / オプション データ型 説明
ObjectType 省略可能 AcSendObjectType 送信するオブジェクトの種類を指定する AcSendObjectType 定数。
ObjectName 省略可能 Variant 引数 ObjectType で指定した種類のオブジェクトの有効な名前の文字列式。 メール メッセージにアクティブ オブジェクトを含める場合は、オブジェクトの種類を引数 ObjectType で指定し、この引数を空白のままにしておきます。 引数 ObjectTypeObjectName を両方とも指定しないと、引数 ObjectTypeacSendNoObject (既定値) が使われ、データベース オブジェクトを含まずにメッセージが Microsoft Access によって電子メール アプリケーションに送られます。

ライブラリ データベースで SendObject メソッドを含む Visual Basic コードを実行すると、Access はライブラリ データベースで最初にこの名前のオブジェクトを検索し、次に現在のデータベースで検索します。
OutputFormat 省略可能 バリアント型 (Variant) オブジェクトを送信する形式を指定する定数。 指定できる値には、 acFormatHTMLacFormatRTFacFormatSNPacFormatTXTacFormatXLSacFormatXLSBacFormatXLSXacFormatXPSacFormatPDF などがあります。
終了 省略可能 バリアント型 (Variant) メール メッセージの To 行に表示する受信者の一覧を文字列式で指定します。 この引数で指定した受信者名と Cc 引数と Bcc 引数をセミコロン (;))、または Windows コントロール パネルの [地域設定プロパティ] ダイアログ ボックスの [数値] タブでリスト区切り記号を設定して区切ります。 受信者の名前がメール アプリケーションによって認識されないと、メッセージは送信されずエラーが発生します。 この引数を指定しないと、受信者の入力を促すプロンプトが表示されます。
Cc 省略可能 バリアント型 メール メッセージの Cc 行に表示する受信者の一覧を文字列式で指定します。 この引数を指定しないと、メール メッセージの Cc 行は空白です。
Bcc 省略可能 バリアント型 メール メッセージの Bcc 行に表示する受信者の一覧を文字列式で指定します。 この引数を指定しないと、メール メッセージの Bcc 行は空白です。
Subject 省略可能 バリアント型 メール メッセージの [件名 ] 行に配置するテキストを含む文字列式。 この引数を指定しないと、メール メッセージの 件名行は空白です。
MessageText 省略可能 バリアント型 オブジェクトの後のメール メッセージの本文に含めるテキストを含む文字列式。 この引数を指定しないと、メール メッセージの本文に含まれるのはオブジェクトのみになります。
EditMessage 省略可能 バリアント型 True (1) 使用して、メッセージが読み込まれた状態で電子メール アプリケーションをすぐに開き、メッセージを編集できるようにします。 メッセージを編集せずに送信するには、False (0) を使います。 この引数を指定しないと、True (既定値) が使われます。
TemplateFile 省略可能 バリアント型 HTML ファイルのテンプレートとして使用するファイルの完全な名前 (パスを含む) の文字列式。

注釈

SendObject アクションを使用して、指定された Microsoft Access データシート、フォーム、レポート、またはモジュールを電子メール メッセージに含めます。ここで、表示および転送できます。 Microsoft Excel 2000 形式 (.xls)、MS-DOS のテキスト形式 (.txt)、リッチ テキスト形式 (.rtf)、または HTML 形式 (.html) のオブジェクトを、Microsoft Outlook、Microsoft Exchange、または MAPI 標準インターフェイスに準拠するその他のメール アプリケーションに添付することができます。

"SendObject/オブジェクトの送信" アクションを使ってメール メッセージにデータベース オブジェクトを添付する場合は、次の規則が適用されます。

  • テーブル、クエリ、およびフォームの各データシートを送信できます。 添付されるオブジェクトには、OLE オブジェクトを含むフィールドを除くデータシートのすべてのフィールドが出力されます。 OLE オブジェクトを含むフィールドの列もオブジェクトに出力されますが、フィールド値は空白になります。

  • [はい/いいえ] フィールド (トグル ボタン、オプション ボタン、またはチェック ボックス) にバインドされたコントロールの場合、出力ファイルには値 1 (はい) または 0 (いいえ) が表示されます。

  • ハイパーリンク型 (Hyperlink) フィールドに連結されたテキスト ボックスの場合、出力ファイルには MS-DOS テキストを除くすべての出力形式のハイパーリンクが出力されます (MS-DOS テキストの場合、ハイパーリンクは、通常のテキストとして出力されます)。

  • フォーム ビューのフォームを送信する場合、添付されるオブジェクトには常にフォームのデータシート ビューが含まれます。

  • レポートのデータを出力する場合、オブジェクトには、テキスト ボックス (.xls 形式の出力ファイルの場合)、またはテキスト ボックスとラベル (.rtf, .txt, .html 形式の出力ファイルの場合) の各コントロールのみが含まれます。 その他のコントロールはすべて無視されます。 Header and footer information is also not included. The only exception to this is that when you send a report in Excel format, a text box in a group footer containing an expression with the Sum function is included in the object. No other control in a header or footer (and no aggregate function other than Sum) is included in the object.

  • サブレポートはオブジェクトに取り込まれます。 サブフォームは Active Server Pages (*.asp) 形式で出力するときに取り込まれますが、その場合はデータシートではなくフォームとして出力することが前提となります。

  • HTML 形式のデータシート、フォーム、またはデータ アクセス ページを送信する場合は, .html ファイルが 1 つ作成されます。 HTML 形式のレポートを送信する場合は, .html ファイルがレポートのページごとに 1 つずつ作成されます。

モジュールは MS-DOS のテキスト形式でのみ送信できるので、引数 ObjectTypeacSendModule を指定すると、引数 OutputFormat には acFormatTXT を指定する必要があります。

注:

アドインをインストールした後にのみ、2007 Microsoft Office システム プログラムから PDF または XPS ファイル形式で保存することができます。 詳細については、「2007 Microsoft Office プログラム用アドイン: Microsoft PDF/XPS 保存アドイン」を参照してください。

次のコード例には、 Microsoft Excel 形式のメール メッセージの Employees テーブルが含まれており、メール メッセージの [宛先]、[ Cc]、[ 件名 ] 行を指定します。 このメール メッセージは編集されずに、すぐに送信されます。

DoCmd.SendObject acSendTable, "Employees", acFormatXLS, _ 
    "Nancy Davolio; Andrew Fuller", "Joan Weber", , _ 
    "Current Spreadsheet of Employees", , False

以下の例は、Microsoft Outlook で電子メール メッセージを作成して、ユーザーに表示する方法を示します。

Public Function CreateEmailWithOutlook( _
    MessageTo As String, _
    Subject As String, _
    MessageBody As String)

    ' Define app variable and get Outlook using the "New" keyword
    Dim olApp As New Outlook.Application
    Dim olEmail As Outlook.MailItem  ' An Outlook Mail item
 
    ' Create a new email object
    Set olEmail = olApp.CreateItem(olMailItem)

    ' Add the To/Subject/Body to the message and display the message
    With olEmail
        .To = MessageTo
        .Subject = Subject
        .Body = MessageBody
        .Display    ' To show the email message to the user
    End With

End Function

以下の例は、Microsoft Outlook で電子メール メッセージを作成して、ユーザーに電子メール メッセージを表示せずに送信する方法を示します。

Public Function SendEmailWithOutlook( _
    MessageTo As String, _
    Subject As String, _
    MessageBody As String)

    ' Define app variable and get Outlook using the "New" keyword
    Dim olApp As New Outlook.Application
    Dim olEmail As Outlook.MailItem  ' An Outlook Mail item
 
    ' Create a new email object
    Set olEmail = olApp.CreateItem(olMailItem)

    ' Add the To/Subject/Body to the message and display the message
    With olEmail
        .To = MessageTo
        .Subject = Subject
        .Body = MessageBody
        .Send       ' Send the message immediately
    End With

End Function

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。