• ベストアンサー
  • 暇なときにでも

Shell関数でメーラー起動して自動送信

またまた質問させていただきます。VBAのShell関数で メーラーを起動するまではわかりますが、そのあと送信先、件名、本文を EXCELのセルから自動的にコピーし送信まで終える というのはどうやるんでしょうか? VBAの本にはそこまで載ってないような気がするんですが・・・

noname#4342
noname#4342

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

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

  • ベストアンサー
  • 回答No.2
  • oku
  • ベストアンサー率50% (1/2)

VBAにメールを送信する関数は用意されていないため、代替手段を用いる必要があります。いくつかのメールソフトであれば引数にメール本文などを指定してメールを送ることができたりしますが。下記URLで紹介されている BlatJ COM版を利用させてもらえば VBAの中からメール送信をコントロールできそうなので こちらの方がお勧めです。http://www.piedey.co.jp/blatj/index.html # 少し壁が高いかもしれませんが、頑張ってください。

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

その他の回答 (1)

  • 回答No.1
  • shiro
  • ベストアンサー率0% (0/1)

根本的に、機能の分割が必要と思われます。 まず、EXCELのセル情報をHTML・テキストまたは添付ファイルにする機能。 そして、メーラを起動して相手先に送付する機能です。 こうやって機能を単純化する事によって、サンプルや本で参考にできるようになると思います。 参考までに、Shell関数を使うのは辞めた方がいいです。 VBAから直接メールサーバーに送信するほうがいいでしょう。

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

