質問: "XXXXXXXXXX" 'id="user_pass"にパスワードを入力 Xにそれぞれログインとパスワードを書いて実行しましたが、上記のエラーが出てきて失敗しました。 分かる方、ご教示願います。
回答: JWNET[Portal]のソースはちゃんと確認されたのでしょうか? 1. ログインフォームそのものが`https://www.jwnetweb.jp/wusr/index.html`内には存在せず、`iframe`で読み込まれています。iframe内のドキュメントで探索しないと見つかりません。 2. idが`username`・`user_pass`・`loginform`・`user_login`・`user_password`となっている要素は存在しません。IDとパスワードはNameが設定されているため、`getElementsByName`を使用すれば取得できるでしょう。 上記以外のもんだ点として、手元で試したとき`https://www.jwnetweb.jp/wusr/index.html`からiframe内の要素にアクセスできませんでした。 iframeで呼ばれているページを直接開けば変更出来るようですが、アカウントを持っていないため詳しくは試していません。 質問の修正依頼 ======== ``` Sub logIn() Dim objIE As InternetExplorer 'IEオブジェクトを準備 Set objIE = CreateObject("Internetexplorer.Application") '新しいIEオブジェクトを作成してセット objIE.Visible = True 'IEを表示 Dim strUrl As String '次ページのURL strUrl = "https://www.jwnetweb.jp/wusr/index.html" objIE.navigate strUrl 'IEでURLを開く Const READYSTATE_COMPLETE = 4 Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE '読み込み待ち DoEvents Loop Dim htmlDoc As HTMLDocument 'HTMLドキュメントオブジェクトを準備 Set htmlDoc = objIE.document 'objIEで読み込まれているHTMLドキュメントをセット htmlDoc.getElementById("username").Value = "XXXXXXXXXX" 'id="user_login"にユーザー名を入力 htmlDoc.getElementById("user_pass").Value = "XXXXXXXXXX" 'id="user_pass"にパスワードを入力 htmlDoc.getElementById("loginform").submit 'フォームの内容を送信 End Sub ``` 質問のコードの前後の行に「```」を追加し上記のような表示にしてください。 この形式にすることで、コードが見やすく・コピペしやすくなります。 コードが見やすければ変な部分に気付きやすいですし、コピペしやすければ簡単に試せるようになり、回答がつきやすくなります。