前回はPythonで自動ログインを行うプログラムを作ったので、同じことをVBAでも同様のことを行うプログラムを作りました。
Contents[非表示]
〇つくったコード
今回は下記のコードを動かすために、事前準備が必要です。
1 selenium Basicのダウンロード
下記ギットハブのホームページよりselenium Basicをダウンロード
https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0
ダウンロードした際、chromeドライバーを入れ替えないといけないので、ダウンロードしたフォルダーを開いておかないといけません。
フォルダーの場所は以下になります。
%LOCALAPPDATA%\SeleniumBasic
2 chromeドライバーのダウンロード
下記のホームページより適応したドライバーをダウンロードする。
https://sites.google.com/a/chromium.org/chromedriver/downloads
3 chromeドライバーの入れ替え
selenium
Basicのフォルダーにあるchromeドライバーを最新のに入れ替える(コピペ)
4 VBEでの参照設定
VBEの参照設定で、「Selenium Type Library」にチェックを入れる。
以上の環境設定を行い、下記のコードを標準モジュールに書くとウェブページを開いて、ログインをしてくれます。
Sub セレニウムベーシックを使った自動ログイン()
driver
As New selenium.ChromeDriver
driver.Start
("chrome")
driver.Get
(タイムズのログイン画面のURL)
driver.FindElementByName("カードナンバー1のname値").SendKeys ("任意の番号")
driver.FindElementByName("カードナンバー2のname値").SendKeys ("任意の番号")
driver.FindElementByName("passwordのname値").SendKeys ("任意のパスワード")
driver.FindElementByName("ログインボタンのname値").Click
Application.Wait
(Now + TimeValue("00:01:45"))
End
Sub
〇つくったコードの解説
・モジュールの名前
Sub セレニウムベーシックを使った自動ログイン()
・ドライバーの宣言
driver
As New selenium.ChromeDriver
・ドライバーでchromeを使います
driver.Start
("chrome")
・ウェブページを取得
driver.Get
(タイムズのログイン画面のURL)
・ログイン画面からネーム値を読み取ってカードナンバーを入力
driver.FindElementByName("カードナンバー1のname値").SendKeys ("任意の番号")
・ログイン画面からネーム値を読み取ってカードナンバーを入力
driver.FindElementByName("カードナンバー2のname値").SendKeys ("任意の番号")
・ログイン画面からネーム値を読み取ってパスワードを入力
driver.FindElementByName("passwordのname値").SendKeys ("任意のパスワード")
・ログインボタンをクリック
driver.FindElementByName("ログインボタンのname値").Click
・プログラムを1分45秒止めています。
Application.Wait
(Now + TimeValue("00:01:45"))
・終わり
End
Sub
〇まとめ
VBAでもSeleniumを使って、ウェブページの自動ログインができました。
Pythonとは書き方が少し違う程度で、やり方はほとんど同じです。
僕はVBAの方が仕事ではよく使うので、使いやすかったです。
ここから必要な情報のみをテキストで読み込んだりと使い方はいろいろとできそうです。
0 件のコメント:
コメントを投稿