関連するQ&A

  • Shell関数?非同期?

    エクセルVBAで SHELL関数はSHELL関数より上の文の計算がすべて終わってから実行されるのでしょうか? 非同期はSHELL関数より下の文の話ですよね??

  • Shell関数でのExcel起動において

    Shell関数でExcelを起動させた時に、Excelのブックを閉じた時に一緒にExcelアプリケーションも終了させたいのですが、create object関数なら可能なのですが、環境上Shell関数を使うしかなくて、何か方法はありますか?

  • ExcelVBAでメールを作成してメーラーを起動するプログラムを作って

    ExcelVBAでメールを作成してメーラーを起動するプログラムを作っているのですがうまくいかない点が2つほどあります。 (1)いろいろ条件によって文章を組み立てて、 Excelに一旦、本文を表示するところまで行ったのですが、 それをクリップボードにコピーして、 GetText関数でmailtoのbodyに渡し メーラーが起動されるのですが、 メール本文を見るとダブルコーテーションで囲われているところがいくつかあり、 (セル内改行があったところなどが 自動的に囲われてしまうみたいで) 改行もされず本文が全部つながってしまいます。 メール本文でダブルコーテーションなしにして元の改行を入れるにはどうしたらいいのでしょうか? (2) bodyの本文が長いとエラーになってしまい、 メーラーが起動されません。 2千文字くらいしか入らないみたいです。 入れなければならない文言が決まっているので、 文章の文字数を減らすことはできません。 ダブルコーテーションは消して、 改行をそのまま入れて、 文章の文字数はそのままで、メーラーからを送るにはどうしたらいいか何日か悩んだのですが解決できません。 ご教示お願いします。

  • VBA Shell関数 

    エクセルVBA shell関数でプログラムを立ち上げ (DOSプロンプト画面が起動) そのあとに、続けてDOSプロンプトにコマンドと"Sheet1のA1"のセルに入力してある文字を打ち込みたいのですが上手くいかなく困っています。 どのようにしたらよいのでしょうか。 以下のように記述しています。 (初心者です) ------------------------------------ Sub ShellSamp1() Dim myID As Double   myID = Shell("C:\****\*****\*****.EXE & " & cd C:\Documents and Settings & " & Range("A1").Value & """") End Sub ------------------------------------

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

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

  • VBA shellでメールを作成した際の変数は?

    エクセルVBAから、shellメソッド?を使い、サンダーバードのメール作成画面を呼び出し 送信先、件名、本文はワークシートから持ってくるというプログラムを作りたいです。 webを調べた結果、自分にもできそうなのはshellでのメール作成画面の呼び出しだったので 以下のプログラムをテストしてます。 Shell """C:\Program Files\Mozilla Thunderbird\thunderbird.exe"" -compose ""to="" アドレス "",subject=件名,body=本文""", vbNormalFocus 上記プログラムで、メール画面を呼び出せたのですが 送信先、件名、本文を変数から入力することはできないのでしょうか? 例えば上記例で言うと、to=の後の「アドレス」を変数にしたいのです。 例えば上記のプログラムの前に アドレス=○○@yahoo.co.jp のように、変数宣言をしても、出てきた送信画面では「アドレス」のまま、固定値のままなのです。 メール作成画面にデータを渡す際、変数の使用をする方法はあるのでしょうか?

  • Excel メーラーの自動起動を停止させたいのですが。

    いつもお世話になります。 Excelで名簿を作っておりまして、特定の行の各セルにメールアドレスを格納しています。 このメールアドレスの入っているセルをダブルクリックしてしまうと勝手にメーラーが立ち上がってしまい困っております。 この、「メーラーの自動起動」(?)を停止させることはできないのでしょうか? ご回答いただけますと幸いです。

  • Access2000vbaで、shell関数で起動させたExcellを終了する方法を教えてください。

    Access2000vbaで、shell関数で起動させたExcellを終了する方法を教えてください。 以下のように、shell関数で、既存のExcelファイルを起動させました。 どうすれば、Excelファイルを終了できますか? 宜しくお願いします。 Dim fl_name As String fl_name = "C:\XE2.xls" Shell "C:\Program Files\Microsoft Office\Office\EXCEL.EXE " & fl_name, vbNormalFocus

  • HTMLからメーラーを起動しメール送信

    こんにちわ。 ブラウザのフォームに入力された内容をメールで送信させたいと思っております。 開発しているサーバにはメールサーバソフトはいれてないので、メーラーを起動してメールを送ろうと考えております。(メールサーバはないことを前提にお願いします) そこで、<a href="mailto:・・・でメーラーの起動はできると思うのですが、ユーザーのオペレーションとして、メーラーの送信作業をせずに、メールを送ることは可能でしょうか。ブラウザであて先、タイトル、本文等を入力し、送信ボタンを押すだけで、ユーザー側のメーラーを起動し、送信させることはできないでしょうか。 よろしくお願いします。

  • エクセルVBAで使うShell関数について

    現在、初心者ながらもエクセルを使って動画や音楽を検索して再生するソフトを作っています。 指定したファイルを、指定したアプリケーションで起動して開きたいと思い、ネットを使って調べたら2つの異なるShellの書き方で動かす方法が見つかりました。 2つのShell関数は同じものなのか教えて下さい。 (1) ret = Shell(Winamp_Path & "winamp.exe /ADD " & """" & Path) と、言う Shell(アプリケーションのフルパス/ADD""ファイルのフルパス) と書いてファイルをアプリケーションで開く方法。 (2) Call Shell(Path & oFile, vbNormalFocus) と、言う Shell(アプリケーションのフルパス, 起動時のウィンドウの状態) と書いてアプリケーションを起動する方法。 この2つは同じ種類のShell関数なのでしょうか。 (1)は、ファイルも一種のアプリケーションとして扱われているんでしょうか。 (2)がShell関数の基本型のようですが、(1)のような書き方が見つかってからは、他にも違う書き方があるかと思うと気になって仕方無いです。 使い方の違いは分かったのですが、調べても(2)の使い方や、別の関数や言語、APIを使ったアプリケーションの書き方しか見つからず、 エクセル2007VBのヘルプを見ても(2)の使い方しか見つからず、 Googleで、「エクセル Shell関数」と調べても、2つの違いが書かれている所が見つからなかったので質問しました。 ※この2つと違う、アプリケーションを起動するShellの記述があるなら、詳しくではなく、参考程度に教えて頂けると、とても嬉しいです。 頭の悪い質問だと思いますが、是非ともアドバイス、宜しくお願いします。