昨日の内容の、発展版。
Gmailから、送信先リストの内容を連続送信できるマクロ。
↓宛先・CC・BCC・添付ファイルなどを、リストにします。
↓メール本文のひな形を、用意します。
この中から、どの本文を送るかを、リストに記入しておきます。
相手の名前など、語句を置換する機能もあります。
↓これは、昨日作ったシート。
ここにリストの内容を転記して、メール送信します。
「お知らせメーラー」のような機能を、エクセルマクロでできないか
とイメージしたのですが・・・
そのイメージ通りのものが、できました。
エクセルなので、これを使えば、たとえば、
「社員さんが何百人いても、
給与明細をエクセルで作成して、それをPDFファイルにして、
メールに添付して、その社員さんに送信する。
メールの本文には、相手の名前など個別の語句を差し込む。」
というようなことも、ボタン1つでできるようになります。
「Gmailから送る」としましたが、別にGmailでなくてもかまいません。
SMTPサーバーやポート番号など、マクロを修正すれば、どんなメールでもOKです。
ただ、POP befor SMTPなどのめんどうがイヤなので、Gmailにしました。
ファイルのダウンロードは、こちら。
使用は、自己責任でお願いします。
(2012年5月13日 追記)
「メール本文が256文字以上になると、マクロが停止する」という不具合を、修正しました。
修正したファイルについては、こちらを参照して、ダウンロードしてください。
お願い
最近、職場のメールが Gmail に変わり、こういうマクロが使えなくなったと思っていたので、大変ありがたく思いました。
ただ、実際使ってみると、かなり短いメールでないと、エラーが出て止まります。本文は一つだけで、代わりに1行を1行に書くようにして、長いメールも送れる様になるとありがたいのですが・・・難しいでしょうか?また、行の変わりに、シート1枚が本文一つに対応する形で、いくつも本文を書けるようには出来ませんでしょうか?
いきなりの注文で申し訳ありませんが、よろしければ、お願いします。
Re:
コメント、ありがとうございます。
うちの業務で、このマクロをシステムに組み込んで使用しています。
本文は10行ぐらいありますが、ちゃんと送れています。
エラーは、通信環境やマシンスペックの問題かもしれません。
エラーが出るときは、Waitを増やしてみてください。
「本文をシートに」というのは、「あるシートの複数のセルに書きたい」ということでしょうか。
それでしたら、本文セル(「メール」シートのB12セル)に、入力した複数セルの内容がまとめて入るように、数式を入れてはどうでしょう。
そうすれば、このファイルを、そのまま使用できます。
ありがとうございます
早速の連絡ありがとうございます。昨日、試すとそちらの例では送れるのに、こちらの過去のメールを試しに入れてみたところ、vlookupのエラーが出て、何が問題なのか、いろいろ試してみたところ、どうも本文が253文字を超えたところでエラーが出ているようだったので、相談させていただきました。
複数のセルというのは以前そういうタイプのものを使っていて、いくらでも長いメールがうてたからです。ただ、話を聞いて、目からうろこです。後で試してみようと思いますが、この本文セルにconcatenate(・・・) などと入れてもちゃんと認識されるということなんですね・・・
できれば、ほぼ実用になりそうです。ありがとうございます。
使っていくうちでまたいろいろと相談したいことも出てくるかもしれませんので、今後ともよろしくお願いします。
残念でした
毎度の問い合わせすみません。試してみたところ、concatenate()をつかうと、それを展開した形で、マクロに読み込まれていくようで、やはり、一定の長さを超えると、全く同じようにエラーが出てしまい。単に複数セルに分散するだけで、それによってより長文が読み込めるわけではありませんでした。なんとなくvlookupを初めとした関数が255文字以上のセルを1つのセルの情報と認識できずに、型相違エラーが出ているような気がします。何か、その辺でループにして順次読み込むとか、そういうことで出来るのかな?という気がしてきましたが、マクロについてはほとんど知りませんので、また、何かアイデアやお知恵をいただけるとありがたく思います。よろしくお願いします。
Re:
おっしゃるように、VBA内のVlookupの制限のため、255文字以上のセルを参照すると、ストップしてしまいます。
改良版を、今日アップしますね。