![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_01.png?5a7ff87)
目的のタブページのオブジェクトを取得することに成功したのですが、質問があります。
コードは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ランキング
-
ローカルのレジストリを読みたい
-
javascritの(e)または(event)に...
-
画面間でのJavaScrip...
-
JSの「document.getElementById...
-
タブブラウザで focus() を実...
-
javaScriptでグローバル変数に...
-
Webページ中の javascript をVB...
-
JSPの処理の途中で、JavaScript...
-
JavaScriptで ブラウザの閉じる...
-
gas 全角数字を半角数字に変換
-
VB.NET2003 テキストボックスに...
-
正整数の半角数字かどうか判定する
-
jQuery ui Datepicker 明日以降...
-
if(1){...}とはどういうことで...
-
htmlのfileタグに自動で値を入...
-
計算結果が毎回違う。
-
javascript で外部サイトにデー...
-
PDFフォームで条件つき金額を表...
-
テキストエリア内のカーソル位...
-
Visual Basic 6.0 のテキストボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローカルのレジストリを読みたい
-
Webページ中の javascript をVB...
-
画面間でのJavaScrip...
-
javaScriptでグローバル変数に...
-
フォルダ内のファイル名を取得...
-
CSSのクラスを動的に変更 classで
-
イベントevt?evt.target:event....
-
タブブラウザで focus() を実...
-
event.srcElementの動的設定
-
エクセル2010のvbaについて
-
jquery か javascript で json ...
-
【javascript】プロパティ?オ...
-
JavaScriptの仕様(ECMA-262以外)
-
PHPで定義した変数を引数として...
-
javascriptでオブジェクトのメ...
-
ASP.NETでURLにマッピングされ...
-
JavaScript 日数計算の関数で演...
-
VBAの引数の指定 カッコとイコ...
-
JavaScriptでオブジェクトを識...
-
jQueryで、listの要素数を取得...
おすすめ情報