• ベストアンサー
  • 困ってます

【Excel】 シート内のデーターでメール送信したい。

こんにちは。 A1に宛先のアドレス A2に件名 A3以降にメール本文 となったsheetを作成しますが これをOutlookExpressでテキスト送信する方法はありますか。

共感・応援の気持ちを伝えよう!

  • 回答数5
  • 閲覧数282
  • ありがとう数0

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

  • ベストアンサー
  • 回答No.1

> A3以降にメール本文 A3以降ではなく、本文はA3のみに入力してある場合です。 [Alt]+[F11] で Visual Basic Editor を開き、[挿入]-[標準モジュール] に貼り 付けて実行します。 Sub SendMail()   Dim B21Obj, MailContents   Dim Server, Mailto, MailFrom, Title, Body, AttFile   If Range("A1") = "" Then GoTo Fin   If Range("A2") = "" Then GoTo Fin   If Range("A3") = "" Then GoTo Fin   Set B21Obj = CreateObject("basp21")   Server = "xx.xx.xx.jp"     'サーバー名(ご自分のSMTPサーバーに書換え)   Mailto = Range("A1").Value   '宛先   MailFrom = "xxxx@xx.xx.jp"   '差出し人(ご自分のメールアドレスに書換え)   Title = Range("A2").Value    'タイトル   Body = Range("A3").Value    '本文   AttFile = Range("B1").Value   '添付書   MailContents = B21Obj.SendMail(Server, Mailto, MailFrom, Title, Body, AttFile) Fin:   Set B21Obj = Nothing   Range("A1").Select End Sub ※添付書がある場合は、B1にファイルのフルパスを入力します。添付書がなくても、  記述内容は変更しないでください。 ※ご自分宛にテスト送信して届かない場合は、Visual Basic Editor の [ツール]-[参  照設定] で basp21... を選択してから再実行してみてください。 ※私は Outlook をインストールしていませんので Outlook Express で送信  されますが、Outlook がインストールされている環境ですと、わかりません。

共感・感謝の気持ちを伝えよう!

質問者からの補足

ご回答有難うございます。 すごく嬉しいです。 上手く行きそうなのですが、実行すると 「ActiveXコンポーネントはオブジェクトを作成できません。」というエラーになりました。 > [ツール]-[参照設定] で basp21... を選択… basp21... がリストになかったのですが…。

その他の回答 (4)

  • 回答No.5

Wendy02さま、ありがとうございます。 まさにPCの電源を切ろうとしたときに、ご投稿に気づきました。 いつもWendy02さまはじめ多くの方々のご回答を読みながら勉強させていただ いております。 私の知識など、まだまだ底が浅い(というか基礎が無い)と痛感しております。 ところで、渡航先はフィリピンの片田舎ですので、ネットアクセスも半年間 お休みです。 戻ってから、またいろいろ勉強させていただきます。 それでは、失礼致します。 hee1 さま、場所をお借りしてすみませんでした。

共感・感謝の気持ちを伝えよう!

  • 回答No.4
  • Wendy02
  • ベストアンサー率57% (3570/6232)

