トップ回答者
IE11でVBAが正常に動かない点について

質問
-
EXCEL10にて交通費を自動で計算するシステムを作り使用しておりましたが、
IE11へのアップデートと同時に使えなくなりました。
Sub 交通費1()
Dim obj As Object, ie As Object
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = False
ie.navigate ("http://transit.loco.yahoo.co.jp/")
busywait ie
For k = 2 To 9
If Cells(k, 6).Value = "" Then Exit For
Set obj = ie.document.getElementByID("sFrom") →ここでエラー474になります。
obj.Value = Cells(k, 4).Value
Set obj = ie.document.getElementByID("sTo")
obj.Value = Cells(k, 6).Value
Set obj = ie.document.getElementByID("tsAvr")
obj.Click
Set obj = ie.document.getElementByID("tic")
obj.Click
Set obj = ie.document.getElementByID("searchModuleSubmit")
obj.Click
busywait ie
Set obj = ie.document.getElementsByTagName("ul")
Set obj = search_class(obj, "routeList")
Set obj = obj.getElementsByTagName("li")
Set obj = obj.Item(0).getElementsByTagName("li")
Set obj = search_class(obj, "fare")
Cells(k, 7).Value = obj.InnerText
Next
Range("G2:G9").Select
Selection.Replace What:="円", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
ie.Quit
End SubIE11でie.document.getElementByIDが使えないというところまでは分かったのですが、
どのように変更すれば動作するか分かりません。
どなたかお知恵をお貸し頂けないでしょうか。
回答
-
フォーラム オペレーターの星 睦美です。てんぷら5 さん、投稿ありがとうございます。
質問の内容に適切なフォーラムをご案内するために質問に書かれている document.getElementByID に関して確認してみました。document.getElementByID は IE11 の互換性の変更点 に、「従来の API の追加、変更、および削除」に、代わりに使用される機能とありましたので詳細は確認しておりませんが、トラブルシューティングの範囲から外してほかの問題で今回の質問と同様の事例がないか調べてみました。(この点に関して、てんぷら5 さんが調査された内容と矛盾するかも知れません。もし疑問な点がありましたら、こちらのスレッドに返信いただければと思います。)IE11 とnavigate メソッド、VBA」、URLが表示されない等をキーワードにインターネットで検索したところ、IE11 でVBA から指定したURL を取得できないという事例があるようです。
(参考情報)
・Internet Explorer automation not working with IE11: (英語)
http://stackoverflow.com/questions/25488988/internet-explorer-automation-not-working-with-ie11・VBAで指定したURLをInternetExplorerで表示させるサブルーチンの作成:
http://www.vba-ie.net/ie/subroutine2.html
今回の質問には上記のようなVBA に関する情報を探してみると手がかりを見つけやすいように思います。VBA に関する質問には Visual Basic for Application(VBA) フォーラム をお役立てください。
フォーラムでの回答が参考になりましたら投稿者からの[回答としてマーク] をお願いします。
※現在、フォーラムで新規投稿が一覧に表示されない事象があり、フォーラムのユーザーが返信しにくい状態となっております。
申し訳ありませんが、フォーラムでの一覧の表示が可能になるまでの間ご不便をおかけいたします。
フォーラム オペレーター 星 睦美 - MSDN Community Support
すべての返信
-
フォーラム オペレーターの星 睦美です。てんぷら5 さん、投稿ありがとうございます。
質問の内容に適切なフォーラムをご案内するために質問に書かれている document.getElementByID に関して確認してみました。document.getElementByID は IE11 の互換性の変更点 に、「従来の API の追加、変更、および削除」に、代わりに使用される機能とありましたので詳細は確認しておりませんが、トラブルシューティングの範囲から外してほかの問題で今回の質問と同様の事例がないか調べてみました。(この点に関して、てんぷら5 さんが調査された内容と矛盾するかも知れません。もし疑問な点がありましたら、こちらのスレッドに返信いただければと思います。)IE11 とnavigate メソッド、VBA」、URLが表示されない等をキーワードにインターネットで検索したところ、IE11 でVBA から指定したURL を取得できないという事例があるようです。
(参考情報)
・Internet Explorer automation not working with IE11: (英語)
http://stackoverflow.com/questions/25488988/internet-explorer-automation-not-working-with-ie11・VBAで指定したURLをInternetExplorerで表示させるサブルーチンの作成:
http://www.vba-ie.net/ie/subroutine2.html
今回の質問には上記のようなVBA に関する情報を探してみると手がかりを見つけやすいように思います。VBA に関する質問には Visual Basic for Application(VBA) フォーラム をお役立てください。
フォーラムでの回答が参考になりましたら投稿者からの[回答としてマーク] をお願いします。
※現在、フォーラムで新規投稿が一覧に表示されない事象があり、フォーラムのユーザーが返信しにくい状態となっております。
申し訳ありませんが、フォーラムでの一覧の表示が可能になるまでの間ご不便をおかけいたします。
フォーラム オペレーター 星 睦美 - MSDN Community Support