none
IE11でVBAが正常に動かない点について RRS feed

  • 質問

  • 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 Sub

    IE11でie.document.getElementByIDが使えないというところまでは分かったのですが、

    どのように変更すれば動作するか分かりません。

    どなたかお知恵をお貸し頂けないでしょうか。

    2015年12月18日 5:55

回答

  • yahoo側で sfrom は全て小文字なので、Fを小文字にしたら動かないですかね。

    IE8からIDだけ Case-Sensitive になっているので、今までは動いていた可能性がありそうです。
    https://msdn.microsoft.com/en-us/library/ms536437(v=vs.85).aspx
    • 回答の候補に設定 星 睦美 2015年12月25日 7:02
    • 回答としてマーク てんぷら5 2016年1月8日 7:58
    2015年12月21日 9:27
  • フォーラム オペレーターの星 睦美です。てんぷら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


    • 編集済み 星 睦美 2015年12月18日 8:13 編集
    • 回答としてマーク てんぷら5 2016年1月8日 7:58
    2015年12月18日 8:09

すべての返信

  • フォーラム オペレーターの星 睦美です。てんぷら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


    • 編集済み 星 睦美 2015年12月18日 8:13 編集
    • 回答としてマーク てんぷら5 2016年1月8日 7:58
    2015年12月18日 8:09
  • yahoo側で sfrom は全て小文字なので、Fを小文字にしたら動かないですかね。

    IE8からIDだけ Case-Sensitive になっているので、今までは動いていた可能性がありそうです。
    https://msdn.microsoft.com/en-us/library/ms536437(v=vs.85).aspx
    • 回答の候補に設定 星 睦美 2015年12月25日 7:02
    • 回答としてマーク てんぷら5 2016年1月8日 7:58
    2015年12月21日 9:27