
はじめまして。VBAの初心者です。
現在、エクセルVBAを用いてIEにログインするコードを作っています。
で、他のページはうまくいったのですが、
https://www.wnp.waseda.jp/portal/portal.php
このホームページだけは他のページと同じやり方でやっても、フォームに文字を入力することができません。
ちなみに以下のコードを記述しましたがうまくいきませんでした。
'IEの起動
Dim objIE As Object '変数を定義します。
Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
objIE.Visible = True '可視、Trueで見えるようにします。
'処理したいページを表示します。
objIE.Navigate "https://www.wnp.waseda.jp/portal/portal.php"
'ページの表示完了を待ちます。
While objIE.ReadyState <> 4 Or objIE.Busy = True '.ReadyState <> 4の間まわる。
DoEvents
Wend
objIE.Document.Form1("loginid").Value ="私のID" '←ここでエラーがでます。
(1)なぜ他のHPと同じようにはいかないかという点と、できれば、(2)うまくいくコード、を教えていただければ嬉しいです。
よろしくお願いします。
No.2ベストアンサー
- 回答日時:
>エクセルVBAを用いてIEにログインするコードを作っています
ということで、「コツ」と申しますか、2点ほど、基本的な「ワザ」みたいなことがあります。
1)アクセス する WEBページ の htmlソース を見る。
2)「objIE.Document」を ウォッチ式 に追加し、ステップ イン デバッグ しながら、配下の プロパティ などの値の変化を見る。
>フォームに文字を入力することができません。
お示しの URL の ソース をご覧いただくと一目瞭然ですが、当該 ページ には
<FRAMESET ~~><FRAME ~~><FRAME ~~></FRAMESET>
というような html が書かれています。
ここで、お尋ねの ログインページ の本当の アドレス は
src="./portalLogin.php?ERRFLAG=1&LoginID=&HID_P14=JA"
の部分に書かれていますので、
>'処理したいページを表示します。
の段階で、
objIE.Navigate "https://www.wnp.waseda.jp/portal/portal.php"
ではなくて、
objIE.Navigate "https://www.wnp.waseda.jp/portal/portalLogin.php …
としてみてください。
次に、この ページ の htmlソース を見てみると「"ログインID"」や「"パスワード"」の周辺に「NAME="loginid"」や「NAME="passwd"」というような ソース が見て取れます。
従って、
'処理したいページを表示します。
objIE.Navigate "https://www.wnp.waseda.jp/portal/portalLogin.php …
'ページの表示完了を待ちます。
While ~~ Wend
objIE.Document.getelementsbyname("loginid")(0).Value = "私のID"
objIE.Document.getelementsbyname("passwd")(0).Value = "私のpasswd"
objIE.Document.getelementsbyname("frmLogin")(0).submit
とした後に、再度
'処理したいページを表示します。
objIE.Navigate "https://www.wnp.waseda.jp/portal/portal.php"
としてみられたらいかがでしょうか?
なお、私は「wnp.waseda.jp」の ID 等を有しておりませんので、これから先のことにつきましては、冒頭の(1)(2)をご参考になさってみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jpgraphで表示されない
-
PHPやjavascriptを無効にする方法
-
csvデータをテーブル表示、指定...
-
phpプログラムについて
-
PHPで新しいウインドウで開く命...
-
フォントの色を変えるには?
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
バッチを用いたフォルダの自動移動
-
現在位置より2つ上のディレク...
-
unlinkでどうしてもファイルが...
-
日付と年月日を選択するコード...
-
URLが.PHPってどういう...
-
phpの処理中に画面表示ををする...
-
aspのページが表示できません
-
.phpファイルが、表示されない
-
makefile でファイルをコピーす...
-
mysql文字化けについて
-
Localeクラスについて
-
ファイル一覧を表示しその画面...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPで新しいウインドウで開く命...
-
リンク先を隠す方法はないでし...
-
phpからjsへ
-
設定した時間だけ実行されるプ...
-
PHPからJavaScriptへJSONでデー...
-
htmlからPHPを呼び出す方法につ...
-
■URLのエンコードについて
-
検索結果の表示画面を作成した...
-
画面が真白
-
処理中の表示について
-
WinXP PHP5 Apache2 初期設定で...
-
文字列関数をうまく表示させたい
-
PHPソースと、実行結果を表示し...
-
phpのincludeで表示を変化させたい
-
PHPでez-web対応画像表示
-
PHPでTELNETを実装できる?
-
ページを開いて何秒か?
-
静的HTMLにRDFを表示させる方法...
-
あるHPにエクセルのVBAから入力...
-
自サイトや他サイトから一部抽...
おすすめ情報