アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんは。いつもお世話になっております。

新たに開いたウインドウをVBAでキャッチ(?)して、
オブジェクトの中に入れたいのですがやり方が分かりません。

OS:XP、オフィス2003です。
http://oshiete.goo.ne.jp/qa/7643293.html
を参考に、

---------------------------------------------------------
Option Explicit
Sub test1()

Dim objIE As InternetExplorer

Set objIE = CreateObject("InternetExplorer.Application")

objIE.Navigate "http://www.goo.ne.jp/"
objIE.Visible = True

Do While objIE.Busy = True
DoEvents
Loop
Do While objIE.Document.ReadyState <> "complete"
DoEvents
Loop

’安否情報確認サイト 【J-anpi】をクリックする
For i = 0 To objIE.Document.Links.Length - 1
If objIE.Document.Links(i).href = "http://anpi.jp/" Then
objIE.Document.Links(i).Target = "_blank"
objIE.Document.Links(i).Click
Exit For
End If
Next i

objIE.Document.all("name").Value = "test" 'エラーになる

Set objIE = Nothing
End Sub
---------------------------------------------------------

を実行した時に、
http://anpi.jp/top
のページの“名前“をVBAで入れたいのですが、実行時エラー91になります。

理由は、
objIEには、http://www.goo.ne.jp/が入ってるから、
http://anpi.jp/topのページは操作できないのが原因だと思うのですが
Dim objIE2 As InternetExplorer
のように新たなオブジェクトを作って、
objIE2にhttp://anpi.jp/topを入れて操作するにはどうすればいいでしょうか?

最初から、
objIE.Navigate http://anpi.jp/top
を開いたり、
objIE.Navigate2 http://anpi.jp/top , 2048
で新たなタブを開く方法以外でお願いします。

Debug.Print objIE.LocationURL
を見ると、
http://www.goo.ne.jp/
が返ってきます。(そりゃそうか)

本当はこのサイトはサンプルで実際は、
vbaで
objIE.Document.Links(i).Target = "_blank"
objIE.Document.Links(i).Click
をクリックした場合、
新たに開いたウインドウをVBAでテキストに文字を入れたり、ボタンを押したりの操作する方法を知りたいのです。

objIE.document.Links(i).Click
このタイミングで、
objIEにhttp://anpi.jp/topがはいればいいなーって思ってます。

---------------------------------------------------------
Sub test2()
Dim objIE As InternetExplorer
Dim objIE2 As InternetExplorer

Set objIE = CreateObject("InternetExplorer.Application")
Set objIE2 = CreateObject("InternetExplorer.Application")

objIE.Navigate "http://www.goo.ne.jp/"
objIE.Visible = True

Do While objIE.Busy = True
DoEvents
Loop
Do While objIE.Document.ReadyState <> "complete"
DoEvents
Loop

’安否情報確認サイト 【J-anpi】をクリックする
objIE2.Navigate "http://anpi.jp/top"
objIE2.Visible = True

objIE2.Document.all("name").Value = "test" 'エラーになる

Set objIE = Nothing
Set objIE2 = Nothing
End Sub
---------------------------------------------------------
これにするしかないのでしょうか?

ご回答よろしくお願いします。

A 回答 (2件)

こんにちわ



すでに開いているIEに、オブジェクトをセットする

Dim myUrl As String
Dim myFlag As Boolean
Dim objIE As Object

myUrl = "http://anpi.jp/top"

For Each objIE In CreateObject("Shell.Application").Windows
If objIE.LocationURL = myUrl Then
myFlag = True
Exit For
End If
Next objIE
If Not myFlag Then
msgbox "目的のページはありません"
else
msgbox "objIEにセットされました"
End If
    • good
    • 0
この回答へのお礼

なるほど!すべてのブラウザをループして入れる方法ですね!
自分なりにアレンジしてうまくいきました。
ありがとうございました。勉強になりました。

お礼日時:2012/12/07 23:22

 ご質問文を拝見しますと、随分とIEの操作にはお詳しいようですので、こちらをどうぞ。



●二つ目のタブを閉じたい
http://okwave.jp/qa/q7830049.html
    • good
    • 0
この回答へのお礼

実はその質問に感化され質問してしまったのです。

お礼日時:2012/12/07 23:22

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