
いつもお世話になっております。
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で質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) VBSでExcelファイル起動時、重複しても開くのを止めたい 1 2022/10/01 23:20
- HTML・CSS スマホでHTMLファイルを開いてリンク先へ移動させたいです 2 2023/03/04 18:06
- Chrome(クローム) グーグルクロームでプラウザーを2個開く件について 1 2023/08/03 16:04
- Windows 10 2つのウィンドウ選択時の表示について 10 2023/07/25 08:48
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- HTML・CSS トリミングで表示した画像をクリックで元どおりにしたい 3 2022/12/16 18:49
- Word(ワード) Google ドキュメントで改ページを挿入する方法 1 2022/05/25 19:22
- Chrome(クローム) インターネットショートカットをダブルクリックしてもWebページが開けなくなりました 2 2022/04/01 15:28
- JavaScript スマホ上で、左右スワイプで次のページに移動させたいです 2 2022/11/11 17:04
- 画像編集・動画編集・音楽編集 musescore3.5 で再生時、ページスクロールしない 1 2022/11/07 19:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワーポイントで参照ページを...
-
<IFRAME>でコンテンツ部分のみ...
-
「リロード」ボタンをページ内...
-
UserForm.showでマルチページ1...
-
エクセルVBAでマルチページの切...
-
DREAM WEAVER 4 フレーム
-
ランダムに、リンクコードを貼...
-
アクティブレポートの、ページ...
-
DreamWeaver8で作成したページ...
-
HP制作に最低限必要な事・・・?
-
リンク先へジャンプしてもオン...
-
VBAでWEBサーバー上に保存され...
-
ワンクッションページの構造
-
リダイレクト前のURLをブックマ...
-
何の違いですか?
-
カンマ区切り形式ではなく、セ...
-
エクセルで置換リストを別ブッ...
-
トロッファとは何ですか??
-
新型コロナウイルスオミクロン...
-
HPビルダーのフレームのリンク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワーポイントで参照ページを...
-
<IFRAME>でコンテンツ部分のみ...
-
エクセルVBAでマルチページの切...
-
書かれているURLと飛んだ先のUR...
-
TEX ページ番号について
-
UserForm.showでマルチページ1...
-
VBAでマルチページのページ指定...
-
ページの自動ジャンプを止めるには
-
リンク先へジャンプしてもオン...
-
アクセス元URLをばれないよ...
-
Excel2007 VBA で2ページ目PDF
-
ページ数が多いサイトのサイト...
-
ホームページビルダーのどこで...
-
アクティブレポートの、ページ...
-
テロップを日替わりで流したい...
-
素人とプロのページの違いとは...
-
ページ内の検索窓を作りたい。
-
検索結果を別ページのインライ...
-
サイトをリニューアルする際、...
-
alert文無いの文字化け
おすすめ情報