IE操作でのメール送信
未読分:45件
昨日以降(0) 2日前以降(0) 3日前以降(0) 4日前以降(0) 5日前以降(0)
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
Message#45 2017年1月25日(水)08時59分 From: ジャッカル | 返事 削除 変更 |
エラーになるってことはオブジェクトがしっかり認識していないってことじゃないのかな? ちゃんとieつかめてる? > この教本そのまま起動させると、 > 「 Set htdoc = ie.document」 > の場所でエラーになります。なぜだがわかりますでしょうか? |
Message#44 2017年1月22日(日)13時41分 From: nazo | 返事 削除 変更 |
この教本そのまま起動させると、 「 Set htdoc = ie.document」 の場所でエラーになります。なぜだがわかりますでしょうか? |
Message#43 2015年12月17日(木)13時54分 From: 気ずる | 返事 削除 変更 |
この方法はブラウザ操作からメール送信する方法なんで、添付ファイルをブラウザのセキュリティ上操作はむずかしいでしょうね。 前に提案していたVBAから直接送信させると添付ファイルできたと思いますよ。 hiroyukiのメッセージ(#42)への返事 > yahooメール送信まででき参考になります。 > このプログラムをみて本文も送信しようと試行錯誤してやってみましたが、どうにもうまくいきません。 > > 本文と添付ファイルをつけて送信するにはどうすればよいのでしょうか?ご教授ください。 |
Message#42 2015年12月15日(火)23時09分 From: hiroyuki | 返事 削除 変更 |
yahooメール送信まででき参考になります。 このプログラムをみて本文も送信しようと試行錯誤してやってみましたが、どうにもうまくいきません。 本文と添付ファイルをつけて送信するにはどうすればよいのでしょうか?ご教授ください。 |
Message#41 2015年12月15日(火)23時01分 From: hiroyuki | 返事 削除 変更 |
VBAマスターのメッセージ(#39)への返事 > こちらで試してみてください。 > > > Sub yahoo() > Dim ie As InternetExplorer > > Set ie = CreateObject("internetExplorer.Application") > ie.Visible = True > ie.navigate "https://jp.mg5.mail.yahoo.co.jp/neo/launch?.rand=64q38e8rjip34#tb=w8o0z9sc" > Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE > DoEvents > Loop > > '2秒待ち > Call WaitFor(2) > > 'メールの作成クリック > For Each objLink In ie.document.Links > If InStr(objLink.outerHTML, "メールの作成") > 0 Then > objLink.Click > Exit For > End If > Next > > '2秒待ち > Call WaitFor(2) > > '宛先入力 > ie.document.getElementById("to-field").value = "xxx" > > '2秒待ち > Call WaitFor(2) > SendKeys "{TAB}" > > '件名入力 > ie.document.getElementById("subject-field").value = "件名" > > '2秒待ち > Call WaitFor(2) > > '送信クリック > For Each objLink In ie.document.Links > If InStr(objLink.outerHTML, "送信") > 0 Then > objLink.Click > Exit For > End If > Next > > End Sub > > > > > '指定した秒だけ停止する関数 > Sub WaitFor(ByVal second As Integer) > Dim futureTime As Date > > futureTime = DateAdd("s", second, Now) > While Now < futureTime > DoEvents > Wend > End Sub |
Message#40 2015年10月17日(土)09時25分 From: 菊池 幸之介 | 返事 削除 変更 |
VBAマスターのメッセージ(#39)への返事 > こちらで試してみてください。 > > > Sub yahoo() > Dim ie As InternetExplorer > > Set ie = CreateObject("internetExplorer.Application") > ie.Visible = True > ie.navigate "https://jp.mg5.mail.yahoo.co.jp/neo/launch?.rand=64q38e8rjip34#tb=w8o0z9sc" > Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE > DoEvents > Loop > > '2秒待ち > Call WaitFor(2) > > 'メールの作成クリック > For Each objLink In ie.document.Links > If InStr(objLink.outerHTML, "メールの作成") > 0 Then > objLink.Click > Exit For > End If > Next > > '2秒待ち > Call WaitFor(2) > > '宛先入力 > ie.document.getElementById("to-field").value = "xxx" > > '2秒待ち > Call WaitFor(2) > SendKeys "{TAB}" > > '件名入力 > ie.document.getElementById("subject-field").value = "件名" > > '2秒待ち > Call WaitFor(2) > > '送信クリック > For Each objLink In ie.document.Links > If InStr(objLink.outerHTML, "送信") > 0 Then > objLink.Click > Exit For > End If > Next > > End Sub > > > > > '指定した秒だけ停止する関数 > Sub WaitFor(ByVal second As Integer) > Dim futureTime As Date > > futureTime = DateAdd("s", second, Now) > While Now < futureTime > DoEvents > Wend > End Sub こちらのコードで実行しましたところ、送信できました! ありがとうございます! VBAマスターさん、気ずるさん、的確な助言を頂きありがとうございました。 とても勉強になります。 また、解決して頂いて早々ですみませんが サイト上から値を抽出するプログラムの件で新規スレッドを立てさせて頂きますので お力を貸して頂けたら幸いです。 よろしくお願い致します。 |
Message#39 2015年10月17日(土)03時52分 From: VBAマスター | 返事 削除 変更 |
こちらで試してみてください。 Sub yahoo() Dim ie As InternetExplorer Set ie = CreateObject("internetExplorer.Application") ie.Visible = True ie.navigate "https://jp.mg5.mail.yahoo.co.jp/neo/launch?.rand=64q38e8rjip34#tb=w8o0z9sc" Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop '2秒待ち Call WaitFor(2) 'メールの作成クリック For Each objLink In ie.document.Links If InStr(objLink.outerHTML, "メールの作成") > 0 Then objLink.Click Exit For End If Next '2秒待ち Call WaitFor(2) '宛先入力 ie.document.getElementById("to-field").value = "xxx" '2秒待ち Call WaitFor(2) SendKeys "{TAB}" '件名入力 ie.document.getElementById("subject-field").value = "件名" '2秒待ち Call WaitFor(2) '送信クリック For Each objLink In ie.document.Links If InStr(objLink.outerHTML, "送信") > 0 Then objLink.Click Exit For End If Next End Sub '指定した秒だけ停止する関数 Sub WaitFor(ByVal second As Integer) Dim futureTime As Date futureTime = DateAdd("s", second, Now) While Now < futureTime DoEvents Wend End Sub |
Message#38 2015年10月16日(金)22時18分 From: 菊池 幸之介 | 返事 削除 変更 |
菊池 幸之介のメッセージ(#37)への返事 > > メアドの前の部分はxxxでいいので、処理しているコードをそのままはりつけてみてください。 メアドの部分は xxx@ezweb.ne.jp です。 よろしくお願いします。 |
Message#37 2015年10月16日(金)22時09分 From: 菊池 幸之介 | 返事 削除 変更 |
> メアドの前の部分はxxxでいいので、処理しているコードをそのままはりつけてみてください。 こちらがソースになります。 よろしくお願いします。 Sub yahoo() Dim ie As InternetExplorer Set ie = CreateObject("internetExplorer.Application") ie.Visible = True ie.navigate "https://jp.mg5.mail.yahoo.co.jp/neo/launch?.rand=64q38e8rjip34#tb=w8o0z9sc" Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop '2秒待ち Call WaitFor(2) 'メールの作成クリック For Each objLink In ie.document.Links If InStr(objLink.outerHTML, "メールの作成") > 0 Then objLink.Click Exit For End If Next '2秒待ち Call WaitFor(2) '宛先入力 ie.document.getElementById("to-field").Value = "xxx" '2秒待ち Call WaitFor(2) '件名入力 ie.document.getElementById("subject-field").Value = "件名" '2秒待ち Call WaitFor(2) '送信クリック For Each objLink In ie.document.Links If InStr(objLink.outerHTML, "送信") > 0 Then objLink.Click Exit For End If Next End Sub '指定した秒だけ停止する関数 Sub WaitFor(ByVal second As Integer) Dim futureTime As Date futureTime = DateAdd("s", second, Now) While Now < futureTime DoEvents Wend End Sub |
Message#36 2015年10月16日(金)18時03分 From: VBAマスター | 返事 削除 変更 |
> 携帯のメールアドレスを入力していたのでgmailの方で試してみましたが同じでした。 メアドの前の部分はxxxでいいので、処理しているコードをそのままはりつけてみてください。 |
Message#35 2015年10月16日(金)17時29分 From: 菊池 幸之介 | 返事 削除 変更 |
> 色々なドメインのアドレスをいれても同じですか? 携帯のメールアドレスを入力していたのでgmailの方で試してみましたが同じでした。 |
Message#34 2015年10月16日(金)14時17分 From: VBAマスター | 返事 削除 変更 |
菊池 幸之介のメッセージ(#32)への返事 > > ということは宛名入力部分が問題ですね。 > > 自動入力したあとに、msgBox ie.document.getElementById("to-field").Valueで > > データが入力されているか確認してみてください。 > > 入力したデータが取得できれば問題ないということですが、それでも無理な場合は、 > > ちょっと原因が分からないですね。 > > > msgBox ie.document.getElementById("to-field").Valueで確認しましたところ、 > 正しい宛名がmsgboxに表示されましたがはやり送信はできないようです。 色々なドメインのアドレスをいれても同じですか? |
Message#33 2015年10月16日(金)10時44分 From: 菊池 幸之介 | 返事 削除 変更 |
> あと、問題があるとするとIEのバージョンかな > バージョン10にするなどバージョンを変更してうまくいくかもしれない。 IEバージョン10にしましたがサイト上で互換性のメッセージが出てきました。 |
Message#32 2015年10月16日(金)10時42分 From: 菊池 幸之介 | 返事 削除 変更 |
> ということは宛名入力部分が問題ですね。 > 自動入力したあとに、msgBox ie.document.getElementById("to-field").Valueで > データが入力されているか確認してみてください。 > 入力したデータが取得できれば問題ないということですが、それでも無理な場合は、 > ちょっと原因が分からないですね。 msgBox ie.document.getElementById("to-field").Valueで確認しましたところ、 正しい宛名がmsgboxに表示されましたがはやり送信はできないようです。 |
Message#31 2015年10月15日(木)20時21分 From: 気ずる | 返事 削除 変更 |
> Excelのバージョンは32bitでした。 あと、問題があるとするとIEのバージョンかな バージョン10にするなどバージョンを変更してうまくいくかもしれない。 |
Message#30 2015年10月15日(木)17時58分 From: VBAマスター | 返事 削除 変更 |
> @宛名自動入力、送信手動クリック > →できませんでした。 > > A宛名手動入力、送信自動クリック > →できました。 > > 送信ボタンの自動クリックはできていました! > 宛名自動入力に問題があるのでしょうか。 ということは宛名入力部分が問題ですね。 自動入力したあとに、msgBox ie.document.getElementById("to-field").Valueで データが入力されているか確認してみてください。 入力したデータが取得できれば問題ないということですが、それでも無理な場合は、 ちょっと原因が分からないですね。 |
Message#29 2015年10月15日(木)16時14分 From: 菊池 幸之介 | 返事 削除 変更 |
気ずるのメッセージ(#27)への返事 > 環境は問題ないように思えるけど、エクセルは64ビット版使ってます? > 64ビット版は不具合が多いので、可能であれば32ビット版に変更したほうがいいですよ。 Excelのバージョンは32bitでした。 |
Message#28 2015年10月15日(木)16時07分 From: 菊池 幸之介 | 返事 削除 変更 |
VBAマスターのメッセージ(#26)への返事 > まずは、宛名入力が原因なのか、送信クリックが原因なのか分ける必要があるので、 > > @宛名自動入力、送信手動クリック > A宛名手動入力、送信自動クリック > > でどちらができないのか確認してみてください。 @宛名自動入力、送信手動クリック →できませんでした。 A宛名手動入力、送信自動クリック →できました。 送信ボタンの自動クリックはできていました! 宛名自動入力に問題があるのでしょうか。 |
Message#27 2015年10月15日(木)11時15分 From: 気ずる | 返事 削除 変更 |
> 他のメールアドレスでも同じメッセージが出ました。 > > OSはWindows7、IEバージョンは11、Excelは2013です。 環境は問題ないように思えるけど、エクセルは64ビット版使ってます? 64ビット版は不具合が多いので、可能であれば32ビット版に変更したほうがいいですよ。 |
Message#26 2015年10月15日(木)06時48分 From: VBAマスター | 返事 削除 変更 |
まずは、宛名入力が原因なのか、送信クリックが原因なのか分ける必要があるので、 @宛名自動入力、送信手動クリック A宛名手動入力、送信自動クリック でどちらができないのか確認してみてください。 菊池 幸之介のメッセージ(#19)への返事 > 気ずるのメッセージ(#18)への返事 > > > 「<a href="/app/minty/sendconfirm" title="メールを送信 [Ctrl+Enter]" role="button" id="yui_3_2_0_1_14446958245284057">送信</a>」のid部分が抜けているから一緒かまでは判断できないかも。 > > for eachのexit forを消して他にも同じ条件のリンクがないか確認してみたらどうですか? > > > for eachのexit forを消して実行してみましたところ、1つ目のmsgboxで、 > <a title="メールを送信 [Ctrl+Enter]" role="button" href="/app/minty/sendconfirm">送信</a> > が表示され、2つ目のmsgboxで、 > <a tabindex="-1" title="送信済みメールフォルダー内のメール数:0件" class="rapid-noclick-resp" role="option" href="#" data-action="navigate" data-ylk="sec:fol_list" data-sec="fol_lst" data-rapid_p="5"><i>送信済みメール</i></a> > が表示されました。 |
更に前の20件を見る
昨日以降 2日前以降 3日前以降 4日前以降 5日前以降