重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

色々試してみたのですができないので質問させてください。
エクセルのハイパーリンクであるホームページに飛びたいのですが
そこがトップから入らないとそのページに直接アクセスできません。
そこでバックグラウンドでIEのトップを開いてその後にリンクで飛ばしたいのですがうまくいきません。
JAVAスクリプトでトップページに戻しているようなのでリンクで飛ぶ前
にIEのJAVAスクリプトを切ってとんだ後にJAVAをONにできますでしょうか?
今はこんな感じです。

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = False
objIE.Navigate "http://www.google.co.jp/"
Application.Wait Time:=Now + TimeValue("00:00:03")
objIE.Quit
Set objIE = Nothing
End Sub

今はgoogleとしています。
IEで戻るを押せば行きたいところに入ることもできます。
飛んだ後に戻るを自動で押すようなこともできますでしょうか?

A 回答 (1件)

こんにちは。



google とかホームページとか書いていましたので、すぐに理解できませんでした。
要するに、最初のトップページの通過点を通らないと、次のところが開けないようなスタイルのページがあるわけですね。

>IEのJAVAスクリプトを切ってとんだ後にJAVAをONにできますでしょうか?
VBAでの、IE稼働中のJAVAScriptのON/OFFは、択一的で、IEを開いている限りはOFFにしたら、その後で戻らないのです。再び、別のIEオブジェクトを生成しないと、ONにならず、目的には満たさないと思います。

詳しくはないのですが、むしろ、Cookie などに書き込んで操作しているような気がします。

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
これは間違いです。BeforeDoubleClick イベントやCommandButton などにしておいて、

簡単に書けば、
objIE.Navigate "一番目のURL" =Top Page

'------------------------
Do While objIE.Busy
  DoEvents
Loop
Do Until objIE.ReadyState = 4
  DoEvents
Loop
'------------------------
objIE.Navigate "二番目のURL" (セル上に書かれた、URL)

とすればよいのではないでしょうか?

>IEで戻るを押せば行きたいところに入ることもできます。
>飛んだ後に戻るを自動で押すようなこともできますでしょうか?

それは、話が違いますね。
「戻る」の命令をVBAで送ればよいです。

objIE.GoBack
とします。

この回答への補足

>objIE.Visible = Falseで開いて二度目のobjIE.Navigateの後で
>Falseにすることで直接開いているように見せることができました。
TRUEでした。

補足日時:2010/01/13 20:00
    • good
    • 0
この回答へのお礼

ありがとうございました
見事に思い通りのことができました。
Application.Wait Time:=Now + TimeValue("00:00:03")
の曖昧なところもこうすればよかったのかと目から鱗でした

objIE.Visible = Falseで開いて二度目のobjIE.Navigateの後で
Falseにすることで直接開いているように見せることができました。

本当にありがとうございました。

お礼日時:2010/01/13 20:00

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