こんばんは。Wendy02です。割り込み失礼します。 >確認なのですが、これはBasp21から直接送信されているのでしょうか。 >OutlookExpressの送信履歴に残っていなかったものですから…。 Basp21 は、SMTPプロトコルを直接、呼び出して使っているので送信の記録には出てこないはずです。私のメーラーは、MS製品ではありませんが、Outlookは、受信のみで、VBAで使えるようにしてあります。 余談に近い話になるかもしれませんが、コードを見ていて、私の個人的な疑問が生じたので調べてみました。そのSMTP(BSMPT)だけでは、パスワード等がないですよね。 実は、私のところはBasp21のBSMTPで、メールは送れてはいるのですが、今、自分のサーバー側のSMTPの内容を読んでみると、サーバーからエラーが返らないのは、私が、POPの使う頻度が高いからではないかと思います。 本来は、SMTPプロトコル単独では、メール・サーバーへSMTPのみだと弾かれることもあるのではないかと思います。そうでないと、VBAで、何十万件、何百万件のメールが一瞬で送れることになってしまいます。たぶん、大手のプロパイダなら、SMTP単独では、どこかの状態でセキュリティ機能が働くはずです。(Mailボックスが、件数カウントして一杯になる時代ならともかく、今は、そんなことを試してみるわけには行きません。(^^;) そのセキュリティには、POP before SMTPとSMTP認証(SMTP Auth)などがあるのですが、調べてみましたから、Basp21では、そこらあたりは対応しているようですね。 トラブルが起こる前に書くのもヒンシュク物かもしれませんね。 p.s. misatoannaさんへ >あさって早朝に海外に発ち半年ほど戻りません。 お気をつけて!海外からでも、アクセスは出来るでしょうから、お別れではないと思いますけれども。

共感・感謝の気持ちを伝えよう!

  • 回答No.3

> 上手く送信できました。 よかったですね。安心しました。 > 確認なのですが、これはBasp21から直接送信されているのでしょうか。 ん~、どうなのでしょう。 私の環境ではメールソフトが Outlook Express しかないので、勝手にそこ経由で送信される と思っていたのですが‥‥。 ともあれ、成功してよかったデス。 ところで、あさって早朝に海外に発ち半年ほど戻りません。 追加ご質問にはお答えできないと思いますので、ごめんなさい。

共感・感謝の気持ちを伝えよう!

  • 回答No.2

エラーとともに、おそらく Set B21Obj = CreateObject("basp21") の部分が黄色く反転するのでしょうね。 とりあえず、次のサイトから BASP21-2003-0211.exe をダウンロードしてインストールした 後に再起動してみてください。 http://www.hi-ho.ne.jp/~babaq/basp21.html [ツール]-[参照設定] に、Basp21 1.0 Type Library と表示されると思います。

共感・感謝の気持ちを伝えよう!

質問者からの補足

有難うございます。 上手く送信できました。 確認なのですが、これはBasp21から直接送信されているのでしょうか。 OutlookExpressの送信履歴に残っていなかったものですから…。 しかし、ひとまず目標はクリアできたと思います。

関連するQ&A

  • 【Excel】 シート内のデータよりメール送信したい。

    こんにちわ。 A1に宛先のアドレス A2に件名 A3にメール本文 となったsheetを作成します。 ここからメールを送信したいのですが・・・ ◆SMTP AUTHの認証を使用します。 ◆複数の人が使うことを想定し、メーラーに依存しない手法 どのようにすればよいのでしょうか。 よろしくお願いします。

  • メールの印刷すると

    windowsXP、OutlookExpress6を使用しています。 メールを印刷時に『送信者、宛先、送信日時、件名』を 印字しないようにする事はできるのですか?

  • 一度送信したメールの削除

    OutlookExpress Ver.6でグループを作成し、BCC欄に選択すべきところ、うっかり通常の宛先欄に選択し、送信してしまいました。 宛先欄にグループ名が表示されたので、受信者もグループ名が表示されると思い込んでしまいました。 そのような経緯で、可能であれば、削除したいのです。 なお、宛先は同じ会社のアドレスで、まだ読み込まれていないのではないかという次第です。 よろしくお願いします。

  • エクセルVBAで OutlookExpressで自動的に送信・・・

    とあるエクセルのファイルにボタンを付けて自動的にOutlookExpressで送信したいのですが、 メールアドレスと件名・本文共に固定のもので、使用したいのです。 流れで言えば、 エクセルシートに作ったボタンを押す→自動的に保存される→ OutlookExpressが起動→メールアドレス・件名・本文が自動的に入力されている→ さっきボタンを押したエクセルファイルも添付されている→ メール送信 という感じです。 こういうものは、エクセルで作成可能でしょうか? また、出来るのであれば構文も載せていただけると幸いです。 宜しくお願い致します。

  • エクセルでメール送信

    何度も同じような質問をしてすいません。いろいろ試した結果、通常使わないメールクライアントとして送信できることがわかりました。 でも、また、わからなくなってしまいました。 ワークブックをメールに添付して送信します。 通常OutlookExpressを使用していません。 ファイル→送信→メールの宛先...を選択すると、マシンによってMS Outlookが起動するのと、OutlookExpressが起動するのがあります。OEが起動してくれるマシンでは送信はうまくいきますが、Outlookが起動するほうは送信できません。なぜですか? Excel97でこのような現象です、なんとかなりませんか?OutlookExpressを立ち上げ、送信したいのですが・・・ それと、Excel2000では大丈夫なのでしょうか? どなたかわかる方教えてください。お願いします。

  • 何も書かれていないメールが届く

    OutlookExpressを利用しています。 最近、宛て先・送信者・件名が何も入力されていないメールが複数届くようになりました。 もちろん本文も白紙です。 削除すれば済むことですが、何か対策はないでしょうか。

  • エクセルのシートをメールで送信すると枠が表示されない。

    色々試してみたのですが、どうすればいいのか分からず困っております。 エクセルで作った表と文章を メーラー(OutlookExpress)で以下のようにして送信しています。 [ファイル]-[送信]-[メールの宛先]とすると出てくるポップアップで[メッセージ本文として現在のシートを送信]を選択。 エクセルシートの上部にタイトル、宛先を入れて[このシートを送信する]を押下。 一部の送信先で表の枠が表示されずに形式が崩れてしまい、 開いて見るとばらばらの状態になってしまうようです。 ・フリーメールを使用している ・表計算ソフトが入っていない などの原因を考えていたのですが、どうやらそれだけではないようで困っています。 エクセルで作成した状態がそのまま送信できるのがベストなのですが、解決法をご存知の方がおられたら お教え願えないでしょうか。 どうぞ宜しくお願い致します。

  • EXCELでメール送信

    EXCEL2003で「送信」→「メール送信(添付ファイル)」で送信しようとしたときにOutlookExpressで送信したいのですが普通のOutlookで作成画面が表示されてしまいます。IEとかでエディタを確認してもOE となっているのですが・・・突然このような現象になって困っています。 Outlookはそのまま使いたいのですが、どうすればデフォルトをOutlookExpressに変えれますか?よろしくお願いします。

  • メール本文の流用

    OutlookExpress6を利用しています。 CCやBCCではなく一度送信したメールの文章を流用して新たなメールを作成することは可能でしょうか? 会社のシステムのメールソフトでは、本文の流用や、同じ文章で宛先を変えて再送信ができたのですが、OutlookExpressに最近切り替え、転送でしか対応できないのかな、と疑問に思っています。 でも「>」がついてしまうのが鬱陶しいんですよね。 かといって、引用することもあるから「>」の表示を消す設定にするのもちょっと憚られます。 方法がありましたら教えてください。

  • メールを送信できたか確かめるには

    OutlookExpressを使ってるんですがメールを送信できたか確かめるにはどうしたらいいんでしょうか?