VB.NET(VB 2010 Express)でIE(Ver.9)をWebBrowserコントロールではなく直接操作しています。
下記のコードのように、あるサイトのトップページを表示し、それにユーザID、パスワードを入力し、ログオンボタンをクリックして次のページを表示します。
次のページはトップページと同じタブに表示されますが、これを別タブに表示するにはどうすればよいのでしょうか?ご教示頂きたくよろしくお願い致します。
objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate("https://xxxxxxx.co.jp")
'表示ページのソース読込み完了を待つ(略)
objIE.Document.all("ACCOUNT").Value = "yyyyyy" 'ユーザIDを入力
objIE.Document.all("PASSWD").Value = "zzzzz" 'パスワードを入力
objIE.Document.all("btn").Click() 'ログインボタンをクリック
'以下表示した次ページのソースを処理
No.4ベストアンサー
- 回答日時:
以下を test.vbs といった名前で保存後ダブルクリックで実行してみてください。
-- ここから
Set objIE = WScript.CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.Navigate("https://login.yahoo.co.jp/")
Do While objIE.Busy
WScript.Sleep 500
Loop
objIE.Document.login_form.login.Value = "yyyyyy" 'ユーザIDを入力
objIE.Document.login_form.passwd.Value = "zzzzz" 'パスワードを入力
objIE.Document.login_form.target = "_blank" '別ページに表示
objIE.Document.login_form.submit()
-- ここまで
私の環境(Win7+IE9)ではこれで別タブに「IDまたはパスワードが正しくありません」と表示されます。
ただセキュリティ設定により、ポップアップブロックが働く場合は「常に許可」を選ぶか、インターネットオプションのプライバシー→ポップアップブロック→設定に「login.yahoo.co.jp」を追加してください。
VBでもやっていることは変わらないはずですので、ポップアップブロックにご利用のURLを追加してみるとどうなりますでしょうか。
いつもサポートありがとうございます。
今回の回答にありましたように、ポップアップを許可するサイトに登録したところ、無事別タブで表示されるようになりました。
熱心にご支援頂き見事解決することができました。大変助かりました。ありがとうございまいました。
No.3
- 回答日時:
すみません。
formが余計でした。objIE.Document.FORM_301_01.ACCOUNT.Value = "yyyyyy" 'ユーザIDを入力
objIE.Document.FORM_301_01.PASSWD.Value = "zzzzz" 'パスワードを入力
objIE.Document.FORM_301_01.target = "_blank" '別ページに表示
objIE.Document.FORM_301_01.btn.Click() 'ログインボタンをクリック
この回答への補足
度々ありがとうございます。
何故か objIE.Document.FORM_301_01.target = "_blank" が効かないようですね。
問題の本アプリからではなく手動で操作する場合は、別タブで表示されるのですが。
また、妙案、代替案がありましたらよろしくお願いします。
No.2
- 回答日時:
No.1のは試してみましたか?
一応書いてみますが
objIE.Document.form.FORM_301_01.ACCOUNT.Value = "yyyyyy" 'ユーザIDを入力
objIE.Document.form.FORM_301_01.PASSWD.Value = "zzzzz" 'パスワードを入力
objIE.Document.form.FORM_301_01.target = "_blank" '別ページに表示
objIE.Document.form.FORM_301_01.btn.Click() 'ログインボタンをクリック
次ページの取得は一部間違っていました
Set Shell=CreateObject("Shell.Application")
for each win in Shell.Windows
if TypeName(win.document)="HTMLDocument" then
if win.document.URL = "https://xxxxxxx.co.jp/…" then
Set newObjIE = win
(以下略)
HTMLを見ますと ACCOUNT が2回出てくるのとouthtml()で何をしてるかが気になります。
この回答への補足
またまた、ありがとうございます。
No.1で教えて頂きましたように、クリックの前に次の行を挿入しましたが、挿入前と同様に次ページは前ページと同じタブに表示されます。
objIE.Document.FORM_301_01.target = "_blank"
また、No.2のobjIE.Document.form.FORM_301_01.ACCOUNT.Value = "yyyyyy"では、下記のエラーになります。
MissingMemberExceptionはハンドルされませんでした。
公開メンバー'form'型はHTMLDocumentClaa'に見つかりませんでした。
引き続きよろしくお願い致します。
No.1
- 回答日時:
VB.NETは使っていませんがWSHと同じ操作でいけると思いますので。
FORMに対してTAEGET属性を指定します。
例えば <FORM NAME=login ACTION=… となっていれば、
objIE.Document.login.target = "_blank"
をClick()の前に入れます。
これで別のページで表示されます。(別タブになるか別ウインドウになるかはわかりません)
注意点として、このobjIEでは「次ページの処理」はできません。
次ページが表示されているobjIEを取得しなければなりません。
やり方はこんな感じです。
Set Shell=Wscript.CreateObject("Shell.Application")
for each win in Shell.Windows
if TypeName(win.document)="HTMLDocument" then
if win.document.URL = "https://xxxxxxx.co.jp/…" then
Set newObjIE = win
あと気になるところとして、できればallではなく objIE.Document.login.ACCOUNT.Value とした方がよいと思います。
この回答への補足
回答ありがとうございます。
最初からHTMLソースをお示しすればよかったのですが、先に挙げましたコードで実行しているHTMLソースは下記のようになっています。インデントが付けられなくてすみません。
:
:
<FORM NAME="FORM_301_01" METHOD="POST" onSubmit="return outhtml(this)" TARGET="_top"
ACTION="/cgi-bin/s/dcw11111.cgi" AUTOCOMPLETE="off">
<INPUT TYPE="hidden" NAME="EVENT" VALUE="DCWGA301-01">
<INPUT TYPE="hidden" NAME="MENUNO" VALUE="00">
<INPUT TYPE="hidden" NAME="ACCOUNT" VALUE="">
<INPUT TYPE="hidden" NAME="PASS" VALUE="">
<TR>
<TD><b>口座番号</b></TD>
<TD><INPUT TYPE="text" NAME="ACCOUNT" MAXLENGTH=10></TD>
</TR>
<TR>
<TD><b>インターネットパスワード</b></TD>
<TD><INPUT TYPE="password" NAME="PASSWD" SIZE=42></TD>
</TR>
<TR>
<TD> </TD>
<TD>
<INPUT TYPE="submit" NAME="btn" VALUE="ログイン">
<INPUT TYPE="button" VALUE="クリア" onClick="sub_clear()">
</TD>
</TR>
</FORM>
:
:
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- PHP php 入力画面から確認表示画面へ情報の受け渡しについて。 1 2023/06/07 18:00
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- Visual Basic(VBA) VBA 複数のブックに同じ列を表示させる方法 2 2022/07/20 23:49
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- タブレット 第10世代 Fire HD 8 △(左向き)、〇、□のマークが表示されない 2 2022/12/18 17:02
- WordPress(ワードプレス) WordPressのダッシュボードに入れなくなりました。 サイトのURLの最後にwp-login.p 1 2022/11/04 18:38
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バッチファイルについて
-
デスクトップアプリでIDやパス...
-
「ネットワーク パスワード入...
-
スクリーンセーバーからの復帰
-
記号、パスワード入力
-
2ch、5chを閲覧したり書き込ん...
-
ラブホ
-
住所を貸すことについて 友人か...
-
山口組の6代目総組長の篠田建市...
-
知らない人に自分のフルネーム...
-
ヤクザの人に住所、電話番号、...
-
詐欺サイトで注文してしまった...
-
セッション保持日数
-
Yahoo IDがログインできません...
-
住所から住んでいる人の氏名を知る
-
ハッカーって本当にいるんですか?
-
個人情報について
-
コールセンターの仕事をしてい...
-
簡単ログインできない(>_<)
-
他人の『スマホのIPアドレスを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バッチファイルについて
-
デスクトップアプリでIDやパス...
-
エクセルVBA InputBoxで入力欄...
-
エクセルファイル、使用回数の...
-
「netplwiz」の入力をしないで...
-
パスワードを入力するとき目の...
-
Windows7でログオン時ユーザー...
-
F660Aの管理画面にログインでき...
-
「IDやパスワード入力で、最初...
-
「ネットワーク パスワード入...
-
WindowsLiveメールで送信ができ...
-
PCを買い替えて手こずり [起動...
-
win11の立ち上がりのpinを省略...
-
スクリーンセーバーからの復帰
-
ログイン画面の記憶について
-
記号、パスワード入力
-
ネットワークパスワードの入力
-
ELECOM フラッシュメモリーが開...
-
Windows8でのログインパスワー...
-
自働ログイン用cookie
おすすめ情報