【エクセルVBAでIE操作】ユーザー名とパスワードを入力してログインをする


みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

エクセルVBAでInternet Explorerを操作する初心者向けのシリーズです。

節操なく色々なパターンを紹介しております。

前回は、ページャーを踏んで次々とページをクロールしていく方法についてお伝えしました。

【エクセルVBAでIE操作】ページャーをめくって複数ページからデータを取得する
エクセルVBAでIEを操作する初心者向けのシリーズです。今回はページャーをめくって自動でクロールする方法とその見つけ方について解説をします。Webスクレイピングの効率が格段に上がりますよ!

今回はちょっと目線を変えまして、エクセルVBAでIEを操作してフォームにユーザー名とパスワードを入力してログインをする方法についてお伝えします。

スポンサーリンク

おさらい:検索フォームにキーワードを入力して送信

以前こちらの記事で検索窓にキーワードを入力して送信する方法をお伝えしました。

【エクセルVBAでIE操作】IEで検索窓にキーワードを入力して送信する方法
初心者向けエクセルVBAでIEを操作するシリーズです。今回はIEを操作してWEBページ内の検索窓に任意のキーワードを入力して送信する方法をお伝えします。GoogleChromeの検証機能も活用しますよ!

ログインフォームへの値の入力と送信も基本的には同じ操作になりますので、おさらいとして、その際のプログラムを紹介します。

Sub MySub()
    
    Dim keyword As String
    keyword = InputBox("キーワードを入力してください")
    
    Dim objIE As InternetExplorer
    Set objIE = New InternetExplorer
    
    objIE.Visible = True
    objIE.Navigate "https://www.yahoo.co.jp/"
    
    Do While objIE.Busy = True Or objIE.readyState < READYSTATE_COMPLETE
        DoEvents
    Loop
    
    Dim htmlDoc As HTMLDocument
    Set htmlDoc = objIE.Document
    
    With htmlDoc
        .getElementById("srchtxt").Value = keyword
        .getElementById("srchbtn").Click
    End With

End Sub

流れとしては

  1. InputBoxで検索するキーワードを入力
  2. Yahoo!のページを開いてドキュメントを取得
  3. 検索窓にキーワードを入力
  4. ボタンをクリックして送信

という流れです。

ログインの場合は、検索キーワードのかわりにユーザー名とパスワードを入力すればOKです。

エクセルVBAでIEを操作してWordPress管理画面にログインする

今回、ログインするのは某サイトのWordPress管理画面です。

管理画面にログインするためには、ユーザー名とパスワードを入力して「ログイン」ボタンを押下します。

WordPressのログイン画面

これをエクセルVBAでIEを操作して実行していきます。

Google Chromeで検証する

エクセルVBAでのIE操作の超お助けツールであるGoogle Chromeのデベロッパーツールを使って、操作対象となるformタグやinputタグを見つけていきます。

ログイン画面を開いた状態で Ctrl + Shift+ Iですね。

ウィンドウの左上「矢印マークのアイコン」をクリックした上で、目的の要素をクリックすると、HTML内の該当箇所を探しあててくれます。

結果、今回取得する要素は

  • ユーザー名の入力フォーム:id="user_login"のinput要素
  • パスワードの入力フォーム:id="user_pass"のinput要素
  • ログインボタン:id="wp-submit"のinput要素

でした。

欲しい要素にはすべてidがついているので助かりますね。idはそのドキュメント内で一つしかありませんので、取得するのが簡単なのです。

input要素の入力とクリック

input要素は、HTMLInputElementオブジェクトで表されます。

HTMLInputElementオブジェクトに値を入力する場合は、Valueプロパティを使用します。

HTMLInputElementオブジェクト.Value = 値

「ログイン」ボタンもinput要素ですので、HTMLInputElementオブジェクトです。

HTMLInputElementオブジェクトをクリックする場合は、Clickメソッドでしたね。

HTMLInputElementオブジェクト.Click

