![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?e8efa67)
目的のタブページのオブジェクトを取得することに成功したのですが、質問があります。
コードはVBSで書いています。
Dim objIE
Set Shell=Wscript.CreateObject("Shell.Application")
for each tmp in Shell.Windows
if TypeName(tmp.document)="HTMLDocument" then'HTMLDocumentかつ
if tmp.document.title="Google" then'そのページのタイトルが「Google」なら
set objIE=tmp'代入
end if
end if
Next
if objIE="" then
WScript.Echo("目的のページが表示されてないっぽいです")
WScript.Quit
end if
'この時点で、objIEがその目的のページでのオブジェクト
ここで、
objIE.alert("hoge")とできないのはどうしてなのでしょうか?
alertはjavascriptの関数?だからですか??
でも、objIE.document.write("hoge")で、documentオブジェクトが使えるのはどうしてなんですか?
documentオブジェクトはjavascirptのオブジェクトじゃないんですか?
それともう1つ、上記コードの場合ですが、JSの場合
Shell.Windows.item(0)というので参照?できるっぽいですが、itemというメソッドはjavascirptだけのものなのでしょうか?vbsでは使えないのですか?何故なんですか?同じcomオブジェクトを参照してるんじゃないんですか?(?)
どのオブジェクトがどれで、どのメソッドがどれなのかわからなくなります。
あと1つだけ!
上記コードでの、tmp.documentとはなんなのでしょうか?HTMLDocumentとは・・w
頭が混乱してます。どなたか回答よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
≫alertはjavascriptの関数?だからですか??
自分もなんとなく「objIE直属の関数は使えない」という認識でいましたが、
改めて調べてみると、
objIE.document.parentWindow.alert("test")
とすることで呼び出せるということを知りました。
alertはブラウザのwindowオブジェクトの関数ですが、
このwindowとobjIEの内部的な違いで直接は呼び出せないが、
documentからwindowへ逆にたどることで使えるということのようです。
≫itemというメソッドはjavascirptだけのものなのでしょうか?vbsでは使えないのですか?
使えます。
For i = 0 to Shell.Windows.Count - 1
Set tmp = Shell.Windows.Item(i)
とすれば同じになります。
VBSでは1行で書けてわかりやすいのでFor Eachが好まれるのだと思います。
tmp.document はブラウザのJavaScriptのdocumentと同じです。
HTMLDocumentは形式です。
VBで Dim 変数名 As の後ろに書くのと同義です。
Shell.Windowsにはエクスプローラなども含まれます。
試しにマイコンピュータを開いた状態で、Forの後ろに
WScript.Echo TypeName(tmp.document)
と入れて実行してみてください。
HTMLDocument以外のものが表示されるはずです。
エクスプローラでは tmp.document.title が使えないので
まずIEを特定するために最初に型判定をしているのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルVBAでオブジェクトが必要です 2 2022/09/10 16:37
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) 配列にしたセル範囲でのコメントがあるかどうかを取得するコードの書き方 2 2022/09/17 05:09
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル2010のvbaについて
-
JSPの処理の途中で、JavaScript...
-
VB.NET2003 テキストボックスに...
-
if(1){...}とはどういうことで...
-
あるurlが存在する(?)かどう...
-
ページを一回だけリロードさせ...
-
PowerPointで時計表示
-
javascriptからサーバサイドの...
-
PHPができればJavaScriptは...
-
ステップ実行ででは出ないエラ...
-
エクセルVBA/ Formatで文字列が...
-
Schemeでのリスト操作
-
初心者です。gulpでコンパイル...
-
Access VBAで、数字だけをチェ...
-
星型評価スターレーティングの...
-
onload onunload onbeforeunloa...
-
動的ファイルの最終更新日を取...
-
Javascriptエラーの原因が分か...
-
JavaScriptを使用して、クライ...
-
直下のディレクトリのファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
エクセル2010のvbaについて
-
画面間でのJavaScrip...
-
クラス デフォルトプロパティの...
-
evtとは
-
javaScriptでグローバル変数に...
-
PHPで定義した変数を引数として...
-
jquery か javascript で json ...
-
【javascript】プロパティ?オ...
-
for each for in
-
JavascriptのDOMについて
-
イベントリスナに登録される fu...
-
フォルダ内のファイル名を取得...
-
文字を移動させその位置を表示...
-
CSSのクラスを動的に変更 classで
-
jQueryで、listの要素数を取得...
-
javascript 親オブジェクトと子...
-
VBSを学ぶ前に、、、
-
Ajaxのプログラムをオブジェク...
おすすめ情報