• ベストアンサー

マクロでエクセルをメール送信したい。

最近、マクロを始めたのですが、マクロでActiveWorkbook(エクセル) を添付して、メール送信までを出来ないかな?と思っています。宛先 はエクセルの別シートにリストで入力しておき、VLOOKUPで参照して、 必要な人に配布したいのです。色々調べたのですが、よくわかりま せん。簡単なやり方があれば教えていただけませんか? メールソフトはOutlook、OSはWindowsXPです。よろしくお願いします。

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

CDO BASP21 メール でネット検索してみてください。 アクティブブック<>ThisWorkBooxでしょうか?

huaban
質問者

お礼

ありがとうございます。 ThisWorkbookって事だと思います。作成したものをすぐ メール添付して送りたいのです。開いていて、アクティブ になっているもの(メール送信動作を指示しているマクロ ボタンを作ってあるエクセル)です。 メールへ添付するのを下記を参考に記述をしたいのですが、 (CDOを使って)その場合、ActiveWorkbookを指定する 時、コードはどのように記述したらいいのか?教えてもら えませんか? MailAddFile = Application.GetOpenFilename("全てのファイル (*.*),*.*",, _ "添付ファイルを選択して下さい。",, True)

その他の回答 (4)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.5

akina_lineさんの、#3のレスをよく見てませんでした。 #4の私のレスはスルーしてください。 失礼しました。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.4

#1です。 ThisWorkbookの場合は、一度 SaveCopyAs で別ブックとして保存してから、別名保存したものを 添付してはいかがでしょう? ActiveWorkbookの場合も同じようにできます。 もちろん、akina_lineさんの方法のほうが、別名保存、 場合によっては保存したものを削除、の手間がないので より効率的だと思いますが。

huaban
質問者

お礼

別名保存をしてから、添付をすればいいの ですね?SaveCopyAsを使用したらすぐ出来 ました。ありがとうございました。助かり ました。

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.3

こんにちは。#2です。  >ActiveWorkbookの時はどう記述するかわかりませんので、教えていただけませんか?  >MailAddFile = Application.GetOpenFilename("全てのファイル (*.*),*.*",, _  >"添付ファイルを選択して下さい。",, True)  この記述はファイル選択ダイアログを出して、ファイルのパスをMailAddFileに格納するというものです。   http://www.happy2-island.com/excelsmile/smile03/capter00803.shtml   ですので、ActiveWorkbookを添付したい場合は、    1.ActiveWorkbookをテンポラリ・ファイルに保存する。    2.MailAddFileにテンポラリ・ファイルの絶対パスを格納する。    3.送信後、テンポラリ・ファイルを削除する。   という風に書き換えればよいと思います。(ActiveWorkbookが保存不要なものと考えて、テンポラリ・ファイルに保存しましたが、保存すべきものであれば、「名前をつけて保存」ダイアログで保存した後、その絶対パスを格納します。) では。

huaban
質問者

お礼

Activeworkbookをそのままの状態で、 添付は出来ないのですね?格納してから 添付したら、出来ました。 ありがとうございました。

huaban
質問者

補足

MailAddFileで2つのエクセルデータ(たとえば下記)を 添付したい時にはどう記述したらいいのでしょうか? 再度教えて下さい。 C:\Documents and Settings\デスクトップ\test1.xls C:\Documents and Settings\デスクトップ\test2.xls 下記のように記述してみましたが、1つしか添付されません でした。どうしてでしょうか? MailAddFile "C:\Documents and Settings\デスクトップ\test1.xls" MailAddFile "C:\Documents and Settings\デスクトップ\test2.xls"

  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.2

こんにちは。  下記サイトをご参照下さい。   http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_080.html   VBAを始めたばかりだと、難しいかもしれません。   頑張ってください。 では。

huaban
質問者

お礼

ありがとうございます。お薦めのサイトはやり方がわからず、 検索していたら、出てきたので、それを参考にコードを記述 して、ある程度出来たのですが、下記のところのコードが、 ActiveWorkbookの時はどう記述するかわかりませんので、 教えていただけませんか? MailAddFile = Application.GetOpenFilename("全てのファイル (*.*),*.*",, _ "添付ファイルを選択して下さい。",, True)