プログラムとしてはこちらです。

Sub MySub()
        
    Dim objIE As InternetExplorer
    Set objIE = New InternetExplorer
    
    objIE.Visible = True
    objIE.Navigate "https://example.com/wp-login.php" '管理画面ページのURLを指定
        
    Wait objIE
    
    Dim htmlDoc As HTMLDocument
    Set htmlDoc = objIE.Document
        
    With htmlDoc
        .getElementById("user_login").Value = "XXXXXX" 'ユーザー名を指定
        .getElementById("user_pass").Value = "XXXXXXXX" 'パスワードを指定
        .getElementById("wp-submit").Click
    End With
                
End Sub

ユーザー名、パスワードを適正に入力した上で、プログラムを実行しますと、無事にWordPress管理画面にログインできるはずです。

まとめ

エクセルVBAでIEを操作してフォームにユーザー名とパスワードを入力してログインをする方法をお伝えしました。

サイトによってform要素やinput要素の取得の仕方が変わるので、都度検証をする必要がありますが、エッセンスとしてはあちこちで使えると思います。

どうぞご活用下さい!

また色々なIE操作についてお伝えできればと思いますので、どうぞお楽しみに!

連載目次:エクセルVBAでIEを操作してWEBスクレイピング

IEを操作してWEBページのデータを取得して、エクセルのデータとして取り込む、つまりWEBスクレイピングをエクセルVBAで実現します。各種WEBページを課題として様々なデータの取得の仕方を解説していきたいと思います。

  1. 【エクセルVBAでIE操作】10分で終わるセッティングとWEBページの閲覧確認
  2. 【エクセルVBAでIE操作】HTMLタグと要素そしてドキュメントの取得
  3. 【エクセルVBAでIE操作】ブラウザの読み込み待ちをしないとダメなのです
  4. 【エクセルVBAでIE操作】ページ内のリンク先URLを全部取得する
  5. 【エクセルVBAでIE操作】ディスクリプションなどの要素をname属性でGetする
  6. 【エクセルVBAでIE操作】hタグなどの要素をタグ名でGetする
  7. 【エクセルVBAでIE操作】WEBページのテーブル要素を自動で取得する方法
  8. 【エクセルVBAでIE操作】WEBページのテーブル要素からセルのデータを取り出す方法
  9. 【エクセルVBAでIE操作】IEで検索窓にキーワードを入力して送信する方法
  10. 【エクセルVBAでIE操作】検索結果一覧から記事タイトルを取得する方法
  11. 【エクセルVBAでIE操作】ブログの記事一覧ページから公開日とカテゴリを取得する
  12. 【エクセルVBAでIE操作】ページャーをめくって複数ページからデータを取得する
  13. 【エクセルVBAでIE操作】ユーザー名とパスワードを入力してログインをする
  14. 【エクセルVBAでIE操作】name属性を利用して画像ボタンをクリックする
  15. 【エクセルVBAでIE操作】alt属性・src属性を利用して画像ボタンをクリックする

コメント

  1. 通りすがりの山田君 より:

    WEBスクレイピング全12回の記事をすべて読ませて頂きました。
    とても分かりやすくて参考になりました!

    一応報告ですが
    「いつも隣に~」のページをサンプルにした記事は、記事上のタグと現在のHTMLタグに差が発生しているようです。
    でも、それでかえって「では自分でやってみよう」となってより勉強になりました。
    このままのほうがいいかも知れませんw

    とても役に立つ記事、ありがとうございましたm(__)m

    • 通りすがりの山田君さん

      コメントありがとうございます!

      確かに…!
      おっしゃる通りですね。

      …修正しないといけませんね。
      ご指摘ありがとうございます。

      今後ともどうぞよろしくお願いいたします!

  2. 磯垣 広野 より:

    いつも参考にしております。

    ログイン後のデータ取得について、GASの記事が是非読みたいです!

    ご検討の程宜しくお願い致します。

タイトルとURLをコピーしました