例えば、asahi.comのホームページの左下の方に、CNNへのリンクがあり、マウスでクリックすると、新しいウィンドウで開きます。HTMLは以下の通りです。
<a href="http://www.cnn.co.jp/" target="_blank">CNN</a>
これをVista+IE7の環境で、Excel 2002のVBAプログラムでクリックすると、「キキッ」とブレーキ音のような音がしてリンクが開けません。
プログラムは以下の通りです(話を簡単にするために、保護モードとポップアップブロックは無効にしています)。ここではVBAの例ですが、VB.NET(2008)でも結果は同じです。
(インデントが上手くいかないので見にくくてすみません。)
===================================================
Sub test()
Dim IE As Object
Dim Anchor As Object
'asahi.comを開く
Set IE = CreateObject("InternetExplorer.application")
IE.Visible = True
IE.navigate "http://www.asahi.com/"
'更新終了まで待つ
Do While IE.Busy
DoEvents
Loop
Do While IE.Document.ReadyState <> "complete"
DoEvents
Loop
'CNNへのリンクを探す
For Each Anchor In IE.Document.GetElementsByTagName("A")
If Anchor.InnerText = "CNN" Then
Exit For
End If
Next Anchor
'リンクをクリック
Anchor.Click
End Sub
===================================================
同じプログラムを、Windows XP+IE6の環境で実行すると、問題なく別ウィンドウでリンクが開きます。
何かセキュリティの設定のような気がするのですが、関係ありそうなセキュリティの設定を緩めてみても結果は同じでした。
なお、リンク(<A>)だけでなく、フォームのボタンをクリックすると別窓が開くような場合でも、同じように開けません。
解決策がお分かりの方、ぜひ教えてください。
お礼
当面の問題解決方法を教えていただきました。他に回答もつかないようですので、この方法しかないようですね。どうもありがとうございました。
補足
ありがとうございました。 信頼済みサイトに登録したところ、新しいウィンドウで開くようになりました。 (たぶんご紹介いただいたサイトで解決している不具合は、私の不具合とは別で、Navigateメソッドで新しいIEが立ち上がってしまう、という問題のようです。それは保護モードを解除することで回避していました。) 信頼済みサイトの登録で解決できるのは分かりましたが、欲をいえば、問題が起きるたびに信頼済みサイトに追加していくのはちょっと手間がかかるのと、必ずしも全面的に信頼したくないサイトの場合にどうするかという問題があります。 設定の変更等で解決する方法がお分かりの方、引き続き回答をお待ちしています。