Excelの一覧からメールを一括送信

Excelの一覧からメールを一括送信

大勢のかたにメールを一度に送信したいときってよくありますよね。

例えば、単発のイベントのリマインドメールや開催後のお礼メールなどで、「本文の内容はほとんど一緒でも、宛名部分やちょっとしたあいさつだけでもそれぞれ個別に設定したい」、といったような場合です。

普段使っているメールソフトからでも送れますが、「BCC じゃなくて CC にしてしまったらどうしよう」、「そもそも本文内容を個別に変えられないので、けっきょくコピペ+編集する必要がある」などの問題点があります。

そこで今回は、ちょっと前に知った、Excelの一覧からのメール一括送信の方法をご紹介します。うまく使えれば、超絶的に便利です。ただし、SPAMメール送信に使うことはもちろんご遠慮願います。お願いしますよほんとに。

最初に白状(?)しておきますが、この方法は、windows のバージョン、Excel のバージョンなどによっては動かない場合があるようです。詳しくは、下のExcelメール一括送信の注意点をご覧ください。もちろんそのままで使えるかたも多いかとは思います(そう願います)。

Excel メール一括送信:利用方法

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

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

    1. ダウンロードした Excel ファイルを開きます。
      • 「excel_mail_send.xls はマクロを含んでいます。」という表示が出る場合には、「マクロを有効にする」ボタンを押してください。
    2. Sheet1 シートを表示してください。
      • おそらくはじめにこのシートが表示されるとは思いますが、念のため。
Sheet1 の画面
  1. C 列 2 行のセルに、普段使用しているメールアカウントの SMTP サーバ(送信サーバ)名を記入してください。普段使っているメールソフトのアカウント設定画面などにすでに入力されているはずです。(例:smtp.mail.yahoo.co.jp)
  2. C 列 4 行のセルに、送るメールで「送信元メールアドレス」としたいメールアドレスを記入してください。メールを送られた人からすれば「送り元」になります。送られたメールに返答することが考えられますので、普段利用しているメールアドレスがいいでしょう。
  3. C 列 5 行のセルに、メールを送る際に、BCC を送りたいメールアドレスを記入してください。必要ない場合は空欄で結構です。
    • この方法でメールを送っても、だれにメールを送ったかはお使いのメールソフトの送信箱には残りません(このマクロとメールソフトとは何の関係もないからです)。Excelのなかにも残りません(sheet1の情報だけです。)。ですので、あとでそれをわかりたい場合は、自分のメールアドレスをここに記入しておけば、送ったメールが自分宛にも届きますので、これをメールソフト内で送信箱に移動する、などして対応してみてください。「BCC ってなに?」というかたはメールのBccフィールドを活用する ? @ITにわかりやすい説明がありますので、見てください。
  4. 8 行目以降に、メールを送る先の情報を記入してください。1行=1メールになります。
    • B 列:送信先メールアドレス(必須項目)
    • C 列:メール件名
    • D 列:送信先団体名
    • E 列:送信先宛名
    • F 列:メール本文:このセルの中にメール本文を記入します。セル内で改行することもできます。セル内での改行の仕方は、[Alt] キーを押しながら [Enter] キーを押してください。ちなみに、1セル内には約32,000文字程度が入るようです。
  5. 送りたいメールの分の情報を記入し終わったら、「メール送信」ボタンを押してください。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 の名簿などからもメールアドレスや宛名欄などがコピペしてこれますし、イベントごとにファイルを分けておけば、参加者名簿がそのままメール送信履歴にもなる、といった管理方法も考えられます。素晴らしいと思いませんか? このマクロを使って、いままでメール対応に追われていた時間を少しでも短縮できれば幸いです。

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

