Windows7 もサポートが2020年1月14日で
終わってしまうとの記事を読み、
家のパソコン3台をWindows7からWindows10に
アップデートしました。
まだまだ、無料でアップデートできるんですね。
メインで使っているPCは、プログラミング後の動作チェックのため
Windows7を残す必要があり、バージョンアップを見送りました。
どうせなら、あまり使ってないPCをWindows7に残すべきでしたが、
何と言っても、古いノートPCたちなので、
ちゃんとWindows10にできるか、不安もあり、
主に使っているメインPCより、たまに使っていたり、
納品前ソフトの動作チェックに使っているパソコンから先に
アップデートしてしまったのでした。
起きた問題:Excel のマクロが動かなくなった・・・
Windows7 + Excel 2013 で VBA で組んでいたマクロも、
ちゃんと動いていたのですが、
ちょっと手直ししようと、コードをいじったら、
実行時に、
「このオブジェクト ライブラリの機能はサポートされていません」
といったエラーとともに、
実行が止まってしまう問題が発生してしまいました。
コードもいじっていないし、
ライブラリの参照も変えていない、
VBEによると、該当箇所は、
1 2 3 4 |
Function xxx(objIE As InernetExplorer, xxx Dim htmlDoc as HTMLDocument Set htmlDoc = objIE.document |
の4行目の Set htmlDoc = objIE.Document の部分。
なんでなの?
結局、原因は不明なままですが、なんか、
使えるようになったので、
記しておきます。
やった対応
「えっ、InternetExplorer の
Document メンバーなくなったの?」
なんて、思いましたが、そんなことありませんでした。
どうも腑に落ちないのですが、
エラーに関係ありそうなライブラリへの参照を、
一旦はずして、保存・終了し、
再度、ファイルを開いて、
もう一回ライブラリの参照をチェック入れたら、
治りました。
意味不明ですが、何かの役に立てばと、書いておきます。
手順1
エラーのでたオブジェクトが、
InternetExplorer か、HTMLDocument だと思ったんで、
該当する参照である
Microsoft HTML Object Library
Microsoft Internet Controls
の2つを一旦チェックを外しました。
まず、VBE(Visual Vasic for Application の開発環境)の
メニュー「ツール→参照設定」を開きます。
Microsoft HTML Object Library
Microsoft Internet Controls
の2つのチェックを外して、「OK」で確定します。
手順2: 一旦、Excelファイルを閉じて、開き直します。
手順3:参照を再設定をします
手順1ではずした、
Microsoft HTML Object Library
Microsoft Internet Controls
をもう一度チェックを入れます。
選択中のライブラリはリストの先頭に
かたまって表示されていますが、
チェックを外したライブラリは、
大量のライブラリとともに、
ABC順で並んでいるのでご注意ください。
「OK」で確定したら、
その後、マクロでエラー発生せず、
実行することができました。
まとめ
原因不明なため、他の環境で同じように直るかわかりませんが、
勝手な推測だと、
同じパソコンでも、OSを再インストールしたような状態に
なったため、ライブラリが上手く検索できなくなったのかな
って、思ってます。
OSが変わったことにより、
参照先のバージョン名が違ったり、
はたまた、ライブラリーが変わっていたり
していたら、実際に、参照先を変えたり、
コードを変更したりの作業が
必要になることもあるかもしれません。
コメント
感謝、感謝、ありがとうございます。
まったく同じのどんぴしゃりの症状と解決策でした。
WIN7の最終日直前の2020年1月13/14日にWIN10にUPGRADEして、15日に「Set htmlDoc = objIE.document」のオブジェクトエラーに出くわしました。
貴記事のお蔭で自作のWEBスクラッピングの機能が回復できました。
御礼申し上げます。
尚、WIN10へのUPGRADEは、以前に無断でMICROSOFTに更新させられていましたが、その後のPC不具合でLET’NOTEの延長保証が切れる直前に不具合修理をして貰ったら、SSD交換で元のWIN7に戻ったまま使用しておりましたが、20年1月段階でもUPGRADE可能でした。
尚、要件として以前に一度WIN10にUPGRADEをしている機材という条件があるようです。(意図せず上手く条件に合っていたようです。)