関連するQ&A

  • エクセルでメール送信

    エクセルのワークシートが複数あります。 VBAで  ActiveWorkbook.SendMail Recipients:="xxxxxx@xxx.ne.jp" とすると、ワークブックがメールに添付され送信されますよね。 これを、ワークブック全体ではなく、特定のシートだけをメールに添付して送信したいのですが・・・ 送信側はワークブックにて入力用シートでデータの入力をし、送信用のシートを完成させます。受信側では入力用シートは不要です。 すいません、このような以前にもありましたか? どなたか教えてください。お願いします。

  • Excelからのメール送信が出来ません

    今までOutlook Expressを使用していたのですが、Outlookに切替えました。 通常使用する設定もし、Outlookから立ち上げれば普通にExcelも添付して送信できるのですが、 Excelから<ファイル>→<送信>→<メールの宛先>でメールを送ろうとすると、 「メールでエラーが発生しました。Excelをいったん終了し、メールシステムを再起動してから、もう一度実行して下さい」と出てしまい、送信できません。 再起動をしたのですが、やはり送信できませんでした。 調べて色々やってみたのですが、やはり出来ません。 何か改善策がありましたら、是非教えて下さい。

  • エクセル上からメール送信

    エクセル上からツールバー>ファイル>送信>メールの宛先(添付ファイル)で送信ボタンを押したですが、後でoutlookを開いたところ、送信トレイに残ったまま、で実際には送信できていませんでした。即、送信するようにするにはどうしたらいいのでしょうか?ちなみにOSは2000で、outlookは2002です。

  • エクセルのメール送信についてです。

    エクセルのメール送信についてです。 メール送信をしたいのですが、エクセルのシートのデータを そのまま本文に表示してメールが送りたいのですが、 可能でしょうか? 宛先の環境により添付はできません。 また宛先を増やすにはどうしたらいいでしょうか? 全く知識がないのですが、急に仕事として頼まれ土日も考え込んでいます。 以下のURLを参考にさせて頂いています。 http://mailpg.pgtop.net/category/6930424-1.html

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

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

  • Excelファイルをマクロボタン一つでEメールで送ることはできませんか

    Excel2003を使用しています。 Excelのファイルをマクロボタン一つで特定の宛先にEメール(Outlook Express6.0)で送るマクロを作成したいのですが。 マクロの記録でメニューのファイル>送信>メールの宛先(添付ファイル)をやってみたのですが、宛先入力・送信は手動でやらないといけません。 これらを全てボタン一つでする方法はないでしょうか。

  • エクセルシートだけをメールで送信するには

    業務見積もりに電子メールに添付しています。 通常エクセルブックで作成したブックを添付しています。 お聞きしたいのが ブックの中の1つのシートだけを添付することはできないのでしょうか? 今のところ1つのシートを送ることは ファイルメニューから 送信→メールの宛先 という手段で行っていますが、エクセルのシートとして 添付できないようです。 エクセルブックの中から1つのシートだけを エクセルブックとして送る良い方法、 ご存知でしたら教えてください。

  • エクセルでメールの宛先に送信ができません。

    ソニーのVGN-SZ74Bを使用しています。Outlook、Excelともに2007です。 エクセルをシートとして送信したいのですが、「Excelのオプション」より、ユーザー設定→コマンドの選択をすべてのコマンド→メールの宛先に送信を追加→OKにて、クイックアクセスツールバーに「メールの宛先に送信」の模様が出てきたのですが、クリックできません。 クリックできるようにするにはどうすれば良いでしょうか。ちなみにインターネットオプションのプログラムは、Outlookになっております。 教えてください。宜しくお願いいたします。

  • エクセル 添付ファイルとして送信

    [ファイル] メニューの [送信] をポイントし、[メールの宛先 (添付ファイル)] をクリックで開いているシートをメール(OUTLOOK EXPRESS)で送信できたのですが、、[メールの宛先 (添付ファイル)] がなくなってしまいました。どうしたら復活できるのでしょうか。 よろしくお願いします。

  • EXCELマクロで複数のEMAIL宛先を指定

    WIN XP, EXCEL2002, メーラーはOUTLOOK2002を使っています。 EXCELマクロで複数のEMAIL宛先を指定することはできますか? ActiveWorkbook.SendMail Recipients:="email@*****.co.jp", Subject:="test" にてひとつの宛先の場合はちゃんと送信できましたが、複数の宛先を指定する方法が分かりません。 よろしくお願いいたします。

専門家に質問してみよう