動作環境について

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

  • windows のバージョン
    • 98/ME:不可
    • 2000/XP:OK
    • Vista:未確認
    • (※ちなみに、身近にまともな MacOS がないために Mac での動作確認は一切できていません。Mac ユーザーの方すみません。ていうか、CDO 自体動くのかしら?)
  • Excel のバージョン
    • 97以前:未確認(おそらく不可)
    • 2000:OK
    • 2003 以降:未確認
  • お使いの 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 件」の設定は、マクロ内で変更できます。

お礼およびその他

このマクロ自体はシーズ=市民活動を支える制度をつくる会のT氏から教えていただいたものを改良したものです。また、改良に当たっては以下のページを参考にしました。この場を借りてお礼を申しあげます。ありがとうございました。

このマクロ自体は、上記のページなどを参考に作成したものなので、とくに利用に制限は持たせません。ご自由にお使いください(SPAM 目的は厳禁)。ただし、このマクロに関してはご自身の責任のもとでの利用をお願いいたします。万一なんらかのトラブルが発生しても、当ブログ管理者は一切責任を負いませんので、ご了承ください。

また、ソフトのインストールや VBA がわかる人にとっては、有名な汎用コンポーネントであるBASP21を利用する手法もあります。こちらに関しては、以下のページが参考になるでしょう。

広告

