EmailMergeEnvelope オブジェクト (発行元)

差し込み印刷メールに結合される Microsoft Publisher 文書を保持する電子メール コンテナー (封筒) を表します。

注釈

EmailMergeEnvelope オブジェクトのプロパティは、発行元ユーザー インターフェイスの [Merge to Email] ダイアログ ボックスの必須設定とオプション設定の組み合わせに対応します ([ファイル] メニューの [Send Email] をポイントし、[Send Email] を選択して [オプション] を選択します)。

MailMerge オブジェクトの Execute メソッドを使用して差し込みメールを送信するには、その前に EmailMergeEnvelope オブジェクトの To プロパティの値を指定する必要があります。そうしないと、Publisher はエラーを返します。

次の Microsoft Visual Basic for Applications (VBA) マクロは、電子メールの差し込みを表す EmailMergeEnvelope オブジェクトのプロパティの一部を割り当て、結果として得られる電子メール メッセージである招待を送信する方法を示しています。 このマクロは、データ ソースに接続し、EmailMergeEnvelope オブジェクトの To プロパティと Subject プロパティに値を割り当て、差し込みフィールドと追加のテキストを含むテキスト ボックスを電子メール メッセージに追加します。 次に、MailMerge オブジェクトの Execute メソッドを使用して、差し込みを実行し、メールを送信します。

この例で参照されるデータ ソースは、それぞれ FirstLastEmail Address という見出しの 3 つの列を含む単純なタブ区切りのテキスト ファイルです。

コードを実行する前に、テキスト ファイルを作成し、1 つ以上のデータ列を追加して、DataSource.txt という名前を付けてディスクに保存します。 PathToFile 変数を自分のパスに置き換えて、ファイルのパスをコードに追加します。

この例のコードを複数回実行すると、コードを実行するたびにデータ ソースに接続することで文書が複数のデータ ソースに接続されるので、エラーが発生します。 複数のデータ ソースへの接続が存在する場合、マスター (結合された) 差し込み印刷データ ソースに追加の列が挿入され、各レコードの特定のデータ ソースが指定されます。 この結果、すべてのデータ ソース列のインデックス番号が効率的に変更され、このコードで使用されるインデックス (MailMergeField1 など) が正しくなくなります。

Public Sub EmailMergeEnvelope_Example() 
 
 Dim pubShape As Publisher.Shape 
 Dim pubMailMerge As Publisher.MailMerge 
 
 'Connect to the data source. 
 Set pubMailMerge = ThisDocument.MailMerge 
 pubMailMerge.OpenDataSource "PathToFile \DataSource.txt" 
 
 'Assign "Email Address" to the To field of the email message. 
 pubMailMerge.EmailMergeEnvelope.To = pubMailMerge.DataSource.DataFields.Item(3) 
 
 'Add text to the Subject field of the email message. 
 pubMailMerge.EmailMergeEnvelope.Subject = "Invitation" 
 
 'Insert two merge fields and some additional text in a text box in the body of the message. 
 Set pubShape = ThisDocument.Pages(1).Shapes.AddTextbox(pbTextOrientationHorizontal, 100, 100, 200, 100) 
 pubShape.TextFrame.TextRange.Text = "Dear " 
 pubShape.TextFrame.TextRange.InsertMailMergeField 1 
 pubShape.TextFrame.TextRange.InsertAfter " " 
 pubShape.TextFrame.TextRange.InsertMailMergeField 2 
 pubShape.TextFrame.TextRange.InsertAfter ": " 
 pubShape.TextFrame.TextRange.InsertAfter "You are invited!" 
 
 'Perform the merge. 
 pubMailMerge.Execute True, pbSendEmail 
 
 'Display a reminder 
 MsgBox "If your email client is not already open, remember to open it and send the email messages that are in the outbox." 
 
End Sub

プロパティ

関連項目

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

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