
いつもお世話になっております。
VBSで
Dim oIE
Set oIE = CreateObject("InternetExplorer.Application")
oIE.Navigate("https://xxxx.jsp")
等でhpを自動的にクリックしたりして動かしています。
そのページ内にあるリンクをクリックすると、別ウィンドウで立ち上がるページがあるのですが、そのページを動かしたりする事は出来ますでしょうか。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
[回答番号:No.1・2] の DOUGLAS_ です。
試しに、私のテストしたコーディングを掲載しておきます。
OKWave のトップページを開き、右上の宣伝をクリックして開いたページの最初のリンクをクリックするという作業です。
Option Explicit
Dim myShell, SWC, oIE
Set myShell = CreateObject("Shell.Application")
SWC = myShell.Windows.Count
Set oIE = CreateObject("InternetExplorer.Application")
oIE.Visible = True
oIE.Navigate ("http://okwave.jp/")
Do While oIE.Busy Or oIE.ReadyState <> 4
'WScript.Sleep 100
Loop
oIE.document.Links.Item(12).Click
WScript.Sleep 5000
myShell.Windows.Item(SWC + 1).document.Links.Item(1).Click
Set oIE = Nothing: Set myShell = Nothing
DOUGLAS_さん、サンプルまで用意して頂き、有難うございます。
お陰様で、解決する事ができました。
ほんと感謝です。
ありがとうございました。
No.2
- 回答日時:
[回答番号:No.1] の DOUGLAS_ です。
>まだ新しいページが開ききっていないのかと思い、
>sleepを入れたりして待機させてみましたが、
>新しいページのdocumentが取得できませんでした。
VBA でしたら
While oIE.Busy Or oIE.ReadyState <> 4: DoEvents: Wend
と書くところなのですが、WSH の場合
Do While oIE.busy Or oIE.Document.readyState <> "complete"
Loop
でしょうか?
ご参考までに、下記の [質問者からのコメント] の
>妥協作ということで、下記のコードになりました。
以下をご覧ください。
●Navigate2 メソッドで開いた新しいタブをVBAで操作するには
http://www.kotaete-net.net/Default.aspx?pgid=14& …
No.1
- 回答日時:
予め、Shell.Application で Window の数を数えて(SWC)おいてから、
>別ウィンドウで立ち上がるページ
を Item(SWC + 1) とすれば、
oIE.document.~~~
と同様に、
myShell.Windows.Item(SWC + 1).document.~~~
というような記述で
>そのページを動かしたりする事は出来ます
'-------------------------------------------------------------------
Dim myShell, SWC, oIE
Set myShell = CreateObject("Shell.Application")
SWC = myShell.Windows.Count
Set oIE = CreateObject("InternetExplorer.Application")
oIE.Navigate("https://xxxx.jsp")
'そのページ内にあるリンクをクリックする
oIE.document.~~~.Click
'そのページを動かしたりする
myShell.Windows.Item(SWC + 1).document.~~~
この回答への補足
ご回答ありがとうございます。
このような方法があるのだなと勉強になります。
上記で出来そうでしたので、早速おこなってみたのですが、
myShell.Windows.Item(SWC + 1).document
でdocumentを取得しようとすると
"オブジェクトがありません。": 'myShell.Windows.Item(..)'
というエラーが出てしまいます。
まだ新しいページが開ききっていないのかと思い、sleepを入れたりして待機させてみましたが、新しいページのdocumentが取得できませんでした。
ただ、myShell.Windows.Count をリンクを開く前に取得し、
新しいページのリンクを開いた後に、myShell.Windows.Countを取得するときちんと +1されておりました。
また、+1 せずに myShell.Windows.Item(SWC).document
とすると、リンクを開く前の元のdocumentは取得する事が出来ましたので、方法はあっていると思うのですが。
なぜか新しいページが取得できないみたいです。
そのページが特殊だからでしょうか。社内サイトのページなのですが。。
上記のような情報で何か分かる事ありますでしょうか。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2007 VBA で2ページ目PDF
-
エクセルVBAでマルチページの切...
-
画像上をクリックする絵本風ペ...
-
パワーポイントで参照ページを...
-
トップページの順位が下がった
-
アクセス解析。「直前に見てい...
-
IBMホームページビルダーで2つ...
-
ページの自動ジャンプを止めるには
-
巡回置換と交代群について
-
リンクを送るとは?
-
txtファイル内の指定の単語の数...
-
ホームページビルダー16のペー...
-
word 編集の制限 保護されたま...
-
googleの検索結果で、店名が出...
-
トロッファとは何ですか??
-
【敬語】お掛けしてもよろしい...
-
トンカツ屋のソース差しのゴム
-
ビルダーでの文字化け。
-
スクロールバーが表示されない...
-
Wordのテンプレートに上書きす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントで参照ページを...
-
<IFRAME>でコンテンツ部分のみ...
-
BookBlock.jsで左開きにする方法
-
エクセルVBAでマルチページの切...
-
VBAでマルチページのページ指定...
-
書かれているURLと飛んだ先のUR...
-
リンク先へジャンプしてもオン...
-
UserForm.showでマルチページ1...
-
ページの自動ジャンプを止めるには
-
リダイレクト前のURLをブックマ...
-
アクティブレポートの、ページ...
-
アクセス解析。「直前に見てい...
-
WEBページ切り替え、Power Poin...
-
ランダムに、リンクコードを貼...
-
VBAでWEBサーバー上に保存され...
-
フレーム内の別々のサイトの情...
-
HP制作に最低限必要な事・・・?
-
DreamWeaver8で作成したページ...
-
TEX ページ番号について
-
スクロールボックスを作成したい
おすすめ情報