スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

EXCEL一覧からメールを一括送信する方法

EXCELの一覧からのメール一括送信の方法をご紹介します。

(注意)
・SPAMメール送信に使うことは禁止です。
・WindowsやEXCELのバージョンなどによっては動かない場合があるようです。
 詳細は、下記「EXCELメール一括送信の注意点」をご覧ください。

EXCEL メール一括送信の利用方法

この方法は、EXCELのマクロと、CDO(Microsoft Collaboration Data Objects)を利用します。まずは、下からEXCEL ファイルをダウンロードしてください。

EXCELメール一括送信ファイル ダウンロード(xls ファイル、59kB) 
EXCELエクセルメール一括送信ファイルダウンロード(xls ファイル、59kB)【2009/8/23追加】
 (GmailのSMTPサーバに対応版:コメント欄参照)

以下、手順にそって説明します。また、EXCELファイル自体にも使い方を簡単に説明したシート(「使い方の説明」)が入っていますので、そちらも参照してください。

1. ダウンロードした EXCEL ファイルを開きます。
 ・「excel_mail_send.xls はマクロを含んでいます。」という表示が出る場合には、「マクロを有効にする」ボタンを押してください。

2. Sheet1 シートを表示してください。
 ・おそらくはじめにこのシートが表示されるとは思いますが、念のため。

3. C 列 2 行のセルに、普段使用しているメールアカウントの SMTP サーバ(送信サーバ)名を記入してください。普段使っているメールソフトのアカウント設定画面などにすでに入力されているはずです。(例:smtp.mail.yahoo.co.jp)

4. C 列 4 行のセルに、送るメールで「送信元メールアドレス」としたいメールアドレスを記入してください。メールを送られた人からすれば「送り元」になります。送られたメールに返答することが考えられますので、普段利用しているメールアドレスがいいでしょう。

5. C 列 5 行のセルに、メールを送る際に、BCC を送りたいメールアドレスを記入してください。必要ない場合は空欄で結構です。
この方法でメールを送っても、だれにメールを送ったかはお使いのメールソフトの送信箱には残りません(このマクロとメールソフトとは何の関係もないからです)。EXCELのなかにも残りません(sheet1の情報だけです。)。ですので、あとでそれをわかりたい場合は、自分のメールアドレスをここに記入しておけば、送ったメールが自分宛にも届きますので、これをメールソフト内で送信箱に移動する、などして対応してみてください。「BCC ってなに?」というかたはメールのBccフィールドを活用する ? @ITにわかりやすい説明がありますので、見てください。

6. 8 行目以降に、メールを送る先の情報を記入してください。1行=1メールになります。
 ・B 列:送信先メールアドレス(必須項目)
 ・C 列:メール件名
 ・D 列:送信先団体名
 ・E 列:送信先宛名
 ・F 列:メール本文:このセルの中にメール本文を記入します。セル内で改行することもできます。セル内での改行の仕方は、[Alt] キーを押しながら [Enter] キーを押してください。ちなみに、1セル内には約32,000文字程度が入るようです。

7. 送りたいメールの分の情報を記入し終わったら、「メール送信」ボタンを押してください。8行目の情報から順番に、3 秒に 1 件ずつ、メールを送信します。どの行まで送ったかが、F列2行に表示されます。
8行目以降、行のデータが入っている分だけ送信します。なお、途中でB 列(=送信先メールアドレス)に空白のセルがあるとそこで終了してしまうので、B 列は必ず入力してください。
いかがでしょうか。サンプルデータの8行目の情報から送られるメールは、以下のようになります。

宛先:hogehoge@****.com
件名:テストメール1用の件名!
本文:
■■■法人
 ほげほげ 様
ここに本文を書きます。
改行はAltキーを押しながらEnterキーを押しましょう。

宛先、件名、本文1行目(=団体名)、本文2行目(=宛名)、本文3行目以降として、EXCEL のデータが使用されていることがおわかりになるでしょうか。

