本業だけじゃなくてクラウドソーシングの受注でEXCEL&SeleniumBasicでブラウザ操作ツールを作ることが増えてきたので何回かに分けて作り方とかコツみたいなことをまとめてみます!
EXCELでブラウザ操作ツールを作る理由
最近落ち着いたのかあまり耳にしなくなりましたが、一時期流行っていたRPAツールについて職業柄いくつか触ってきまして・・よく聞く謳い文句としては
- 誰でも簡単に作れる
- アプリケーション不問で操作できる
なんでことを耳にしますが、実際そんなことはなく・・・現実は
- 結局ユーザーはEXCEL操作を希望することが多い
- RPAツールでのEXCEL操作は歯痒いところに手が届かないことがある
- ユーザー希望でEXCEL操作以外はブラウザ(WEBアプリ)操作がほぼ
- EXCELとブラウザ以外のアプリは結局RPAツールで連携しにくい
- プログラミング知識はいらなくても結局RPAツール知識がいる
- プログラミング知識もゼロだと厳しい(知識と言うか経験?)
ので、結局のところEXCEL(VBA)でブラウザ操作できれば大体の要望満たせるんじゃないかと
さらにRPAツールのライセンスって有償のものも多く「触る機会が少ない≒自己学習が難しい」のはマイナスポイント
ついでに有償ツールだとクラウドソーシングでの募集も少なく活躍の場がないんですよね・・・
とどのつまり「EXCEL(VBA)とSeleniumが使いこなせれば十分」って結論に至り、公私で活躍しています
まずは環境づくり
EXCELはそこにWindowsPCがあればきっとインストールされているでしょう
macOSの方はSeleniumがインストールできないのでここでお別れです・・
※2023/03時点では私が知らないだけで何か方法があるかもです
SeleniumBasicのインストールは過去記事のコチラを参照ください
VBEの参照設定
VBEの画面で参照設定からSeleniumを有効に
ツール → 参照設定 → Selenium Type Library
有効になると当然ながらオブジェクトブラウザーにSeleniumが追加されてクラスやメンバーを見ることができるようになる
サンプルコード
めちゃめちゃ簡単なサンプルコードがコチラ↓↓
Google検索で”ジャベ雄”を検索してこのサイトのページを見つけたらクリックで開きます
Sub Sample()
Dim driver As Selenium.ChromeDriver
Dim By As New Selenium.By
Dim element As Selenium.WebElement
Set driver = New Selenium.ChromeDriver
With driver
'---Chromeを立ち上げる
.Start
'---Google検索へ移動
.Get "https://www.google.com/"
'---検索ウィンドに"ジャベ雄"を入力
.FindElement(By.Css("textarea[type=search]")).SendKeys "ジャベ雄"
.Wait 1000
'---Google 検索ボタンを押下
.FindElement(By.Css("input[value=""Google 検索""]")).Click
.Wait 1000
'---検索結果の中からこのサイト("https://javeo.jp/"の前方一致だったらタイトルリンクをクリック
For Each element In .FindElements(By.Css("#search > div > div"))
If element.FindElement(By.Css("div > div > div > div > a")).IsDisplayed Then
If element.FindElement(By.Css("div > div > div > div > a")).Attribute("href") Like "https://javeo.jp/*" Then
Call element.FindElement(By.Css("div > div > div > div > a")).Click
.Wait 1000
Exit For
End If
End If
Next
'---Chromeを閉じる
.Close
End With
Set driver = Nothing
End Sub
あとがき
こんな感じでEXCELでもツールを作れるよ!てことの布教第一歩でした
Seleniumの使い道ってスクレイピングだよね?って感覚もありますが私が仕事で使う時は
- 業務システムAからCSVでデータ取得
- EXCELで一覧加工
- 業務システムBにEXCELの一覧を元に登録
のような事務職あるあるの時に使っているのでブラウザ操作と言い張らせていただきました!
初級編と中級編(できれば上級編も)のページも近く作りたいのでまた見に来てくださいm(_ _)m
コメント