情報と工夫で何とかやってみる(妥協点を見出す)ブログ

情報と工夫で何とかやってきた備忘録です。同じ悩みを抱えている人がいると思い、情報共有しようと思った次第です(尤も、このブログに辿り着いた時点でもう解決していると思いますが…)

情報と工夫で何とかやってきた備忘録です。同じ悩みを抱えている人がいると思い、情報共有しようと思った次第です。(尤も、このブログに辿り着いた時点では、もう解決されていると思いますが…)

マクロを使って、それぞれのアドレスにそれぞれの請求書を添付して送る

最終回はいよいよ、「マクロを使って、それぞれのアドレスにそれぞれの請求書を添付して送る」方法です。


前回までで会社名の入った請求書のPDFファイルが作成されました。その数200。で、これらの請求書が例えばデスクトップ上の請求書フォルダに入っていたとします。
ではここで、Excelファイルにもう1つデータを追加します。前回までで、Excelファイルは、以下になっているかと思います。
(A1のセル)番号
(B1のセル)請求先団体名
(C1のセル)請求先メールアドレス
(D1のセル)請求金額
(E1のセル)請求日(督促する場合があるので、請求日はデータで管理している)
(F1のセル)請求書ファイル名
そこで、以下を追加します。
(G1のセル)請求書ファイルの保存先フォルダ
ここには、デスクトップ上の請求書フォルダのフルパスを記述します。例えば「C:\Users\ユーザー名\Desktop\請求書」という感じでしょうか。フォルダを右クリックしてプロパティを表示させれば、「場所」というのがあるので、それをコピーして、最後に「\請求書」と付ければいいかと思います。
これを全行にコピーします。すると、各行の請求先団体に添付するファイルは、「G1のセルに記載されたフォルダ内のF1のファイル名」ということになるかと思います。そして前回までで、この請求先団体名と請求書のファイル名は一致しているかと思います。
さあ準備は整いました。いよいよ、マクロを使って、複数の宛先ごとに違うファイルを添付してメール送信する方法です。メールソフトにはOutlookを使います。方法は以下です。
https://zangyou-macro.com/macro-outlook2/
サイト作成者の方、素晴らしいマクロと説明をありがとうございます。
サイトの説明に従って、先ずはExcelの1列目にメール送信有無の欄を追加します。6列目のCC欄はなくても構いません。7列目と8列目は定型のものがあれば、この列もいりません。こうしてExcelの表を微修正したら、上記サイトのコードをコピーしてメモ帳なんかに張り付けます。そして、説明のとおりに、コードを修正していきます(決して難しくありません)。そして、CC欄を使わなければ、CCを入れる以下の部分、
Wm_ITEM.CC = ThisWorkbook.Sheets(shname).Cells(row, 6)
を次のようにします。
Wm_ITEM.CC = ""
メールのタイトルを入れる以下の部分
Wm_ITEM.Subject = ThisWorkbook.Sheets(shname).Cells(row, 7)
が規定の文字だったら、次のようにします。
Wm_ITEM.Subject = "〇〇です。請求書を送付させていただきます"
同様に本文を指す
Wm_ITEM.Body = Wm_ITEM.Body _
& vbCrLf _
& ThisWorkbook.Sheets(shname).Cells(row, 8)
の最後の行を、
& "いつもお世話になっています。"
というような規定のものにしてはどうでしょうか。ここら辺の書き方は、以下のサイトの中の本文あたりを参考にしてみてください。
https://www.helpforest.com/excel/emv_sample/ex100008.htm
こちらのサイト作成者さまも大変ありがとうございます。

で一通り修正が終了したら、いよいよマクロの実行です。Outlookを開いた状態にしておいて、例えば、Excelの方で「表示」→「マクロ」→「マクロの記録」→「OK」、もう一度、「マクロ」→「記録終了」、そしてもう一度、「マクロ」→「マクロの表示」をクリックすると、「Macro1」というマクロ名が選択されているかと思います。この状態で「編集」をクリックして、修正したコードをコピー&ペーストして、マクロの画面を閉じます。そして、「マクロ」→「マクロの表示」→「実行」をクリックすれば、自動で、Excelの各行の送付先アドレスに、各行の請求書ファイル名に記載されたファイルが貼り付けられたメールが作成されます。あとは、これを「送信」すればいいわけです。

いかがだったでしょうか? 上記サイトに記載のとおり、初期設定では自動で送信されずに手作業で行うようになっておりますが、問題なく動いているようであれば自動送信できます。私は小心者なので、手作業でやりますが、それでも、200回、メールアドレスをコピペして、それぞれにPDFファイルを添付するよりかは、すばらしく作業が早いです。サイト作成者の皆さま、本当に感謝です。

なお、「もっと便利な方法あるよ」と意見のある方。すみません、私のリサーチは上記のとおりでした。というか、上記で満足したので、さらに調べていません。どうかお許しください。ほか、サイトに記載のあるとおり、マクロの使用は自己責任でお願いいたします。