これで、いままでメールソフトから手作業で送っていたものが、一括で送れるようになります。3 秒で 1 件ですから、100 件送るのに300 秒=5 分、ということですね(もちろん EXCEL 上の事前データ編集の時間はかかりますが)。効率があがることはもちろん、操作が簡単ですから、まちがえて CC で送っちゃった、ということもありえません。

もちろん、すでにあるEXCEL の名簿などからもメールアドレスや宛名欄などがコピペしてこれますし、イベントごとにファイルを分けておけば、参加者名簿がそのままメール送信履歴にもなる、といった管理方法も考えられます。素晴らしいと思いませんか? このマクロを使って、いままでメール対応に追われていた時間を少しでも短縮できれば幸いです。

ex) http://webforthenext.wordpress.com/2008/05/06/excel/


Excelメール一括送信の注意点

動作環境について
この方法は、様々な要素によって、使える場合と使えない場合が出てくるようです。下記のその項目と、簡単な対策方法を示します。

windows のバージョン
 98/ME:不可
 2000/XP:OK
 Vista:未確認

Excel のバージョン
 97以前:未確認(おそらく不可)
 2000:OK
 2003 以降:未確認
【対策】Officee2003においては、標準インストールではCDOがインストールされない(アップグレードインストールだと削除する)、といったことがあるようです。詳しくはこちらのOffice2003のインストールでCDOが動かなくなる! 「VBA応用(CDOでメール送信)」内をご覧ください。Office2003 における CDO のインストール方法が説明されています。
 

お使いの SMTP サーバの設定
(※ここの説明で、「こういう状況にある→こう対策する」という順序ですすめるのがちょっと難しいと思われる場合には、何かしらのエラーが出る場合に、とりあえず下記対策を一つづつ試してみる、というのも手かと思います)
・25番ポートブロック(Outbound Port25 Blocking)対策が必要な場合
 【対策】 sheet1 の C 列 3 行の 25 を 587 に変更してみてください。
・POP before SMTP が必要な場合
 【対策】 適切な対策でないかもしれませんが、お使いのパソコンで、同じ SMTP サーバを利用するメールアカウントで一度受信作業をして、直後にこのマクロを利用してみてください。
・SMTP AUTH が必要な場合
 【対策】 マクロの修正が必要です。マクロ内の、”※「メール送信時に認証が必要」な場合”という部分の記述にしたがって、マクロを修正してください。


もちろん、こうしたものを提供する側としては「どんな環境においても動くものを提供する」ことが本道だとは思っていますが、公開前の動作確認に多大な時間を割くよりも、多少の課題はありつつも公開して、大勢の利用者で情報を共用したほうがいい、と判断しました。

ですので、「動いた!」「動かない・・・」というかたは、コメント欄に記述をお願いします(その際には、上記3項目【 windowsバージョン、Excel バージョン、SMTP サーバ設定】をご記入ください)。多くの環境での動作状況がわかれば、それだけ使える人も多くなると思いますので、ぜひ皆様ご協力ください。

ちなみに、私の動作環境は、windows バージョン:XP Pro SP2、Excel バージョン:2000 SP3、SMTP サーバ設定:POP before SMTP もしくは SMTP AUTH が必須(よって上記POP before SMTP の対策で対応)、です。

送信速度が遅い?ことについて
遅い理由は、メール送信を3 秒に 1 件としているためです。これは、プロバイダに SPAM メール送信と誤解されないようにするための、念のための処置です。また、あまりに常識外の件数を一気に送る行為も、同様の判定を受ける可能性がありますので、常識の範囲内で利用しましょう。ご利用のプロバイダによって SPAM 判定の基準は異なると思いますのでご注意ください。ちなみに、「3 秒に 1 件」の設定は、マクロ内で変更できます。
関連記事
スポンサーサイト
ここは記事下のフリースペースです
コメント
非公開コメント

トラックバック

http://matsulink.blog95.fc2.com/tb.php/286-e4c1d774

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。