プロが教えるわが家の防犯対策術!

Windows7 SP1、 IE11です。
以下のVBスクリプトで、①を消して②を書いたときは動くのですが、
②を消して、①を書いたときはエラーになります。
http://syanai.co.jp/は、社内イントラのサイトです。
エラーは、Visibleをアクセスした行に対して、
「そのインターフェイスは認識されません。コード:800706B5」

Set objIE = CreateObject("InternetExplorer.Application")
①objIE.Navigate2 "http://syanai.co.jp/"
②objIE.Navigate2 "http://www.yahoo.co.jp/"
WScript.Sleep 5000
objIE.Visible = True

社内イントラのサイトに対して、Visibleを使いたいのですが、
何かうまい手はないでしょうか?

質問者からの補足コメント

  • つらい・・・

    信頼済みサイトには、社内イントラのサイトは入れておりません。

      補足日時:2015/12/10 09:38

A 回答 (5件)

同じ環境が作れないので・・・。


こんな情報がありました。

IEのオブジェクトをCreateObjectではなく、GetObjectで作成する。
以下、サンプルです。

ClsIDの値ですが、レジストリの情報で、
\HKEY_CLASSES_ROOT\InternetExplorer.Application\CLSID
の値を設定します。


------ 以下サンプル -------------
Const ClsID = "{0002DF01-0000-0000-C000-000000000058}"
Dim objIE

Set objIE = GetObject("new:" & ClsID)
objIE.Navigate2 "http://syanai.co.jp/"
WScript.Sleep 5000
objIE.Visible = True
    • good
    • 0

愚問ですが、「ローカルイントラネット」の「サイト」も設定されていませんよね?



海外のサイトにも同様の問題が提起されていましたが、残念ながら解決に至るものがみつかりませんでした。

あと、以下を試してみてください。
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate2 "http://syanai.co.jp/"
Do While objIE.Busy = True Or objIE.ReadyState <> 4
WScript.Sleep 100
Loop
objIE.Visible = True
    • good
    • 0
この回答へのお礼

お恥ずかしいですが、まさに「愚問」に該当してしまいました。ローカルイントラネットからサイトを外すと、Visibleにアクセスできるようになりました。しかし、*.kaisya.co.jpという形で入っておりまして、社内システムもいろいろあるので、この指定を削除するわけにはいきません。watashi-no-server.kaisya.co.jpだけは、ローカルイントラネットの例外にするというような都合のよい指定はできないものでしょうか?
あと、ローカルイントラネットに*.kaisya.co.jpが指定されている場合、試すように指示していただいたコードでも、やはり、Visibleはアクセスできませんでした。

お礼日時:2015/12/11 10:15

AN-2です。

申し訳ない、エクセルVBAと勘違い

VB6までは VB使ってたんですが、.netフレームに成って、VB長らく使って無くて
IEに関して、どうかわかりかねますが
http://pckowaza.web.fc2.com/html/vbdotnet_config …
ってことなんですが・・・

要は、IEのモジュールを使う訳ですが、そのモジュールのいる場所がマシンによって変わる、無い時はインストルー作業で、dllを送り込む(その時に権利が有るとかないとか・・・)
ってことなんですが、この辺がVBのめんどくさいところで・・・・
    • good
    • 0
この回答へのお礼

おそらくそのようなことかと思いました。でも、アドバイス、ありがとうございます。

お礼日時:2015/12/11 10:07

>VisibleをアクセスしてもエラーにならないPCがあります。


同じコードに対して、動くPCと そうでない PCが有るという事ですか?
それと、前提として、単独でIEを起こして、社内ページは表示できるのですね?

エラーの出るPCで、参照設定の htmlとコントロール オブジェクトを 外して 保存。
開いて、先ほど消したオブジェクトを参照する。

これで、コードを走らせてみてください。

これで、治れば、本来エクセルのVBAは VBなどと違って、インストール作業がなく、他のマシンに移植する時、楽なのですが・・・・この参照設定が 曲者で・・・・

これは、当方でも起きている問題です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
同じコードに対して、動くPCとそうでないPCがあります。
単独でIEを起動すれば、社内ページは表示できます。

「参照設定の htmlとコントロール オブジェクトを外して保存。開いて、先ほど消したオブジェクトを参照する。」というのは、
私が質問に記述したコードで、①や②の行を削除して、保存して、実行することなのでしょうか?たいへん申し訳ないのですが、おっしゃることが理解できません。もう少し、説明をしてくださらないでしょうか?よろしくお願い致します。

お礼日時:2015/12/10 11:28

IE11の「インターネットオプション」


「セキュリティ」
「信頼済みサイト」
「サイト」
ここに、社内イントラのサイトが登録されていませんか?
もし登録されていれば、削除してみてください。
    • good
    • 0
この回答へのお礼

gao57830さん
信頼済みサイトには入れていません。逆に、信頼済みサイトに入れているPCで、VisibleをアクセスしてもエラーにならないPCがあります。何か他の条件があるのではないでしょうか?

お礼日時:2015/12/10 09:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!