• ベストアンサー

エクセルからのメール送信

エクセルのシートにあるメールアドレス宛てでメーラーを立ち上げて、メールの本文にはエクセルシートの複数のセルの文字を転記することは可能でしょうか? ちなみに、標準のメーラーはサンダーバードです。 いくつかのサイトで調べてみたのですが、Outlookをつかったものやエクセルを添付するようなものが多く。そうでないものは、極めて複雑な(VBA素人の私にとって)プログラムが掲載されています。 メールの本文にいれたいセルの範囲なども結構変動しそうで、出来るだけシンプルなプログラムが有難いのですが。 勝手言いますが、よろしくお願い致します。

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

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

 A2:A4 に、それぞれ、「メールアドレス」・「件名」・「本文」が入っているとします。  例えば、B1 に =HYPERLINK("mailto:" & A2 & "?subject=" & A3 & "&body=" & A4,"rsp90045様") という式を立てると、この セル は リンク付き(青色下線)になりますが、この B1 セル を クリック すると、「宛先:」・「件名(S):」・「本文の テキストエリア」に、それぞれ、 ・A2 セル に入力された「メールアドレス」 ・A3 セル に入力された「件名」 ・A4 セル に入力された「本文」 が入力された状態で、Mozilla Thunderbird の 新規メール ウィンドウ が起動します。  なお、A1 セル に「rsp90045」と名前を入力しておいて、B1 の セル の式を =HYPERLINK("mailto:" & A1 & "様 <"& A2 & ">" & "?subject=" & A3 & "&body=" & A4,A1 & "様") とすれば、Thunderbird の「宛先:」の欄には、 rsp90045様 <rsp90045@hoge.com> というような アドレス が表示されますが、これは、相手に着信した時に宛先が「rsp90045様」と表示される書式です。 >メールの本文にはエクセルシートの複数のセルの文字を転記する  上記の式の「"&body=" & A4」の「A4」が本文になりますので、A4 セルに ="日時" & A5 & "場所" & A6 & "会費" & A7 =CONCATENATE("日時",A5,"場所",A6,"会費",A7) というような式を立てて、A5:A7 にそれぞれお望みの文章を書いておけば、それが本文に反映されます。  なお、文中に「& CHAR(10) &」という式を挿入しても、Thunderbird の本文は改行されませんでした。

rsp90045
質問者

お礼

CDOを使って送信することができるようになったのですが やはり、社内で共用することを考えるともっとシンプルな方がいいということになっておりました。 回答いただいた関数を利用した方法なら、問題ないと思われます。 実際におくれました。 (HYPERLINKの記事も読んでいたのですが、メールの本文の表記にまで細かくわかるものがなく困っていました) ありがとうございました。

その他の回答 (3)

回答No.3

メーラーはサンダーバードでないとダメですか? Beckyを使ってなら、実際にエクセルから送信しています。 「メールの本文にはエクセルシートの複数のセルの文字を転記すること」はたいしたことではありません。メーラーを立ち上げて、メールを作成する部分が大変だと思います。

rsp90045
質問者

お礼

すいません、会社の指定メーラーがサンダーバードであるため・・・ CDOを利用してチャレンジしてみることに致します。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

>サンダーバード 側の問題だと思います。ソフトのメーカーか篤志者がVBAあての繋ぎのソフト部品を作成しないと無理でしょう(XXオブジェクトライブラリのようなもの)。そういうのをWEBで調べて見つからなければ、あきらめざるを得ない。サンダーバードの設計情報も質問者には無いし、知っても目的を実行するプログラムを作成する技量は無いでしょうから。 作る、のではなく、探す、イメージです。 ーーー Googleででも「VBA メイル送信」で照会して、出てくる記事でも読んでください。 Outlook CDO Basp21 などの話題が出ます(サンダーバードとは別ですが)。 ーー 同じような質問 http://okwave.jp/qa/q4994607.html 「サンダーバード VBA」で照会すると沢山記事がある。 ーー >極めて複雑な(VBA素人の私にとって そうではなくて最終形は、単純に宛先などへ文字列を代入する仕組みにしてあるはず。 それまでの付帯智識・コンセプトなどが理解できないのでは。

