Excel のリストにしたがってファイルを添付して送信するマクロ


コメントにて、以下のようなご要望をいただきました。


現在、複数アドレスに、それぞれ異なるPDFファイルを添付して送る作業をしています。アドレスのデータは、outlookのアドレス帳にグループごとにインポートしました。しかし、PDF(ワードの差し込みで、名前とID番号を入れてPDFに作成してあります)の添付と、メール文面を毎回署名から作成する作業に時間がかかります。各グループが40~100件近く、グループ数が12あり、総件数が1000件近くになります。メール文面は、グループごとに異なり、12種類必要です。件名は全グループ同じです。文面は、グループごとに署名として登録し、一通ずつ呼び出して、さらにPDFファイルを毎回添付してから送信しています。outlook2010、windows7を使っていますが、マクロでまとめて作業することはできるでしょうか。

追加の要件:

①PDFファイルは、wordに、3の作業エクセルのA列のメールアドレスの持ち主たちの 1)名前2)申し込みID を差し込んで作ります。
②(送付するPDFファイルは、セミナーの受講票です。申し込んだ人たちそれぞれのIDと名前が入り、申込み者のメアドに送信します。
③そのセミナーのコースが12あり、それぞれコース名が入った文面のOFTファイルをテンプレートとして作成できます。



このような定型作業こそ、マクロの真価が発揮できるものですね。

以下のような流れで実現できるでしょう。

  1. 以下のような Excel ファイルを作成します。(1行目にはヘッダーを入れます。)

    A 列: メールアドレス
    B 列: 名前
    C 列: 申し込み ID
    D 列: PDF ファイル名
    E 列: OFT ファイル名

  2. 上記の Excel ファイルをもとに、Word の差し込み印刷で PDF ファイルを作ります。
  3. OFT ファイルをコースごとに作成します。
  4. 下記のマクロを実行します。
    ' ここをトリプルクリックでマクロ全体を選択できます。
    Public Sub SendPDFbyExcel()
        Const EXCEL_FILE = "c:\temp\list.xlsx" ' このファイル名を 1. の Excel ファイル名の置き換えてください
        Dim iCol As Integer
        Dim objBook As Excel.Workbook
        Dim objSheet As Excel.Worksheet
        Dim objMail As MailItem
        '
        Set objBook = GetObject(EXCEL_FILE)
        Set objSheet = objBook.Sheets(1)
        iCol = 2
        With objSheet
            While .Cells(iCol, 1) <> ""
                Set objMail = Application.CreateItemFromTemplate(.Cells(iCol, 5))
                objMail.Recipients.Add .Cells(iCol, 2) & "様 <" & .Cells(iCol, 1) & ">"
                objMail.Body = Replace(objMail.Body, "%name%", .Cells(iCol, 2))
                objMail.Body = Replace(objMail.Body, "%id%", .Cells(iCol, 3))
                objMail.Attachments.Add .Cells(iCol, 4).Value
                objMail.Send
                iCol = iCol + 1
            Wend
        End With
        objBook.Close
    End Sub

マクロの登録方法やメニューへの追加について

Excel のリストにしたがってファイルを添付して送信するマクロ」への1件のフィードバック

  1. ExcelMailAddinを試しませんか。
    http://superdbtool.com/blog/archives/284
    特長:
    1.HTML形式で送れる
    2.文字コードの設定ができる
    3.本文に差し込み設定ができる
    4.送信時間と一定件数ごとのインターバルが設定できる
    5.宛先は1件のみ表示でメアドではなく名前が表示できる

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中