advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 14702 for VBA ������������ (0.003 sec.)
[[20190222103201]]
#score: 3410
@digest: 08a8c4e3ddf6ce30ca629ca02a9419f1
@id: 78718
@mdate: 2019-02-22T06:22:24Z
@size: 4975
@type: text/plain
#keywords: objinput (27437), futuretime (19520), waitfor (19277), objie (18186), 動制 (16883), buttonvalue (15241), k0222 (14426), iwebbrowser2 (13814), 止ca (13533), iebuttonclick (13533), autocomplete (12773), getelementsbyname (12525), 秒停 (12117), 数fu (11957), iewait (11199), ie11 (10794), getelementbyid (10572), document (9347), 前指 (7949), 索窓 (7889), getelementsbytagname (7206), readystate (5724), 待機 (5632), 、ie (4418), busy (3825), navigate (3302), internetexplorer (3085), ie (2458), doevents (2400), google (2288), input (2230), 作確 (2060)
VBAによるIE自動制御でIEバージョンによりエラーになります』(K0222)
お世話になります。 VBAによるIE自動制御でIEバージョンによりエラーになります。 VBAによるIE自動制御 以下のWEBページを参考にしました。 https://vba-code.net/ie/click-a-button/ 16行目 objIE.Document.getElementById("q").Value = "VBA" IE8(OS:WindowsXP)では正常に検索窓に「VBA」が"VBA"自動入力されますが、 IE11(OS:Windows10)では検索窓に「VBA」が"自動入力されず「実行時エラー"424" オブジェクトが必要です。」になります。 よろしく、お願いいたします。 ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' 'Sub GoogleSearch() ' ↓ 変更 Private Sub Command1_Click() Dim objIE As Object 'IE起動 Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True 'Googleに接続 objIE.navigate "https://www.google.co.jp/" 'IEを待機 Call IEWait(objIE) '検索窓に「VBA」と入力 'objIE.Document.getElementById("gbqfq").Value = "VBA" ' ↓ 変更 objIE.Document.getElementById("q").Value = "VBA" '5秒停止 Call WaitFor(5) '検索ボタンを押す Call IEButtonClick(objIE, "Google 検索") '5秒停止 Call WaitFor(5) 'IE終了 objIE.Quit Set objIE = Nothing End Sub 'ボタンを押す関数 Public Function IEButtonClick(ByRef objIE As Object, buttonValue As String) Dim objInput As Object For Each objInput In objIE.Document.getElementsByTagName("INPUT") If objInput.Value = buttonValue Then objInput.Click Exit For End If Next End Function 'IEを待機する関数 Function IEWait(ByRef objIE As Object) Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Loop End Function '指定した秒だけ停止する関数 Function WaitFor(ByVal second As Integer) Dim futureTime As Date futureTime = DateAdd("s", second, Now) While Now < futureTime DoEvents Wend End Function ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' < 使用 Excel:Excel2019、使用 OS:Windows10 > ---- ※誤りがありましたので訂正させてもらいました。 訂正前・・・「実行時エラー"424" オブジェクトが必要です。」 ' ↓ 訂正後・・・実行時エラー 'Busy' メソットは失敗しました:'IWebBrowser2' オブジェクト '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ''Busy' メソットは失敗しました:'IWebBrowser2' オブジェクト ' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' 'IEを待機する関数 Function IEWait(ByRef objIE As Object) Do While objIE.Busy = True Or objIE.readyState <> 4 DoEvents Loop End Function ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''' 申し訳ありませんでした。 (K0222) 2019/02/22(金) 11:14 ---- あー、googleはいろいろやっているので、HTMLがよく変わるんですよね。 今でもIE8なら正常動作するのであれば、ブラウザバージョンによって中身を変えてきた、ということですね。 とりあえず、IE11なら、以下に変えると通りました。 objIE.Document.getElementsBytagname("input")(2).Value = "vba" 2番目決め打ちしていますが、inputタグ数分ループしつつ、.Name が "q" のものを探して、これに代入する方が確実かと思います。 ソース上は、以下のようになっていました。 <input class="gLFyf gsfi" maxlength="2048" name="q" type="text" jsaction="paste:puy29d" aria-autocomplete="both" aria-haspopup="false" autocapitalize="off" autocomplete="off" autocorrect="off" role="combobox" spellcheck="false" title="検索" value="" aria-label="検索"> (???) 2019/02/22(金) 11:37 ---- 別案。 ID指定ではなく、名前指定なら、IE11でも動きましたよ。 この方が簡単で良さげ。 Sub test() Dim IE As Object Set IE = CreateObject("InternetExplorer.application") IE.Visible = True IE.Navigate "https://google.co.jp" Do While IE.Busy = True Or IE.readyState <> 4 DoEvents Loop IE.document.getElementsByName("q")(0).Value = "VBA" IE.document.forms(0).submit End Sub (???) 2019/02/22(金) 14:13 ---- ??? さん 解決することができました。 ご回答してもらいまして、ありがとうございました。 >googleはいろいろやっているので、HTMLがよく変わるんですよね。 はい、同じく思っていました。 >とりあえず、IE11なら、以下に変えると通りました。 > objIE.Document.getElementsBytagname("input")(2).Value = "vba" IE11で動作確認できました。IE8では動作確認できませんでした。 >別案。 ID指定ではなく、名前指定なら、IE11でも動きましたよ。 この方が簡 単で良さげ。 >IE.document.getElementsByName("q")(0).Value = "VBA" IE11、IE8の両方で動作確認できました。 下記の方法を使いたいと思います。 IE.document.getElementsByName("q")(0).Value = "VBA" お世話になりました。感謝申し上げます。 (K0222) 2019/02/22(金) 15:22 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201902/20190222103201.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97022 documents and 607970 words.

訪問者:カウンタValid HTML 4.01 Transitional