Excelの一覧からメールを一括送信
Posted by Junya HOSONO 2008年5月 6日 PM 5:35
大勢のかたにメールを一度に送信したいときってよくありますよね。
例えば、単発のイベントのリマインドメールや開催後のお礼メールなどで、「本文の内容はほとんど一緒でも、宛名部分やちょっとしたあいさつだけでもそれぞれ個別に設定したい」、といったような場合です。
普段使っているメールソフトからでも送れますが、「BCC じゃなくて CC にしてしまったらどうしよう」、「そもそも本文内容を個別に変えられないので、けっきょくコピペ+編集する必要がある」などの問題点があります。
そこで今回は、ちょっと前に知った、Excelの一覧からのメール一括送信の方法をご紹介します。うまく使えれば、超絶的に便利です。ただし、SPAMメール送信に使うことはもちろんご遠慮願います。お願いしますよほんとに。
最初に白状(?)しておきますが、この方法は、windows のバージョン、Excel のバージョンなどによっては動かない場合があるようです。詳しくは、下のExcelメール一括送信の注意点をご覧ください。もちろんそのままで使えるかたも多いかとは思います(そう願います)。
Excel メール一括送信:利用方法
この方法は、Excelのマクロと、CDO(Microsoft Collaboration Data Objects)を利用します。まずは、下からExcel ファイルをダウンロードしてください。
- エクセルメール一括送信ファイル ダウンロード(xls ファイル、59kB)
- 【2009/8/23追加】エクセルメール一括送信ファイル(GmailのSMTPサーバに対応版:コメント欄参照) ダウンロード(xls ファイル、59kB)
以下、手順にそって説明します。また、Excel ファイル自体にも使い方を簡単に説明したシート(「使い方の説明」)が入っていますので、そちらも参照してください。
- ダウンロードした Excel ファイルを開きます。
- 「excel_mail_send.xls はマクロを含んでいます。」という表示が出る場合には、「マクロを有効にする」ボタンを押してください。
- Sheet1 シートを表示してください。
- おそらくはじめにこのシートが表示されるとは思いますが、念のため。
- C 列 2 行のセルに、普段使用しているメールアカウントの SMTP サーバ(送信サーバ)名を記入してください。普段使っているメールソフトのアカウント設定画面などにすでに入力されているはずです。(例:smtp.mail.yahoo.co.jp)
- C 列 4 行のセルに、送るメールで「送信元メールアドレス」としたいメールアドレスを記入してください。メールを送られた人からすれば「送り元」になります。送られたメールに返答することが考えられますので、普段利用しているメールアドレスがいいでしょう。
- C 列 5 行のセルに、メールを送る際に、BCC を送りたいメールアドレスを記入してください。必要ない場合は空欄で結構です。
- この方法でメールを送っても、だれにメールを送ったかはお使いのメールソフトの送信箱には残りません(このマクロとメールソフトとは何の関係もないからです)。Excelのなかにも残りません(sheet1の情報だけです。)。ですので、あとでそれをわかりたい場合は、自分のメールアドレスをここに記入しておけば、送ったメールが自分宛にも届きますので、これをメールソフト内で送信箱に移動する、などして対応してみてください。「BCC ってなに?」というかたはメールのBccフィールドを活用する ? @ITにわかりやすい説明がありますので、見てください。
- 8 行目以降に、メールを送る先の情報を記入してください。1行=1メールになります。
- B 列:送信先メールアドレス(必須項目)
- C 列:メール件名
- D 列:送信先団体名
- E 列:送信先宛名
- F 列:メール本文:このセルの中にメール本文を記入します。セル内で改行することもできます。セル内での改行の仕方は、[Alt] キーを押しながら [Enter] キーを押してください。ちなみに、1セル内には約32,000文字程度が入るようです。
- 送りたいメールの分の情報を記入し終わったら、「メール送信」ボタンを押してください。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 以降:未確認
- 【対策】Officee2003においては、標準インストールではCDOがインストールされない(アップグレードインストールだと削除する)、といったことがあるようです。詳しくはこちらのOffice2003のインストールでCDOが動かなくなる! 「VBA応用(CDOでメール送信)」内をご覧ください。Office2003 における CDO のインストール方法が説明されています。
- お使いの SMTP サーバの設定
(※ここの説明で、「こういう状況にある→こう対策する」という順序ですすめるのがちょっと難しいと思われる場合には、何かしらのエラーが出る場合に、とりあえず下記対策を一つづつ試してみる、というのも手かと思います)- 25番ポートブロック(Outbound Port25 Blocking)対策が必要な場合
- 【対策】 sheet1 の C 列 3 行の 25 を 587 に変更してみてください。
- POP before SMTP が必要な場合
- 【対策】 適切な対策でないかもしれませんが、お使いのパソコンで、同じ SMTP サーバを利用するメールアカウントで一度受信作業をして、直後にこのマクロを利用してみてください。
- SMTP AUTH が必要な場合
- 【対策】 マクロの修正が必要です。マクロ内の、"※「メール送信時に認証が必要」な場合"という部分の記述にしたがって、マクロを修正してください。
- 25番ポートブロック(Outbound Port25 Blocking)対策が必要な場合
もちろん、こうしたものを提供する側としては「どんな環境においても動くものを提供する」ことが本道だとは思っていますが、公開前の動作確認に多大な時間を割くよりも、多少の課題はありつつも公開して、大勢の利用者で情報を共用したほうがいい、と判断しました。
ですので、「動いた!」「動かない・・・」というかたは、コメント欄に記述をお願いします(その際には、上記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氏から教えていただいたものを改良したものです。また、改良に当たっては以下のページを参考にしました。この場を借りてお礼を申しあげます。ありがとうございました。
- Sending mail from Excel with CDO
- How to send HTML formatted mail using CDO for Windows 2000 and a remote SMTP service
- VBA応用(CDOでメール送信)
- Excel から CDO を用いてメールを送る手法について詳しく書かれています。VBA が多少わかるかたにとっては、すごくためになるページだと思います。
このマクロ自体は、上記のページなどを参考に作成したものなので、とくに利用に制限は持たせません。ご自由にお使いください(SPAM 目的は厳禁)。ただし、このマクロに関してはご自身の責任のもとでの利用をお願いいたします。万一なんらかのトラブルが発生しても、当ブログ管理者は一切責任を負いませんので、ご了承ください。
また、ソフトのインストールや VBA がわかる人にとっては、有名な汎用コンポーネントであるBASP21を利用する手法もあります。こちらに関しては、以下のページが参考になるでしょう。
このブログ記事に対するトラックバックURL: http://www.ngo-jvc.net/~gt205119/mt/mt-tb-jvcweb.cgi/142/jvcwebtb/XXXXXXXX
※トラックバックスパム対策のため、お手数ですがトラックバックURL末尾のXXXXXXXX 部分を下記画像の数字列に書き換えてからご利用ください。





一括送信ソフト一部改造して使わせてもらってます。改造内容はメール本文を「F8]セルのデータだけを参照するようにしたこと、送信間隔を10秒に変更したことなどです。
大量メール送信の適正流量はどのくらいなのでしょうか。
このメールソフトでは、プロバイダの流量制限に触れることはないのでしょうか。
清水さま、コメントありがとうございます。
お返事が遅れて申し訳ありません。
プロバイダによる流量制限についてですが、僕自身正直あまり詳しくありません。各プロバイダごとにポリシーや制限値自体も異なると思いますので、清水さまが利用されているプロバイダの利用規約などをご参照されてみてはいかがでしょうか。
個人的には、「並外れた量のメールなりデータなりを一度に大量に(上り方向に)送信することに対して、何らかの制限がかけられる場合がある」という理解です。ですので、常識内の量であれば、それほど神経質にならなくていいのではないでしょうか。「適正流量」がどれくらいなものかはわかりかねますが、もちろん非常識なほどに大量に送れば、このExcelの仕組みでも、その種の制限に引っかかる可能性はあると思われます。お答えになっているでしょうか。
これに関連して、以下のようなページを見つけました。
平成20年6月25日:個人向けOCNサービスにおける大量データ送信制限の実施について | NTT Com 企業情報
http://www.ntt.com/release/monthNEWS/detail/20080625.html
スパムメール送信対策、という面もありますが、昨今ではファイル共有ソフトの制限という面もあるみたいですね。
これからもよろしくお願いいたします!
親切に、色々な説明があり、見やすいです。
更新等があったら、見ている側の知識も増えるので
教えて頂けたら幸いです。
(まぁイチイチ、更新情報を読者に伝えたりは
面倒で、できないでしょうけど・・)
ちなみに私の環境は
WinXP SP3 / Excel2000 です。
親切な解説や解り易くシンプルなサンプルコードをご提供下さり大変助かります。ありがとうございます。
少々長文になってしまいますが、送信間隔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の知識がほとんどありませんので、ネットでいろいろと調べてみて、別の良い中断方式等が確認できましたらご報告致します。
以上です。
suiduさま、コメントありがとうございます。
お返事が遅れてすみません。
>更新等があったら、見ている側の知識も増えるので
>教えて頂けたら幸いです。
ということですが、ブログ全体の更新情報でしたら、RSSを配信していますのでぜひ購読していただければと思います。RSSやフィードに関する記事も書いていますのでそちらもご参照ください。
http://www.ngo-jvc.net/blogs/wfn/2008/05/rss.html
「この記事に対するコメントの更新をお知らせする」ということでしたら、すみません、まだコメントのRSSは配信できていないのです(泣)。
時間ができたら対応したいと思いますので、ご容赦ください。
これからもよろしくお願いいたします!
Takaharuさま、コメントありがとうございます。
うまく動かない旨のご丁寧なご報告ありがとうございます。
>5名の社員を宛先に1人あたり20通の計100通を送付して
>みようとしたところ、 (中略)
>「サーバとの通信が切断された」という旨のエラーが
>表示され、マクロはエラー終了しました。
ということでしたので、僕の環境でも、5人*20通(3秒wait指定)のテストをしてみました。その結果、数秒に1件ずつ、送信されました。
以下、その詳細です。ちょっと長いです。
-----
環境ですが、OSはwin2000 SP4,OfficeはOffice2000 SR-1です。PCはHITACHIのFLORA、CPUはceleronMの1.3G、メモリは768Mです。通信回線はe-mobile(7.2M)です。
送信先メールアドレスは、gmail,nifty,yahoo,それと仕事で使っている普通のホスティングサービス(αとする)のものを2つの計5つです。送信元メールアドレスとSMTPサーバは、αのものを利用しました。SMTPサーバは、LAN内ではなく、インターネット上に存在します。
実行したところ、実際に数秒に1件ずつ送信され、その脇で受信もほぼリアルタイムでできました。
一人目のαのアドレスに20件送信し終わって、二人目がgmailへの送信だったのですが、その送信をやっている間にも、一人目のαのアドレスですでに受信できましたよ。以降も同様に、送信したそばから受信できました。要は、(5*20の)100件目を送信する以前にも、受信はできていた、ということです。
タスクマネージャで見てもExcel自体のリソースはほとんど変化なく、CPUを長時間独占する、といったこともありませんでした。たしかに、マクロが動いている間はExcel上にカーソルを持っていくとカーソルが砂時計にはなりましたが、他のアプリケーションはその間も普通に動いていました。
念のため、パケットキャプチャ(wireshark)でも確認したところ、sendメソッドの度に、実際にSMTPサーバにSMTPのパケットを投げています。メール送信している、というわけですね。
>実際にはOSの実行権はマクロ側に残ったままであり、
>マクロ側で何十件(もしくは何百件)かの送信要求を
>処理し終わった時点で、windowsが実際のメール送信を
>開始するから、一気にメールが届いたり、送信要求が
>溜まりすぎてリソースが足りなくなりエラー終了して
>しまうのではないかと思います。
というご高察ですが、僕自身も、それほどVBAに精通しているわけではないですし、いまVBAのヘルプが開けないPCを使っているのでなのでなんとも言えないのですが、僕の環境で起こっている現象からでは、sendメソッドから制御が戻ってきた時点で、そのメール送信自体は終了している、と考えられるのですがいかがでしょうか。
また、
>実行開始からエラー終了するまでに時間は10分程度
>ありましたが、その間に受信側にメール配信された
>数は0通で、エラー終了した後1?2分時間をおいて受
>信側にメールが一気に配信されました。
>マクロが動作していた約5分の間、メール配送は全く行わ
>れずに、40件のマクロの処理が終了後に一気にメール
>配送していることについてはノートPCでの実施結果と同じ
>でした。
と書かれていることから、「メールの受信が(送信マクロが終了したあとに)一括で行われるので、送信自体を最後に一括で行なっているのではないか」とご高察されているようですが、メールが送信されてから受信できるようになるまでの時間は、例えばメールサーバがどこに配置されているか、SMTP(送信)サーバとPOP(受信)サーバが近いかどうか、メールサーバ上での処理頻度がどの程度か、などの、メールサーバ側の状況によっても、タイムラグが出てくることはあり得ると思います。
ですので、一度お使いのメールサーバの状況を確かめられてみるのも一案かと思います。
-----
以上です。うまく伝わりましたでしょうか…
ただし、メール送信のタイミングがいつか、ということと、エラー終了してしまったこと自体は、コメント文を読ませていただいた限りではまたなにか別の問題な気もします。メモリの使用量とかは通常どの程度ですか? タスクマネージャのパフォーマンスタブの画面で、メモリ使用量(黄色い線)がグラフの半分あたりを越えると、仮想メモリとのスワッピングが激しくなるようなので、PCの動作が遅くなりますよね。あくまで経験上ですが。
そのあたりも見てみていただけると助かります。
なにか新しい情報がありましたら、またお知らせください。
ともあれ、今後ともよろしくお願いいたします!
2008年8月 1日 11:59にコメントさせて戴いたTakaharuです。
HOSONO様、お忙しい中を懇切丁寧にご回答いただきありがとうございました。
回答を戴き調査を進めたところ、私のPC環境でマクロによる多量のメール送信が上手くいかない要因が特定できましたので報告致します。
原因はNorton Internet Securityの発信電子メールスキャン機能でした。
この設定をOFFにしたところリアルタイムで送信されました。
お騒がせしてしまい、申し訳ありません。
以上です。
一括送信ソフトを若干カスタマイズして活用させて頂いております。
宛名や挨拶を個別に設定できるのと、リストの管理と一元化できるので非常に重宝しています。
このような便利ツールのサンプルを公開して頂いている事に感謝いたします。
現在、個別のファイルをそれぞれ添付できるように、G列に添付ファイル(フルパス&複数の場合はカンマ区切りで記述)の設定を行っているのですが上手く送信できません。
身勝手なお願いだとは思いますが、ご教授願えないでしょうか?
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
職場で重宝させてもらってます。
なんといっても、本文や添付ファイルを宛先ごとに変えても、一斉送信できるところがよいです。
同様な機能のものが、シェアウェアで高価で売られたりしており、
びっくりです。
最近、パソコン環境が vista + excel2007 にグレードアップしてもらったのですが、アップされているコードでそのままいけました。
ただ、私のコードは、なぜか、Set iMsg = CreateObject("CDO Message")が、For i = 8 To LastRow の下にあるのですが、これは、昔のアップされていたコードか、あるいは、うまくいかなかったので、書き換えたものなのか記憶が定かではないです。
vista
一括送信のエクセルファイルを有効活用させていただいております。ありがとうございます。感謝しまくっております。
一点、不躾なお願いがあります。
ファイルを添付できるようにする方法をもう少しだけわかりやすく教えていただくことはできないでしょうか。
コメントどおりにトライしてみたつもりなのですが、どうしてもできません。
何卒よろしくお願い申し上げます。
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
--------------------
まったくマクロに詳しくないので、質問するのも恐縮ですが、
gmailのsmtpサーバーを使用しては、できないでしょうか?
gmailのsmtpは、ネットで調べるとsmtp.gmail.comとなっているようでした。
フリーメールだとやはりパスワードなど入れないとできないのでしょうか?
お忙しいところすみません。ご回答いただけますと幸いです。
環境ですが、OSはwinXP ,OfficeはOffice2003 を使用しています。
オープンオフィス上で動作しないのですがなぜですか?
もも様
コメントありがとうございます! お返事が遅くなりまして申し訳ありません。
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/wfn/data/excel_mail_send_smtpssl.xls
変更点は、SMTP認証ユーザー名とSMTP認証パスワードの欄を追加したことです。また、マクロ内の設定でSSLにも対応するようにしてあります。SMTPサーバ欄とSMTPポート欄は記述にあるままで結構です。送信元メールアドレス、SMTPユーザー名、SMTPパスワードを記入して試してみてください。
これからもよろしくお願いいたします!
さおとめ様
コメントありがとうございます!
以下の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は使わないので、対応はちょっと難しいです。すみません…。
これからもよろしくお願いいたします!
はじめてコメントさせていただきます。
送信テストを行っている最中なのですが、20通を越えるとエラーが出てしまいます。
501 5.1.3 Bad recipient address syntax
と表示がでます。
環境は
vista + excel2007
SMTP AUTHの設定を行いました。
送信間隔は 3秒です。
回避策がありましたらお教え願います。
便利なツールですので是非利用させていただきたいと思っています。
まめさま
コメントありがとうございます!
うーん、私のほうで30件でテストしてみましたが、再現できませんでした。
もしよろしければ、認証部分などの情報を除いた形で、お使いになっているEXCELファイルをjunya.hosono@gmail.com宛に送っていただけますか? 調べてみますので。
HOSONO様
先ほどファイルをお送りさせていただきました。
よろしくお願いいたします。
非常に便利に使わせてもらっております。
仕事で、毎日20?30件ほどこのエクセルファイルを使ってメールを送信しているのですが、メールソフトから送信するのに比べて、
メールの不達が多くなったような気がします。
メール自体は、きっちり送信されているのは確認しておりますので、おそらく迷惑メールと誤認識されて相手方に届いていると思われるます。
やはり、エクセルファイルなどから一括送信すると迷惑メールと誤認識されやすいものなのでしょうか?
同じような症状の方がいましたら参考意見を聞いてみたいです。
こらのソフト使わせて頂いているのですが、一つ質問です。
' 送信範囲設定
LastRow = Worksheets("send").Range("A7").End(xlDown).Row
こちらで、定数(数字)の入っている部分だけ配信するような設定は可能なのでしょうか?
只今こちらのシートのA列に通し番号を振って、その番号が入っているところのみ配信できれば、
歯抜けの配信も出来すごく便利になると思ったのですが。。。
マクロに不慣れでうまく動きません、ご教授いただければ幸いです。
hoso様
コメントありがとうございます。
すみません、ただいま仕事のほうが立て込んでおりますので、お返事まで少々お待ちください。おそらく対応出来るかとは思います。なんとか来週中にはお返事できるようにいたします…
HOSONO様
非常に便利なソフトで重宝しております。
一つ質問なんですが添付ファイル設定において
自分の場合10ファイル分(J列からS列にフルパス設定)の
添付ファイル送信設定を行っているのですが、
宛先によって添付するファイル数が異なる為
例えば3個しか指定しない場合は、その他7個は
謎のファイルが作成されて合計10個での添付ファイル送信に
なってしまいます。
上記不具合を解消するための知識をご教授頂きたく
よろしくお願いいたします。
hoso 様
お返事が遅れて申し訳ありません。
コメントで書かれていることを、「A列になんらかの文字が入っている列のみメールを送信する」というように解釈して、マクロを修正してみました。
ご指摘のマクロの行(最終行の取得)はこれまで通りB列で行い、1行毎のループの中の先頭でその行のA列が空欄でない時のみメール送信のロジックを適用する、といった感じです。
エクセルメール一括送信ファイル(A列に文字がある行のみ送信する版) ダウンロード(xls ファイル、57kB):http://www.ngo-jvc.net/blogs/wfn/data/excel_mail_selective.xls
これでご希望のような動作となっているでしょうか?