rsp90045
質問者

お礼

すいません、条件を書き足りてなかったのですが 会社で、他のメンバーとも共用したりすることがあり できるだけシンプルな方法を探しておりました。 今のところ、回答いただいたCDOなら会社的には問題なさそうなので 使ってみようと思います。 ありがとうございました。

回答No.1

BASP21というフリーで配布されているコンポーネントを使えば、VBAを使って比較的簡単に送信できますけどね。(あくまで比較的にです)

rsp90045
質問者

お礼

早い回答ありがとうございました。 BASP21というコンポーネントについて、存在は知っていたのですが 会社で使うということもあり、セキュリティ等で断念致しました。 確かに、簡単そうではあるとおもったのです・・・ 今後ともご教授御願い致します。

関連するQ&A

  • excelでメールを送信したい。

    excelで顧客管理をしてます。 エクセルから 「○○様、こんにちは」 のように、送る相手によって部分的に内容の異なったメールを送信したいです。 エクセルでメールの本文となるデータを作って、 そのデータをメーラーへ流し込んで送信したいです。 どのような方法がありますでしょうか? 自分で細かい調整をしたいので、専用ソフトウェアの導入はしたくないです。 OS:winXPsp2 メーラー:Thunderbird 1.0.2 経験:パソコン経験4年、プログラム経験なし、VBA経験なし、関数を使って簡単な文書ファイルを作成できる程度。

  • VBA エクセル+アウトルックで自動メール送信

    エクセル、アウトルックともに2003です。 VBAは初心者でほとんど分からないのですが、下記のようなことはできますか? エクセル、シート1に顧客管理台帳を作りました。 A1セル メールタイトル(共通) A2セル 会社名 A3セル 担当者名 A4セル Eメールアドレス エクセル、シート2には送信する基本文章を入れようと思ってます。 A1セル    会社名が反映されるように A2セル    担当者名が反映されるように A3~A5セル 用件 シート1は50件ほどの顧客リストとなってます。 マクロ(VBA?)で1件ずつ、メールアドレス・タイトル、本文に会社名・担当者・用件が自動で入るようにしたいのですが、このようなことはできるのでしょうか? 送信前に内容を一応チェックしてから送信したいと思ってますので、送信ボタンを押すのは手動にしたいです。

  • Excel2010からのメール本文の送信

    ・Windows7 Pro 32bit ・Outlook2010を既定のプログラムに設定 ・Thunderbirdをメインのメーラーとして使用 上記環境にて、以下の操作を実施。 1.Excel2010の「メールの宛先に送信」ボタンから   シートの内容をメール本文として送信。   ※この時、Outlook2010は起動していない。   ※受信メールはサーバに残す設定。    ↓ 2.Excel2010には、   「このメッセージは yyyy/mm/dd hh:mm に送信されました。」の   メッセージが表示されている。    ↓ 3.Thunderbirdでメールの着信を待つも、メールは届かない。    ↓ 4.Outlook2010を起動。    ↓ 5.Outlook2010にてExcel2010からのメールを受信。   (起動のタイミングで送受信した?)    ↓ 6.ThunderbirdでもExcel2010からのメールを受信。 結果として、Excel2010のシート本文をメール送信するには、 Outlook2010が起動している必要があるように見えます。 (Excel2010でメール送信のキックをかけられない?) Office2000(Excel2000とOutlookExpress(OE))の組み合わせでは、 OEが起動していなくても、 Excel2000からメール本文として送信されたメールを Thunderbirdなど、OE以外のメーラで受信する事ができていたと思います。 (Excel2000でメール送信のキックをかけていた?) Windows7、Office2010の組み合わせで、 同様の環境を作る事は無理なのでしょうか? (Outlookを起動しなくてもExcel本文をメール送信できる) それとも、私の設定方法が間違っているのでしょうか? (ほぼ、初期設定のままですが・・・) ご存知の方がいらっしゃれば、ご教示お願い致します。

  • 同じメールを複数の宛先に送信したい

    outlook2010で、同じメール(PDF添付あり)をいくつかの差出人から、複数の宛先に送りたいです。 イメージとしては、新規のメールを作り、toとCCと宛名、差出人アドレスをexcelから差しこむようなものを作りたいのですが、 ワードの差し込みだと添付ができず、差出人も変えられない。 エクセルのVBAも作ってみたのですがシートの画面が入ってしまい、差出人も変えられません。 outlookのマクロは書いたことがないので、いまいちイメージがわかず、、、 他のメーラーを使うことは考えてませんので、outlook,excel,wordでできる範囲のことを教えていただければ、、、

  • エクセル2007マクロについて質問です。

    エクセル2007マクロについて質問です。 A1セルにメールアドレス A2セルに件名 A3セルに本文が入ったシートがあります。 上記の情報がすでに入っている状態で アウトルック2007を起動させるにはどうすればいいですか? (アウトルック2003のときはどうでしょうか?方法が違いますか?) ちなみに参照設定の参照可能なライブラリには Microsoft Outlook 12.0 Object しかありません。 送信はせずに、メーラーが開けばいいのです。 サーバーなどの設定も既定のまま変えずに開きたいのですが… どなたかご教示ください。 よろしくお願いします。

  • プログラムでのメール送信

    F-BASIC V6.3にはメーラーの制御機能があります。 マニュアルにはMAPIに対応したメールソフトを 制御できると書いてあります。 実際にメール送信のプログラムを書いてテストすると 標準のメーラーが、Outlook Expressではうまく動作しますが Outlook2002を規定のメーラーに設定してあると MAPIにログインできない・・・とエラーになります。 OutlookはMAPIに対応していないのでしょうか? 何か、設定する事で解決するのでしょうか?

  • VBA エクセル 入力部分をコピー メールに貼付

    VBAで指定フォルダの指定ファイルをメールに添付するというコードがあります。 それに追加で、エクセルファイルのシート1の入力部分をコピーしてメールの本文に貼り付けという内容のVBAのコードを書きたいのですが可能でしょうか? どうぞよろしくお願いします。 エクセル2010、outlook2010, Windows7

  • エクセルでシートを指定してメールで送信したい

    エクセル2016で、数枚のシートのブックがありそのうちの1枚のシートだけがリンクで作成される結果報告書になっており、このシートの報告書の部分だけをPDFにしてメールで送付しているのですが、この報告書の1枚だけエクセルから直接メールで送信する方法はないのでしょうか? メールソフトはOUTLOOKです。 少し調べてみたらVBAで送る方法が種々あるのですが、当方VBAはほとんど出来ないので、いろんな機能は不要なので、できるだけ簡単なコードで実現したいので質問させていただきます。 ファイルが添付されて送信メールが起動してくれば、メアドは自動でなくてもOKです。

  • VBAでwindowsメールを起動させたい

    タイトルの通りなのですが、VBAでwindowsメールを起動させることは出来ますでしょうか? 既存のプログラムから既存のメーラーはwindowsメールに設定したのですが、VBAを実行するとoutlookが立ち上がってしまいます。 エクセル2007で使いたいと思っています。 よろしくお願いします。

  • Excelマクロでメール作成

    Excelマクロでメール作成 Sub aaa() Dim myOutLook Dim olmailItem Dim myitem Dim MyAttachments Set myOutLook = CreateObject("outlook.application") Set myitem = myOutLook.CreateItem(olmailItem) myitem.To = "メールアドレス" myitem.CC = "CCアドレス" myitem.Subject = "件名" myitem.Body = Sheets("シート1").Range("A1") '(1)(本文入力) というところまで出来ていて、'(1)(本文入力)の部分で悩んでいます。 本文をエクセルシート1のA1からC100の範囲でmyitem.Bodyに代入することは出来るでしょうか? (1)の記述だとA1セルを代入することは出来るのですが、Range("A1")をRange("A1:C3")とするとエラーが出てしまいます。 A1からC100の範囲は、空白ありセルデータとなっています。 基本的なことが解っていないための質問になってしまっているかも知れず、申し訳ないのですが、よろしくおねがいします。 OSはxp、Excelは2003、メーラーはOutlookです。

専門家に質問してみよう