Excelの一覧からメールを一括送信” への48件のフィードバック

  1. 一括送信ソフト一部改造して使わせてもらってます。改造内容はメール本文を「F8]セルのデータだけを参照するようにしたこと、送信間隔を10秒に変更したことなどです。
    大量メール送信の適正流量はどのくらいなのでしょうか。
    このメールソフトでは、プロバイダの流量制限に触れることはないのでしょうか。

  2. 清水さま、コメントありがとうございます。
    お返事が遅れて申し訳ありません。
    プロバイダによる流量制限についてですが、僕自身正直あまり詳しくありません。各プロバイダごとにポリシーや制限値自体も異なると思いますので、清水さまが利用されているプロバイダの利用規約などをご参照されてみてはいかがでしょうか。
    個人的には、「並外れた量のメールなりデータなりを一度に大量に(上り方向に)送信することに対して、何らかの制限がかけられる場合がある」という理解です。ですので、常識内の量であれば、それほど神経質にならなくていいのではないでしょうか。「適正流量」がどれくらいなものかはわかりかねますが、もちろん非常識なほどに大量に送れば、このExcelの仕組みでも、その種の制限に引っかかる可能性はあると思われます。お答えになっているでしょうか。
    これに関連して、以下のようなページを見つけました。
    平成20年6月25日:個人向けOCNサービスにおける大量データ送信制限の実施について | NTT Com 企業情報
    http://www.ntt.com/release/monthNEWS/detail/20080625.html
    スパムメール送信対策、という面もありますが、昨今ではファイル共有ソフトの制限という面もあるみたいですね。
    これからもよろしくお願いいたします!

  3. 親切に、色々な説明があり、見やすいです。
    更新等があったら、見ている側の知識も増えるので
    教えて頂けたら幸いです。
    (まぁイチイチ、更新情報を読者に伝えたりは
    面倒で、できないでしょうけど・・)
    ちなみに私の環境は
    WinXP SP3 / Excel2000 です。

  4. 親切な解説や解り易くシンプルなサンプルコードをご提供下さり大変助かります。ありがとうございます。
    少々長文になってしまいますが、送信間隔3秒の処理中断の件でコメントさせて下さい。「中断時間を3秒にしようが10秒にしようが意図した流量制限が行えていないのではないか?」という内容です。
    サンプルコードを利用して、先ず試しに事務所内の社員5名宛に1通ずつ、計5通を送付した場合は上手く送受信出来ました。
    よし、それでは!と同じく5名の社員を宛先に1人あたり20通の計100通を送付してみようとしたところ、計30通送付したあたりから処理遅延が始まり、1件処理するのに3秒どころか1分とか2分とか時間がかかりだしました。計60通送付したあたりで、エラーの文言は定かではありませんが、「サーバとの通信が切断された」という旨のエラーが表示され、マクロはエラー終了しました。
    実行開始からエラー終了するまでに時間は10分程度ありましたが、その間に受信側にメール配信された数は0通で、エラー終了した後1?2分時間をおいて受信側にメールが一気に配信されました。
    この結果から推測し、中断時間を3秒にしようが10秒にしようが意図した流量制限が行えていないのではないかと思う次第です。
    マクロ内では「送信間隔3秒の処理中断」をApplication.waitにより実施し、その中断中にwindowsにメールの送信処理を行わせることにより、流量制限を実施しようとされていらっしゃるものと思いますが、実際にはOSの実行権はマクロ側に残ったままであり、マクロ側で何十件(もしくは何百件)かの送信要求を処理し終わった時点で、windowsが実際のメール送信を開始するから、一気にメールが届いたり、送信要求が溜まりすぎてリソースが足りなくなりエラー終了してしまうのではないかと思います。
    私の環境は
    WinXP SP3 / Excel2000 ,PCはDELLのノートでLatitude D810です。
    ちなみに別のDisktopPCで送信数を40、中断時間3秒→10秒に変更して実施したところ、遅延は発生せず40件送付できましたが、マクロが動作していた約5分の間、メール配送は全く行われずに、40件のマクロの処理が終了後に一気にメール配送していることについてはノートPCでの実施結果と同じでした。
    処理遅延やエラーが発生する件数はマシンの性能やメモリ環境に左右されるところが大きいと思いますが、Application.waitによる中断を別の処理方式に変えればマシン性能や環境によるエラーも発生しなくなるのではと思います。
    私にVBAの知識がほとんどありませんので、ネットでいろいろと調べてみて、別の良い中断方式等が確認できましたらご報告致します。
    以上です。

  5. suiduさま、コメントありがとうございます。
    お返事が遅れてすみません。
    >更新等があったら、見ている側の知識も増えるので
    >教えて頂けたら幸いです。
    ということですが、ブログ全体の更新情報でしたら、RSSを配信していますのでぜひ購読していただければと思います。RSSやフィードに関する記事も書いていますのでそちらもご参照ください。
    http://www.ngo-jvc.net/blogs/wfn2/2008/05/rss.html
    「この記事に対するコメントの更新をお知らせする」ということでしたら、すみません、まだコメントのRSSは配信できていないのです(泣)。
    時間ができたら対応したいと思いますので、ご容赦ください。
    これからもよろしくお願いいたします!

  6. Takaharuさま、コメントありがとうございます。
    うまく動かない旨のご丁寧なご報告ありがとうございます。
    >5名の社員を宛先に1人あたり20通の計100通を送付して
    >みようとしたところ、 (中略)
    >「サーバとの通信が切断された」という旨のエラーが
    >表示され、マクロはエラー終了しました。
    ということでしたので、僕の環境でも、5人*20通(3秒wait指定)のテストをしてみました。その結果、数秒に1件ずつ、送信されました。
    以下、その詳細です。ちょっと長いです。

  7. 2008年8月 1日 11:59にコメントさせて戴いたTakaharuです。
    HOSONO様、お忙しい中を懇切丁寧にご回答いただきありがとうございました。
    回答を戴き調査を進めたところ、私のPC環境でマクロによる多量のメール送信が上手くいかない要因が特定できましたので報告致します。
    原因はNorton Internet Securityの発信電子メールスキャン機能でした。
    この設定をOFFにしたところリアルタイムで送信されました。
    お騒がせしてしまい、申し訳ありません。
    以上です。

  8. 一括送信ソフトを若干カスタマイズして活用させて頂いております。
    宛名や挨拶を個別に設定できるのと、リストの管理と一元化できるので非常に重宝しています。
    このような便利ツールのサンプルを公開して頂いている事に感謝いたします。
    現在、個別のファイルをそれぞれ添付できるように、G列に添付ファイル(フルパス&複数の場合はカンマ区切りで記述)の設定を行っているのですが上手く送信できません。
    身勝手なお願いだとは思いますが、ご教授願えないでしょうか?

  9. Shuuさま、コメントありがとうございます。
    お返事が遅れてすみません。
    なるほど、たしかに添付ファイルはニーズがありますね。ちょっと試してみました。
    ・G列に添付したいファイル名をフルパスで記述。
    ・マクロ内の、iMsgのプロパティを設定している部分(.Sendの直上)に、以下の一文を追加
     .AddAttachment Worksheets(“Sheet1”).Range(“G” & i).Value
    このようにしてみたところ、1行目の送信はファイル添付がうまくいったのですが、2行目のメールに1行目と2行目の添付ファイルが両方ついてしまいました。これは、iMsgオブジェクト自体をどの行に対する処理にでも使いまわしているためだとわかりましたので、以下のように修正しました。
    ・マクロ内の最初の、「Set iMsg = …」の行を、メール送信ループのFor文の中の先頭に移動。
    ・同じfor文のループの最後に、以下の行を追加。
    Set iMsg = Nothing
    要は、1行ごとにiMsgを作り直しているわけですね。これで、うまくいきました。ぜひ試してみてください。
    なお、このやり方は以下のサイトを参考にしました。
    Hey, Scripting Guy!
    http://www.microsoft.com/japan/technet/scriptcenter/resources/qanda/nov04/hey1129.mspx

  10. 職場で重宝させてもらってます。
    なんといっても、本文や添付ファイルを宛先ごとに変えても、一斉送信できるところがよいです。
    同様な機能のものが、シェアウェアで高価で売られたりしており、
    びっくりです。
    最近、パソコン環境が vista + excel2007 にグレードアップしてもらったのですが、アップされているコードでそのままいけました。
    ただ、私のコードは、なぜか、Set iMsg = CreateObject(“CDO Message”)が、For i = 8 To LastRow の下にあるのですが、これは、昔のアップされていたコードか、あるいは、うまくいかなかったので、書き換えたものなのか記憶が定かではないです。
    vista

  11. 一括送信のエクセルファイルを有効活用させていただいております。ありがとうございます。感謝しまくっております。
    一点、不躾なお願いがあります。
    ファイルを添付できるようにする方法をもう少しだけわかりやすく教えていただくことはできないでしょうか。
    コメントどおりにトライしてみたつもりなのですが、どうしてもできません。
    何卒よろしくお願い申し上げます。

  12. Redmineへのチケット登録用に便利に使わせていただいております。
    >「動いた!」「動かない・・・」というかたは、コメント欄に記述をお願いします
    動きました。w
    —————————–
    XPpro sp2
    office2003 sp1
    GoogleAPPSの独自ドメイン
    aaa@example.com
    password
    daresore@example.net
    smtp.gmail.com
    465
    改行が面倒なので(@は一文字目に入れると良くないですが)
    strbody = Replace(strbody, “@”, Chr(10))
    とし、文字化け対策に
    .TextBodyPart.Charset = cdoUTF_8
    としました。
    —————————-
    >ファイルを添付できるようにする方法をもう少しだけわかりやすく
    たぶんこんな感じで。
    —————-
    For i = 8 To LastRow直下
    Set iMsg = CreateObject(“CDO.Message”) ’ここに移動
    —————-
    .AddAttachment Worksheets(“Sheet1”).Range(“D” & i).Value
    .Send
    Set iMsg = Nothing ’ここに追加
    End With
    —————-
    >添付ファイルのフルパス指定
    ダイアログ表示とか。
    —————-
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not (Application.Intersect(Range(“D8:D100″), Target) Is Nothing) Then
    Dim fname As String
    fname = Application.GetOpenFilename( _
    Title:=”ファイルの選択”)
    If fname <> “False” Then
    ActiveCell.Value = fname
    End If
    End If
    End Sub
    ——————–

  13. まったくマクロに詳しくないので、質問するのも恐縮ですが、
    gmailのsmtpサーバーを使用しては、できないでしょうか?
    gmailのsmtpは、ネットで調べるとsmtp.gmail.comとなっているようでした。
    フリーメールだとやはりパスワードなど入れないとできないのでしょうか?
    お忙しいところすみません。ご回答いただけますと幸いです。
    環境ですが、OSはwinXP ,OfficeはOffice2003 を使用しています。

  14. もも様
    コメントありがとうございます! お返事が遅くなりまして申し訳ありません。
    GmailのSMTPサーバをご利用になりたい、ということだと思いますので調べてみましたところ、下のページが参考になりました。
    http://mail.google.com/support/bin/answer.py?hl=jp&answer=13287
    http://www.moug.net/faq/viewtopic.php?t=42907
    具体的にマクロを修正したEXCELファイルをアップロードしましたので、こちらをダウンロードしてください。
    http://www.ngo-jvc.net/blogs/wfn2/data/excel_mail_send_smtpssl.xls
    変更点は、SMTP認証ユーザー名とSMTP認証パスワードの欄を追加したことです。また、マクロ内の設定でSSLにも対応するようにしてあります。SMTPサーバ欄とSMTPポート欄は記述にあるままで結構です。送信元メールアドレス、SMTPユーザー名、SMTPパスワードを記入して試してみてください。
    これからもよろしくお願いいたします!

  15. さおとめ様
    コメントありがとうございます!
    以下のURLにもありますとおり、ExcelのVBAとOpenOfficeのBASICは、似ているものの互換性はないようです。
    http://ja.wikipedia.org/wiki/OpenOffice#.E3.83.9E.E3.82.AF.E3.83.AD
    ですので、そのままでは動かないようです。手元にあるOpenOffice.org 3.0.0でもやっぱり動きませんでした。個人的にはあまりOpenOfficeは使わないので、対応はちょっと難しいです。すみません…。
    これからもよろしくお願いいたします!

  16. はじめてコメントさせていただきます。
    送信テストを行っている最中なのですが、20通を越えるとエラーが出てしまいます。
    501 5.1.3 Bad recipient address syntax
    と表示がでます。
    環境は
    vista + excel2007
    SMTP AUTHの設定を行いました。
    送信間隔は 3秒です。
    回避策がありましたらお教え願います。
    便利なツールですので是非利用させていただきたいと思っています。

  17. まめさま
    コメントありがとうございます!
    うーん、私のほうで30件でテストしてみましたが、再現できませんでした。
    もしよろしければ、認証部分などの情報を除いた形で、お使いになっているEXCELファイルをjunya.hosono@gmail.com宛に送っていただけますか? 調べてみますので。

  18. 非常に便利に使わせてもらっております。
    仕事で、毎日20?30件ほどこのエクセルファイルを使ってメールを送信しているのですが、メールソフトから送信するのに比べて、
    メールの不達が多くなったような気がします。
    メール自体は、きっちり送信されているのは確認しておりますので、おそらく迷惑メールと誤認識されて相手方に届いていると思われるます。
    やはり、エクセルファイルなどから一括送信すると迷惑メールと誤認識されやすいものなのでしょうか?
    同じような症状の方がいましたら参考意見を聞いてみたいです。

  19. こらのソフト使わせて頂いているのですが、一つ質問です。
    ‘ 送信範囲設定
    LastRow = Worksheets(“send”).Range(“A7”).End(xlDown).Row
    こちらで、定数(数字)の入っている部分だけ配信するような設定は可能なのでしょうか?
    只今こちらのシートのA列に通し番号を振って、その番号が入っているところのみ配信できれば、
    歯抜けの配信も出来すごく便利になると思ったのですが。。。
    マクロに不慣れでうまく動きません、ご教授いただければ幸いです。

  20. hoso様
    コメントありがとうございます。
    すみません、ただいま仕事のほうが立て込んでおりますので、お返事まで少々お待ちください。おそらく対応出来るかとは思います。なんとか来週中にはお返事できるようにいたします…

  21. HOSONO様
    非常に便利なソフトで重宝しております。
    一つ質問なんですが添付ファイル設定において
    自分の場合10ファイル分(J列からS列にフルパス設定)の
    添付ファイル送信設定を行っているのですが、
    宛先によって添付するファイル数が異なる為
    例えば3個しか指定しない場合は、その他7個は
    謎のファイルが作成されて合計10個での添付ファイル送信に
    なってしまいます。
    上記不具合を解消するための知識をご教授頂きたく
    よろしくお願いいたします。

  22. hoso 様
    お返事が遅れて申し訳ありません。
    コメントで書かれていることを、「A列になんらかの文字が入っている列のみメールを送信する」というように解釈して、マクロを修正してみました。
    ご指摘のマクロの行(最終行の取得)はこれまで通りB列で行い、1行毎のループの中の先頭でその行のA列が空欄でない時のみメール送信のロジックを適用する、といった感じです。
    エクセルメール一括送信ファイル(A列に文字がある行のみ送信する版) ダウンロード(xls ファイル、57kB):https://webforthenext.files.wordpress.com/2011/03/excel_mail_selective.xls
    これでご希望のような動作となっているでしょうか?

  23. 大変重宝して使わせていただいています。
    今回約300通送ったところ、3人から「文字化けしている」との指摘がありました。その3人へはoutlook を使って送ることができました。
    上に
      文字化け対策に .TextBodyPart.Charset = cdoUTF_8
    という記述があるのですが、具体的にどうしたらよいかわかりません。トホホ
    outlook との違いは
    Content-Type: text/plain; charset=ISO-2022-JP
    の部分ではないかと思います。
    文字化け対策方法をご教示いただけないでしょうか。
    よろしくお願いします。

  24. テリー様
    コメントありがとうございます。現在本業がちょっとテンパっておりまして、来週月曜日に一段落いたしますので、それ以降の回答でよろしいでしょうか。すみません…

  25. HOSONO様
    こんな便利なものをタダで使わせていただけるだけで感激しています。
    本業をがんばってください。
    匿名様
    迷惑メールに分類されてしまった経験があります。
    送信時に認証をすると迷惑メールに分類されにくくなるようです。
    具体的にはマクロソースの
    ‘ ※「メール送信時に認証が必要」な場合
    以下を設定しました。

  26. HOSONO様
    現在仕事で使っていますExcelにシート追加して使わせていただいています。介護関係の人員配置予定表からマクロで時間抽出をして、それをメール送信用シートに貼り付けています。前日に明日の予定を確認するため,ヘルパーへメールで配信しています。シートではExce関数も利用できますので、手作業はなくメール送信できています。市販品のソフトではこのよう加工はできませんので、大変重宝させていただいています。どのようにして作成するか悩んでいましたので、本当に助かりました。ありがとうございました。

  27. HOSONO様
    はじめまして。素晴らしいソフトをありがとうございます。
    とても便利なので、お仕事で使っています。
    無料で提供していただいていますので、
    こんなことを聞くのが恐縮なのですが、
    できれば知恵をお貸しいただけないでしょうか?
    使用していて宛先不明のメールアドレスがあった場合に、
    エラーでとまってしまい、そのアドレス以降は送信されない状況なのですが、
    どのアドレスでエラーが起きたかログを取りつつ、送信を続ける
    ようにすることは可能でしょうか?
    環境はvistaでExcel2002を使用しています。
    お忙しいと思いますが、解決していただけると幸いです。
    どうぞ、よろしくお願い致します。

  28. わたなべさま
    HOSONOです。お返事が遅れて大変申し訳ありません。
    えーと、僕の現在の環境はXP(SP3)+Excel2000およびExcel2007なのですが、無効なメールアドレス(例:hogehoge@****.com)が途中にあった場合に、エラーでは止まらずそれ以下の行もメールを送信しますね。
    で、もちろんメールアドレス自体は無効なので、利用したSMTPサーバから直後に「このメールアドレスは無効だよ」と知らせるメールが届きます。(例:Sorry, I couldn’t find any host named ****.com. (#5.1.2))
    なので、お手数ですが、SMTPサーバと「宛先不明のメールアドレス」の行のみを記述した状態のこのexcelファイルを、メールで送っていただくことは可能ですか?
    あまり詳しくないのですが、SMTPサーバかなにかの設定によっては、送信前にそのメールアドレスが有効かどうかを判断して、excel側の処理に影響を与えているのかもしれませんので。
    よろしくお願いします!

  29. 非常に初歩的な質問で恐縮ですが、教えていただけないでしょうか。
    マニュアルの通りにデータを入れてメール送信をエンターすると「実行時エラー-2147220973(80040213)」のメッセージが出ます。デバッグを見ると「 .Send」のところが黄色くなっています。どこが悪いのか教えていただけないでしょうか。
    パソコンは
    OS 名 Microsoft Windows XP Home Edition
    バージョン 5.1.2600 Service Pack 3 ビルド 2600
    Excel 2003
    セキュリティはマカフィーです。
    お手数をおかけいたしますが、宜しくお願い致します。

    1. 既に解決済みだと思いますが・・・
      .sendで止まるという現象が同じくおきましたが、私の場合は、VBAのコードを
      触っていて、その箇所がうまく処理できていないケースでした。
      触ったところを元に戻してみて動作するかで判断しました。
      もし、コードを触られていたらということになりますが・・・
      デバッカーを使わずにしていると分からないものです。
      参考になると良いのですが。

      1. 新しいPCで設定中、全く同じ現象がやっと出たので遅まきながら報告しておきます

        1.プログラム中のcdoの認証設定のコメントをはずしてIDとPASSを設定する。
         →outlookの「このサーバーは認証が必要」にチェックがあるのでこれと一致させる。

        2.OUTLOOKのアカウント設定でso-netの場合はメール送信SSL認証にチェック
          があるのではずす。(標準設定ではチェックあり)
          →SSL認証に合わせてプログラムに
           .Item(“http://schemas.microsoft.com/cdo/configuration/smtpusessl”) = True
           を付けると必ずエラーになり、「実行時エラー-2147220973(80040213)」の
           メッセージが出ます。
        SMTPポートは、587、保護された接続(SSL)にチェックはなくとも普通にメールも
           できるので問題なしです。
           なぜSSLが正常に認証しないかはわかりませんがコレでうまくいきました。

        メールサーバーや環境によって違う場合があるので根気よく検証するしかないようです。

  30. エクセル、メール送信で検索して幾つかサンプルに辿り着きましたがこちらのソフトが直感的に扱え一番便利でした。
    ファイル添付とメールの送信進行件数表示と送信ログの作成と3点カスタマイズさせて頂きました。
    自分宛てに50件程テスト送信しましたが問題なさそうです。
    とり急ぎ御礼まで。

  31. はじめまして。
    ぜひ利用させて頂きたいのですが、私も上記のジュンさんと同じエラーが表示されます。
    もしかして認証が必要なサーバーなのでその設定かと思いましたが

    マクロの修正「メール送信時に認証が必要」がみつからないのですね。
    ぜひ、解決策をお教え頂きましたら幸いです。

  32. とても素晴らしい情報をいつも有り難うございます。

    昨日質問させて頂いた件とは別件で

    メールサーバーをさくらサーバーからハッスルに変更しましたら

    メール送信できるようになったのです。メールの認証が問題だったのです。

    ご迷惑をお掛けいたしました。

    また別件で問題が発生しまして

    モブログとしてブログに送信したのですが全て文字化けしてしまいました。

    文字コードを指定して化けないようにするにはどうすれば良いでしょうか?

    お手数ですがよろしくお願いいたします。

  33. ありがたくgmai版を使わせていただいております。
    一つ分からないのはG列に添付ファイルを入れたいのですが
    こちらの掲示板の作者様”なお“様のいずれの方法でもうまくいかず
    エラーが出てしまいます。エクセルは2007でOSはvistaです。

    添付ファイルなしではうまくいくのであと一つお助けいただけないでしょうか?

    1. ブリスコさま、返答が遅れてすみません。現在excel2007の環境が手元にありませんで、調達次第確認してみますね。vistaはたぶん入手できないので、XPか7での確認になると思います。もうしばらくお待ちください。

  34. ありがとうございます。
    送り先のメールの内容がそれぞれ異なるため、文書作成を前段階として別のマクロを作成し、この送信マクロに貼り付けて使用させて頂いています。5時時間もかかっていた作業が総合的に30分に短縮されました。
    大変ありがたく感謝申し上げます。
    現在添付ファイルでの作業が7時間ありこれを短縮すべく、このコメントにある方法でマクロの修正をしましたが、「コンパイルエラー」が出ます。私のシステムはwindowsXP SP3で、excelは2002 10 SP3 です。
    上記にあるマクロをコピーして指定の場所に貼り付けただけです。
    何に問題があるのかご教授賜れば幸いです。
    何卒よろしくお願い申し上げます。

    宮本

  35. お世話になります。
    頂いたプログラムを改造して、業務に使わせてもらっています。
    以前であれば異種一括送信ソフトは有料しかなく、諦めていたところでした。
    今回、私もVBAなどにも取り組むことになり、勉強の一環でした。
    ありがとうございました。
    私が機能を追加したのは以下のとおりです。
    ・送信完了の判断列を設けて完了したら「☆」印を付けていく
    ・個別に送信する/しない 開封確認する/しないの「○」印を付けて
     それを判断基準として処理をする(チェックボックスを使用して全指定/解除も可)
    ・団体および宛先への尊称の列を設けて 一律の「様」付きを変更
    ・署名の設定追加
    ・添付ファイルを5つまで追加指定ができるようにした
     (尚、添付ファイルが存在しない場合は警告を出しメール送信の中止に)
    いずれも改造箇所も分かりやすくしてありますので、興味がありましたらご連絡
    ください。
    皆さんに参考にしてもらえると助かります。(勉強時間の取れない方に是非)

    添付出来ないため、ご所望あれば tom-furu@wd5.so-net.ne.jp まで

  36. 貴重なソフトの公開ありがとうございます。
    以前であれば有料でしか手いれる事が出来ずに諦めていました。
    この度、VBAなど勉強する機会が出来て参考にさせて頂きました。
    個別の完了表示、送信、開封確認設定、署名追加、添付ファイル5つまで指定
    やエラー対策等の改造をして現在、業務で活躍しています。
    改造するベースとして最適ですね。
    またweb関係などもやってみようと思います。

    本当にありがとうございました。
    ますますのご活躍を祈っております。

  37. 申し訳ありません。
    こちらのサーバーの不調で投稿が何度もされてしまいました。
    ご迷惑かと思いますので、
     2011年12月13日 2:50 PM と
     2011年12月13日 4:46 PM の投稿など整理されても構いません。
    よろしくお願いいたします。(当投稿も削除対象願います)
    ご迷惑おかけしました。

  38. 細野さん

    こんにちは!私も国際協力NGOで広報として働いています。
    ちょうど、このような手法を探していたので、とても有難いです。

    しかし、テストで「送信ボタン」を押してもメールは届いていないようです。
    私の環境は、Windows7、Excel2010だからでしょうか?

    お忙しいと思いますが、お返事お待ちしております。

コメントを残す

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

WordPress.com ロゴ

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

Google+ フォト

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

Twitter 画像

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

Facebook の写真

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

%s と連携中