• ベストアンサー

メーラーに添付ファイルをつける方法

いつもお世話になっております。 掲題の件ですが、vbよりメーラーを起動して 立ち上がったメーラーの件名、本文、さらに任意の添付ファイルをつけた状態にしたいのですが、 これは可能なのでしょうか? Windows ApiのShellExecuteを使用して、「mailto:○○@○.○?subject=件名&body=本文」までは うまくいったのですが、添付ファイルのつけ方がわかりません。 ご存知の方がいらっしゃいましたらご教授ください。 よろしくお願いいたします。 失礼いたします。

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

  • ベストアンサー
noname#4564
noname#4564
回答No.2

  私も同じ問題(参考URL)で悩んだのですが、結局、「mailto:」はやめ、コンポーネントを使用することにしました。 CDO、BASP等の使用を検討されてみてはどうでしょうか? コンポーネントを使用すればURLエンコードも不要ですし、楽だと思います。

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=516290
Ha88888
質問者

お礼

やはり同じ悩みを持った方がいらっしゃったのですね。 回答いただきました内容を参考にいたしまして何とかActiveXコンポーネントを使用して問題解決に至りました。 ご丁寧に解説いただきまして、ありがとうございました。

その他の回答 (1)

  • ittochan
  • ベストアンサー率64% (2667/4137)
回答No.1

昔、VBScriptで↓を作成したことあるので (OutlookExpressオンリー & 無理やり) VBでも可能でしょう。 SendToフォルダへ置きます。 ---この下から 'Windows98以上 + Script Host5.6以上 + Internet Explorer5.5以上 Option Explicit dim objArgs dim WshShell Set objArgs = WScript.Arguments Set WshShell = WScript.CreateObject("WScript.Shell") if WScript.Version < "5.6" then WScript.Echo "Windows Script Host 5.6 をインストールしてください" WScript.Quit end if Dim targetfile dim stra,prog,BtnCode dim Address , titleName Address = "itto1@ittochan.co.jp;itto2@ittochan.co.jp" titleName = "件名" prog = WshShell.RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\msimn.exe\") prog = chr(34) + prog + chr(34) wshShell.Run(prog+" /mailurl:mailto:"+Address +"?subject="+titleName) dim IE Set IE = WScript.CreateObject("InternetExplorer.Application") IE.Visible = false IE.Navigate "about:blank" Do While IE.Busy Wscript.Sleep 10 Loop dim j stra = IE.Document.parentWindow.clipboardData.getdata("text") For Each targetfile In objArgs IE.Document.parentWindow.clipboardData.setdata "text",targetfile for j=0 to 600 WScript.Sleep(100) if wshShell.AppActivate( titleName ) then exit for elseif j=599 then fin() end if next wshShell.SendKeys("%IA") for j=0 to 600 WScript.Sleep(100) if wshShell.AppActivate("添付ファイルの挿入") then exit for elseif j=599 then fin() end if next WScript.Sleep(500) wshShell.SendKeys("%N^V%A") next if objArgs.Count<1 then BtnCode = WshShell.Popup("添付ファイルがないよ",2,,16) else BtnCode = WshShell.Popup("添付完了!!",2,,64) end if fin() sub fin() if stra <> Null then IE.Document.parentWindow.clipboardData.setdata "text",stra end if IE.Quit WScript.Quit end sub

Ha88888
質問者

お礼

回答が遅れまして申し訳ありませんでした。 上記ソースでメーラーが立ち上がるようになりました。 ありがとうございました。 しかし、メーラーが限定されることもあり 結局MAPIコンポーネントを使用することにいたしました。 ご丁寧に解説いただきましてありがとうございました。

関連するQ&A

専門家に質問してみよう