• ベストアンサー

Thunderbirdで一括送信

相手のアドレス、名前、用件が1行毎に書かれたエクセルファイルがあります。 差込印刷のように、定型文の要所要所にエクセルの各セルの値を埋め込んだメールを一括して送信したいのですが、やり方がわかりません。 たとえば、10行あれば、メールが10箇所に送信したいのです。

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

>「具体的なVBA」が書けません(悲)。 >そのまま使えるソースやフリーソフトご存知ならお教えください。  そうですねぇ。フリーソフトならあるかも知れませんが、大した VBA ではありませんので、ご自分で書かれてもよいかと存じます。  先ず、お使いの OS(オペレーションシステム)に依存します。 ※OS が Windows 2000 より前のバージョンでしたら、この方法は無効です!! ここで読み終えて、フリーソフトをお探しください。  「そのまま使えるソース」とはお書きですが、使用条件によって当然ソース(コード)も変わってきますので、一つずつ検証をしながらコードを書いていくべきかと存じます。  さて、本題に入りますが。。。 >相手のアドレス、名前、用件が1行毎に書かれたエクセルファイルがあります。 >差込印刷のように、定型文の要所要所にエクセルの各セルの値を >埋め込んだメールを一括して送信したい >10行あれば、メールが10箇所に送信したい  例えば、1行目に「名前・相手のアドレス・用件(要所要所に埋め込む値)」という見出しがあって、「名前」がA列、「相手のアドレス」がB列、「要所要所に埋め込む値」が「用件1」C列・「用件2」D列・「用件3」E列に書かれているとするとします。  このようなプログラムを書く時は、先ずテストを何回もしてみることが大切で、相手先にテストメールが届いては迷惑になりますので、ご自分のメールアドレスでテストします。  そこで、2行目A列~E列に、それぞれ「あなたのお名前」・「あなたのメールアドレス」・「あああ」・「いいい」・「ううう」と入力してください。  ここでは「あなたのお名前」は「田中太郎」、「あなたのメールアドレス」は「hoge@hoge.com」として説明いたします。  実際にテストをされる時には本当の「あなたのお名前」・「あなたのメールアドレス」を書いてくださいね。  ここで、送付先のメールアドレスは Cells(2, 1).Value & "様<" & Cells(2, 2).Value & ">" と記述することによって、「田中太郎様<hoge@hoge.com>」という値になります。  「差込印刷のように」というのは「本文」のことかと存じますが、これは、 "定型文1" & Cells(2, 3).Value & "定型文2" & Cells(2, 4).Value & _ "定型文3" & Cells(2, 5).Value & "定型文4" と記述することによって、「定型文1あああ定型文2いいい定型文3ううう定型文4」という値になります。  本文の間に改行を入れたい場合は、「vbCrLf」を書いて "定型文1" & Cells(2, 3).Value & "定型文2" & Cells(2, 4).Value & vbCrLf & _ "定型文3" & Cells(2, 5).Value & "定型文4" と記述することによって、「 定型文1あああ定型文2いいい 定型文3ううう定型文4 」という値になります。  さて、前振りはここまでにして、実際にメールを送信してみましょう。  テストですので、新規ブックで試してみましょうね。  また、本当の「あなたのお名前」・「あなたのメールアドレス」を書いてくださいね。 1)エクセルシートの1行目A列~E列に、それぞれ「名前」・「相手のアドレス」・「用件1」・「用件2」・「用件3」と入力し、2行目A列~E列に、それぞれ「あなたのお名前」・「あなたのメールアドレス」・「あああ」・「いいい」・「ううう」と入力します。 2)[Alt] + [F11] で VBE(Visual Basic Editor)を開きます。 3)[挿入(I)] - [標準モジュール(M)] で「標準モジュール」の コードウィンドウ を開きます。 4)現われたコードウィンドウに下記コードを貼り付けます。  なお、Thunderbird のメニューの [ツール(T)] - [アカウント設定(C)] で 左側のリストの一番下にある [送信 (SMTP) サーバ] をクリックし、「あなたのメールアドレス」をクリックして、その下にある [サーバ名]、これを下記の「●●●」と差し替えてください。  この文字列は、例えば Yahoo! メールでしたら「smtp.mail.yahoo.co.jp」のような文字列です。  また、 oMsg.From = "あなたのお名前<あなたのメールアドレス>" の行は、「差出人」の欄になりますので「様」を付けずに、 oMsg.From = "田中太郎<hoge@hoge.com>" のような書式になるように、本当のお名前(会社名?)とメールアドレスで書いてください。 5)[F5] キーを押下してください。マクロが実行されます。 6)Thunderbird で [F5] キーを押下してください。  「件名」という件名のメールがあなたから届いていたらテスト成功です。 '------------------------------------------------------------------- Sub CDOでメール送信()  Dim oMsg  Set oMsg = CreateObject("CDO.Message")  oMsg.From = "あなたのお名前<あなたのメールアドレス>"  oMsg.To = Cells(2, 1).Value & "様<" & Cells(2, 2).Value & ">"  oMsg.Subject = "件名"  oMsg.TextBody = "定型文1" & Cells(2, 3).Value & "定型文2" & _   Cells(2, 4).Value & vbCrLf & "定型文3" & Cells(2, 5).Value & "定型文4"  oMsg.Configuration.Fields.Item("ht" & _   "tp://schemas.microsoft.com/cdo/configuration/sendusing") = 2 ' oMsg.Configuration.Fields.Item("ht" & _   "tp://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60  oMsg.Configuration.Fields.Item("ht" & _   "tp://schemas.microsoft.com/cdo/configuration/smtpserver") = "●●●"  oMsg.Configuration.Fields.Item("ht" & _   "tp://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25  oMsg.Configuration.Fields.Item("ht" & _   "tp://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = False  oMsg.Configuration.Fields.Update  oMsg.Send End Sub '-------------------------------------------------------------------  先ず、上記の実験をしていただいて、成功したか否かをお知らせください。  成功した場合は、更に詳しいコードの記述法をお知らせいたします。  なお、前回答で「Excel でお仕事!」から参照ページを呈示しましたが、私は、そこにも書いてある「実行時バインディングの方法」で行なっております。  これにつきましては、プログラム言語が異なります(VBA ではありません)が、流用ができますので、下記をご覧ください。 ●Windows標準機能とWSHを使ってメールを送信する http://www.atmarkit.co.jp/fwin2k/win2ktips/428wshmail/wshmail.html

usatan2
質問者

お礼

詳しい回答ありがとうございました。 お礼遅くなりました。 お示し頂いたプログラムで、自分宛のメール1件の送信は成功しました。 でも今、時間がとれずその先に進めませんが、別の機会にチャレンジしたいと思います。 ありがとうございました。

その他の回答 (2)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.3

>お示し頂いたプログラムで、自分宛のメール1件の送信は成功しました。  では、次のステップに進みましょう。  これもテストですから、送信先の「メールアドレス」だけはすべてあなたの メールアドレス にしてください。  「名前」の方は「麻生太郎」でも「バラク・オバマ」でも何でも構いません(あたなのメールアドレスで「麻生太郎様」や「バラク・オバマ様」というメールが届くだけのことです)。 【準備】 ・1行目は前回答と同様です。 ・3行目以降にも2行目と同じような内容を書きます(ただし、B列はすべて「あなたのメールアドレス」)。  何行目まででも構いません。 ・A列の「名前」、C・D・E列の「用件1・2・3」の欄にはそれぞれ超テキト~な内容を書いておきます。 【VBA】 >相手のアドレス、名前、用件が1行毎に書かれた >差込印刷のように、定型文の要所要所にエクセルの各セルの値を埋め込んだ  応用が利く様に [回答番号:No.2] の コード を元に変更箇所のみ書いてみます。 ・「Dim i As Integer」の行を追加し「oMsg.to」~「oMsg.Send」までの行を For i = 2 To Range("A1").End(xlDown).Row Next で挟む。  つまり、 For i = 2 To Range("A1").End(xlDown).Row  oMsg.to = ~~~  ・・・・・・・・  oMsg.Send Next ・「Cells(2, 」をすべて「Cells(i, 」に変更する。  以上で、2行目からA列に値の入力されている最後の行まで、「1行毎に書かれた」「相手のアドレス、名前、用件」に基づいて、「差込印刷のように」「要所要所にエクセルの各セルの値を埋め込んだメールを一括して送信」します。  なお、 oMsg.Subject = "件名" のところは、 oMsg.Subject = Cells(i, ~).Value  '「~」は列番号 のような記述をすれば、セルの値から個々に「件名」を設定することもできます。  また、 oMsg.TextBody = ~~~ のところは、メール本文全体が1つのセルに格納されているような場合でしたら、例のようなまどろっこしい書き方をしなくても、 oMsg.TextBody = Cells(i, ~).Value  '「~」は列番号 で十分です。  「oMsg.Configuration.Fields」の各行は、おまじないですので、そのまま書いておいてください。  なおなお、「添付ファイル」がある場合には、 oMsg.AddAttachment "D:\hoge\hoge\hoge.xls" oMsg.AddAttachment "D:\hoge\hoge.txt" のように指定すれば、幾つでも添付ファイルを添付することができます。  この場合も「"D:\hoge\~~"」の部分は、セルの値から引っ張ってくることもできますし、変数に格納して添付ファイル名を指定することもできます。 例1)セルの値から引っ張ってくる場合 oMsg.AddAttachment Cells(i, ~).Value 例2)変数に格納して添付ファイル名を指定する場合 Dim MyMonth As String MyMonth = IIf(Day(Date) > 15, Format(DateAdd("m", 1, Date), "yy-mm"), Format(Date, "yy-mm")) oMsg.AddAttachment "D:\hoge\hoge" & MyMonth & ".txt"  この場合、今月15日までは、「D:\hoge\hoge09-06.txt」というファイルを、15日を過ぎると「D:\hoge\hoge09-07.txt」というファイルを添付します。 #お分かりにならないことがありましたら、補足質問なさってください。

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 下記をご参考に。。。 ●CDOでメール送信 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_080.html

usatan2
質問者

お礼

応答ありがとうございます。 紹介くださったページ読んで、試してみました。 が、「VBAを自分で書けば、目的の操作が可能(?)なこと」はわかったつもりですが、「具体的なVBA」が書けません(悲)。 そのまま使えるソースやフリーソフトご存知ならお教えください。

関連するQ&A

  • 一括送信するメールソフト(単語を差込したい)?

    相手のアドレス、名前、用件が1行毎に書かれたエクセルファイルがあります。 差込印刷のように、定型文の要所要所にエクセルの各セルの値を埋め込んだメールを一括して送信するソフトを捜しております。 フリーとシェアソフトをご紹介お願いします。 できたら長所・短所などわかれば お願いいたします。

  • MacOSXで一括送信できるソフトを教えて下さい

    MacOSXで一括メールを送信したいんですが、 ソフトが見つかりません。 エクセルデータをインポートして、 一括メールを送ることのできるソフトを教えてください! 助けてください><!!! MailMagic 2 http://www.vector.co.jp/soft/mac/net/se241108.html MaxMailer http://www.vector.co.jp/soft/mac/net/se370017.html ※上記2つは、ダウンロードしても開けませんでした。 定型文どっとMail http://www.vector.co.jp/soft/mac/net/se414421.html ※どうも使えませんでした

  • outlookで個別添付ファイル付きメール一括送信

    お世話になります。 Windows10でMicrosoft 365のOutlookやExcelを使用しています。 50人くらいに、メール本文中には宛先の社名と氏名を記入し、それぞれに別々の添付ファイルを付けたメールを送る必要があります。 Excelシートに メールアドレス、社名、氏名、添付ファイル名 のリストを作っておいて、差込印刷のように一括送信する(できることなら、いきなり送信されるのではなく、下書きフォルダに保存されると尚良い)ことができるソフト(?)など、ご存じの方がいらっしゃいましたら、ぜひ教えてください。 マクロを自分で書くスキルはありません。 宜しくお願いいたします。

  • メールの一括送信・・・・

    仕事で一括送信で案内文のメールを送らないといけないのですが・・・ アウトエキスプレスでできないのですか??グループでアドレス帳に登録したらできるのでしょうか??詳細がわかれば教えてください。

  • Wordの差し込み印刷でメールと添付資料を一括送信したい。

    仕事でWord2003の差し込み印刷機能を使用して、お客様にメールを一括送信しています。 今回はメール本文だけではなく、PDF資料を添付して一括送信したいのですが、方法が分からないので教えて下さい。 また、Wordの差込印刷で不可能であれば、他にどのような方法があるのか教えて下さい。 どうぞよろしくお願い致します。

  • エクセルでの一括メール送信

    エクセルに打ち込んだメールアドレスを一括でBCC送信したいのですが、全部を一気に選択すると数が多すぎてプロバイダーが拒否します。そこで小分けにしたいのですが、エクセルに打ち込んだメールアドレスを選択していこうとクリックするとすぐに一人が選択されてOEが開き、その人にメール送信の準備に入ってしまいます。メールアドレスをいくつかだけ選択するにはどうすればよいのでしょうか? よろしくお願いします。

  • メールの一括送信について

    携帯を新しく購入し、番号が変わったので、そのことをメールの一括送信で知らせたいのですが、一括送信だと、メールを受信した人には、その人以外に誰にメールを送ったのか(アドレスだけですが)が分かってしまいますか? うまく説明できなくてすみません。

  • auの一括送信について

    auのメールアドレスを変更したいんですが、アドレス帳に登録している全員にアドレス変更メールを一括送信する事って出来ますか? 登録人数が200人以上いる為、一括送信出来ないとかなり面倒な作業になりそうなので迷ってます。。。どなたかご存知の方いらっしゃいましたら、教えて下さい。

    • 締切済み
    • au
  • メールの一括送信

    こんにちは。 PCのメールで、一括して、20~50の宛先(メールアドレス)に送信することはできるのでしょうか? お教え下さい!!!

  • 複数の送信者から同じメールアドレスへ一括送信したい

    複数の送信者から同じメールアドレスへ一括送信したい のですが フリーソフトなどを使って送信できる方法はありませんか? ※こんな感じで一括送信したいです。 a@xx.co.jp、b@xx.co.jp、c@xx.co.jp、d@xx.co.jpから ↓ e@cc.co.jpへ送信 ※1つの送信者メールアドレスで複数のメールアドレスに送信、ではありません。

専門家に質問してみよう