まさか、まだIE(Internet Explorer)を使ってるなんてこと、ないですよね?
ご存じのように、WebブラウザとしてのMicrosoft IE11サポートは、2022年6月に終了しています。ウィルス感染のほか、サポートが切れた製品を使い続けるリスクは大きいので、さすがに最近は、ChromeやEdgeなどを使うビジネス・ユーザーが圧倒的のようです。
とはいえ、上のグラフをみると、まだ約1%のIEユーザーがいますよ…!?
Windows95時代から標準ブラウザであったIEと、縁を切りづらい理由の1つに、VBAによるWebブラウザ操作の問題があります。
IEは、ExcelVBAから直接ブラウザ操作ができていたので(Microsoft Internet Controlsライブラリによる機能)、とても便利だったんですけどねぇ…。
あ、だからあなたの職場にも、まだ残ってるんですね?
さすがにそれではマクロウィルスと戦えないので、近年主流の各ブラウザは、ExcelVBAからの直接ブラウザ操作には、非対応です(まったく「操作する方法がない」ことはありませんが、その手法をきわめるには手間がかかるので、おすすめできません)。
そこでこの記事では、ExcelVBAからのIE操作を置きかえる候補として、SeleniumBasicのインストール方法をご紹介します。これまで使っていたプログラムの書き換えは必要となりますが、VBAから指示していたWebブラウザ操作が、IEに対するコマンドより簡単にできるので、おぼえておくと便利ですよ。
SeleniumBasicとは?
Seleniumは、”Webブラウザ操作を自動化するフレームワーク(枠組み)”のことです。簡単にいえば、プログラム言語(Python、Java、JavaScript、C#、Java)を通じて、汎用Webブラウザへ操作を指示できる”情報ファイル一式”をさします。
この簡易版にSeleniumBaisicというライブラリがあり、この旧名称はSeleniumVBAといいました。つまり”VBAからWebブラウザを直接操作できる、簡易版Selenium”という意味です。プログラマでなくても、ExcelVBAから簡単にWebブラウザを操作できるので、IEを直接操作するマクロプログラムの代替候補になりうる仕組みです。
この仕組みをうまく利用したWebスクレイピング事例として、個人ブログながら、某SE/プログラマの方がWeb上に一般公開した「公立図書館蔵書抽出プログラム」が、とてもわかりやすくつくられています。
一度、公開データをご自身のパソコン内にダウンロードして、Excelにキーワードを入れて書籍検索をしてみるとよいでしょう。
このように、個人(もしくは一般業務ユーザー)がWebスクレイピングを利用する場合、
(1)指定Webブラウザ起動
(2)調査項目などキーワード自動入力
(3)検索結果の自動保存
というステップをふみます。
今まではVBA+IEでできていた、これら一連の自動操作をアプリケーション・プログラム化したものが、SeleniumBasicフレームワークなのです。
SeleniumBasicをダウンロード、インストールしてみましょう!
まずは、SeleniumBasicをダウンロード、インストールしてみましょう(情シス部門から、新規ダウンロード許可がえられていることを前提とします)。
現在、SeleniumBasicのダウンロード元はGitHubに集約されており、2022年10月時点での最新版はv2.0.9.0というバージョンでした。
.exeファイルへのリンクをクリックして、ダウンロード→インストールします。
ちなみに、Seleniumは、WebDriverとよばれる(Web動作をコントロールする)API群を利用して、Web動作を自動化します
(↓概念図)。
インストール時に選択できるブラウザ用APIの種類は、
- WebDriver for Firefox
- WebDriver for Chrome
- WebDriver for Opera
- WebDriver for Microsoft Edge
などがありますので、事情がなければ、すべてのブラウザ用APIをインストールしておくとよいでしょう。
同時に、動作させるブラウザ側のWebDriverが、インストールされているブラウザ本体のバージョンにあったものでないと、自動操作をできないため、確認が必要です。
※Chromeのバージョン確認はこちら([右肩3点リーダー]→[設定]→[Chromeについて])
SeleniumBasicのダウンロード、インストール、設定が完了したら、さっそくExcelVBAから、ブラウザを自動操作するテストをしてみましょう。VBEに、下記のプログラムを入れてみます(コピー&ペーストするだけでOKですよ)。
Sub test()
Dim Driver As New Selenium.WebDriver
Driver.Start “Chrome”
Driver.Get “https://exceleaveit.com”
Stop
Driver.Close
Sub test()
Dim Driver As New Selenium.WebDriver
Driver.Start "Chrome"
Driver.Get "https://exceleaveit.com"
Stop
Driver.Close
Set Driver = Nothing
End Sub
プログラムで指定したWebブラウザが立ちあがり、URL通りのサイトが表示されれば、ExcelVBAから自動操作されていることが確認できます(Chromeの場合、左肩に「ソフトウェアによって制御されています。」と表示されます)。
次に、下記のプログラムに書きかえてみましょう(こちらもコピー&ペーストでいいですよ)。
Sub test()
Dim Driver As New Selenium.WebDriver
Driver.Start "Chrome"
‘ChromeでYahoo!トップ画面を表示
Driver.Get "https://yahoo.co.jp"
‘トップ検索窓に「せるワザ」と入力して、検索ボタンを自動操作
Driver.FindElementByCss("#ContentWrapper > header > section._1o9PYyvuVafb5hd9eJ9rYX > div > form > fieldset > span > input").SendKeys "せるワザ"
Driver.FindElementByCss("#ContentWrapper > header > section._1o9PYyvuVafb5hd9eJ9rYX > div > form > fieldset > span > button > span").Click
Stop
Driver.Close
Set Driver = Nothing
End Sub
Stop
Driver.Close
Set Driver = Nothing
End Sub
どの検索窓にどの検索ワードを入れるか、検索結果をどのように受けとるか、などの詳細は、これから利用するプログラム内容によって、自在に書きかえることができます(Chromeデベロッパーツールを使って、WebサイトのHTMLファイル自体を確認しにいく作業が必要にもなります)。
SeleniumBasicインストール確認自体は、上記の簡単なプログラムをご自身のExcelVBAに貼り付けてみれば、簡単にすすめられますので、ぜひためしてみてください。
インストールが完了したら、株価情報やお天気情報などを、SeleniumBasicで検索させてみると、このツールをつかった「情報の集め方」のコツがつかめるようになりますよ。
※個人で使用する情報であっても、サイト情報収集前には、かならず利用規約などをご確認ください。
まとめ
ExcelVBAからのIE自動操作にかわる仕組みとして、SeleniumBasicが便利
2020年代に入って、さすがにWindows95からの”遺構”IEを、Webブラウジングに使い続けている人は少ないでしょう。しかし(VBAによるIE操作が手軽だったので)、IE自動操作VBAの更新に手を焼いている職場も、多いのではないでしょうか?
IE自体は、ウィルスの標的になる恐れも高いので、できる限り早く使用をやめるべきですが、VBAから直接自動操作ができないWebブラウザについては、SeleniumBasicを通じて動かしてみることを考えてみてください。
インストール自体は、上記で簡単に解説したようにシンプルです。使い方の応用範囲も広いので、まずは設定してみて、ExcelVBAからの命令でブラウザがどのように動くのかを確認してみるとよいでしょう。
今後も、Webからの情報収集量がふえることはあっても、この業務が減ることは考えづらい状況が続きますので、VBAからのWebブラウザ操作に慣れておいた方がよいですよ。
自分自身が、情報洪水の中で、自動操作されてしまわないように…。
しかし、あなたがスマホ・ユーザーならば、Excelはスマホに「入れておかなきゃ損!」です。タダでもいろいろな使い方ができますので。
音声入力や出先プリントアウトなどの便利さになれると、外出がちな営業パーソンなどは、もう手放せなくなるのではないでしょうか?
あなたの働き方にあわせて、ぜひExcelもスマホの小さな画面で活用してみてくださいね。