• ベストアンサー

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

最近、マクロを始めたのですが、マクロで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