Internet Explorerで開かれた画面に文字を入力したり、
ボタンをクリックすることをVBscriptで試しています。
IEのオブジェクトを作成して起動することはできたのですが、
起動済みのIEのオブジェクトを掴むことができません。
エラーが出てしまいます。
ちなみにIEのオブジェクトは複数開いていて、
タブは1個しか使ってません。
コードは以下のようなものです。
----------------------------------------------
dim obj,ie,win,sh
set sh = CreateObject("Shell.Application")
for each win in sh.Windows
if typename(win.document)="HTMLDocument" then
if win.document.title="IEのタイトル" then
set ie = win
end if
end if
next
ie.document.getElementsByName("名前1")(0).value
ie.document.getElementsByName("名前2")(0).value
ie.document.getElementsByName("名前3")(0).click
※IEのタイトル、名前1、名前2、名前3は
ソースからコピーしたため、間違いありません
----------------------------------------------
どうすればIEのオブジェクトを掴めるでしょうか?
ご存知の方、教えてください。
No.1ベストアンサー
- 回答日時:
win.document.title="IEのタイトル"
↑がTrueにならないということでしたら
vbsをShiftJISで保存してみてください。
私のPCではそれで動作しました。
No.3
- 回答日時:
既にNo.2さんが指摘しておられますが、「titleで比較せずに、URLで確認する」方法も選択できる方法を考えてみました。
ご質問者のお示しになった、スクリプトの中の以下の行
ie.document.getElementsByName("名前1")(0).value・・・①
No.2さんのご指摘どおり、①は実質的に意味はないセンテンスですが、この行の直前までを以下のURLのスクリプトに差し替えしたらどうなるか試してみてください。
スクリプトを保存する際は、No.1さんのご指摘のとおりShiftJIS形式で保存してください。
https://ideone.com/hv8Gnv
一応、タブタイトルとタブURLのどちらかで起動済みIEを検索できる仕様です。
タブタイトルまたはタブURLを指定して実行してください。
「指定のieを見つけました」というメッセージが表示されれば、「起動済みのIEのオブジェクトを掴めた」ということになります。
No.2
- 回答日時:
こんにちは
>エラーが出てしまいます。
エラー表示の際にエラーメッセージと行数や文字位置が表示されると思いますが、それらから原因は大分絞りこめるはずです。
No1様の指摘も一つの原因となりそうですが、titleで比較せずに、URLで確認することで、文字コードの問題は避けられるのではないかと想像します。
(URLに2バイト文字があると同様かもですが、エンコードしておけば…)
あと、ご質問には直接関係ありませんけれど、最後の3行目と2行目はvalue値を指定しているだけで(変数に代入したり何かに利用したりしていないので)、実質的には意味のないセンテンスになっていますね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- その他(パソコン・周辺機器) EXCELで「WEBオプションの対象ブラウザ」を変更する方法 2 2023/04/12 15:44
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- Chrome(クローム) グーグルクロムをマイクロソフト・エッジに切り替える方法 2 2022/06/20 10:08
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- InternetExplorer(IE) Microsoft edgeのIEモードを解除したいのですが。 3 2023/04/09 13:51
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
VBS(WSH)で開いたIEのウィンドウがアクティブにならない
Visual Basic(VBA)
-
Vbscriptで自分自身のウィンドウを最大化するには?
Microsoft ASP
-
VBScriptから指定URLを開く方法
Visual Basic(VBA)
-
-
4
VBSでブラウザ上のテキストボックスに文字列を打ち込み、ボタンを押す方法
Visual Basic(VBA)
-
5
起動しているIEをVBSで閉じるときの問題・・・
Visual Basic(VBA)
-
6
VBAでIEを開いて最大化したい。
Access(アクセス)
-
7
VBSで既に開いているIEにパスワードを送り込みたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
実行時エラー 3265「要求された...
-
エクセルのVBAの標準モジュール...
-
テキストボックス中の文字列の...
-
ある文字列が全て数字であるか...
-
Excelでフィルタをかけると警告...
-
VBScriptでファイルの日時順(降...
-
VBAからPDFファイルにパスワー...
-
VBAで作成するメール(開封確認...
-
PowerPointVBAでスライドマスタ...
-
EXCEL VBA オートシェイプナン...
-
VBからExcelのセルの書式設定を...
-
VBAでWebページにセルの値を入力
-
VBA:オートシェイプの線の長...
-
VBAで Set wb = Sheets(1).Cop...
-
Shell.ApplicationのNameSpace...
-
VBAでオプションボタンの設定
-
エクセルVBAでFor each文
-
エクセルマクロエラー「'Cells'...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
実行時エラー 3265「要求された...
-
VBAで既に開いている別アプリケ...
-
PowerPointVBAでスライドマスタ...
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルマクロエラー「'Cells'...
-
ある文字列が全て数字であるか...
-
VBAについてです。 初心者です...
-
VBScriptでファイルの日時順(降...
-
Excelでフィルタをかけると警告...
-
VBAからPDFファイルにパスワー...
-
VBで引数にDictionaryオブジェ...
-
このように書くべきですか? { ...
-
EXCEL VBA オートシェイプナン...
-
テキストボックス中の文字列の...
-
エクセルVBAでcode128のバー...
-
[VBA]CDOメッセージ送信エラー
-
オブジェクトが見つかりません
おすすめ情報