Excelシート上のアドレスと宛名を使ってメールを一斉送信

例によって先生から「この前入力してもらった名刺のメールアドレス宛にメール送りたいんだけど,本文の一部だけ変えてその人の名前にするとかできるかな?」というお仕事がふってきた.
具体的に書くとExcelのシートにこんなデータがあって.

アドレス 名前
nanoha@megami.co.jp nanoha
fate@megami.co.jp fate

ぽちっとボタン押したら,それぞれのアドレスに

Dear. nanoha
ほにゃらら

Dear. fate
ほにゃらら

って感じにメールを送りたいと.


ExcelとWordで連携して年賀状の宛名印刷とかできるんだから,当然メールもできるだろうと思って探してみたらいろいろ見つかった.その中でもこれが一番シンプルで使いやすい.
JVC - ‚²Žw’è‚̃y[ƒW‚ÍŒ©‚‚©‚è‚Ü‚¹‚ñ‚Å‚µ‚½B

これは便利すぐる!!
中身もExcelVBAがたかだか数十行で簡単にいじれる.

(なのは様にこんなメール送っちゃいけません)

オリジナルのやつはスクリプトの中で本文に宛名とかを入れてたけど,Excelのセル内でも文字列結合とかできるのだから,その場でやるようにした.
本文のところはこういう感じの式になる.CONCATENATE関数を使わなくてもセル中で&を使えば文字列結合できるって初めて知った.セル中での改行はAlt+Enterね.あと,&で結合するときは文字列をダブルクオテーションでくくる必要がある.

=D8 & "様
こんにちわ
おはよう"

あとは「メール送信」ボタンでだばだばとメールが送られる.

ちなみにExcelVBAからメールを送るのにCDOという機能を使うらしいんだけど,Outlookが入ってないと使えないようだ(このPCはフルインストールしてたので問題なく使えた)
CDOとやらはここでダウンロードできるみたい.