【簡単】ExcelとVBAでWebスクレイピングに挑戦!【お手軽】
2019.12.16
みなさん、こんにちわ こんばんわ おはようございます。
我は汝 汝は我 あなたのペルソナ kousukeです。
・・・
・・・
・・・
ハイ
改めまして、ハリマニックスのkousukeです。
いきなりなんだ?ってなりましたかね。
もうすぐクリスマスなんでね、ちょっとロマンチックな挨拶をしてみたくなったんやで←唐突な関西弁
まぁ冬だし、
毎日寒いし、
ここいらで茶番でもやって笑ってホカホカすればいいじゃないってこと!←お前の頭がもう春だってことは分かった
さて、もう少し茶番したい気持ちをおさえつつ(オイ)、本題へいってみよ!
そもそもVBAってなに?
今日は少し真面目なお話です。
みなさんは、VBAをご存知でしょうか。
ん?薄毛に悩んでる?ってそれはAGA・・・・じゃなくて!←舌の根も乾かないうちに茶番奴^^;
VBAというのは、VisualBasicForAplicationsというプログラミング言語
Excelや、Wordや、Accessに付属しています
MicrosoftOffice専用のプログラム言語って感じのイメージですね
そんなVBAで何ができるのか!と言えば、マクロを作る事が出来るんですね
マクロっていうのは、コンピュータ操作の自動化する技術の総称、
つまりExcelやWordで操作を自動化するツールが作れるものなんですね
kousuke:いつもExcelでやってるあーんな作業やこーんな作業も全部マクロに任せて、朝から優雅にコーヒータイム
kousuke:そんな夢もうつつにできるんですよ!マクロならね!
kousuke:人差し指一本で、グラフを作成したり、自動計算したり、印刷したりすることができる、そんなチャンスがここにあるんです!←彼のような話し方をすると、友人関係が全滅します
そんな感じでVBAでマクロを作ると色々便利なものが作れるんですが、先日社内からの依頼でVBAでWebスクレイピングする機会がありました。
これが意外と簡単に出来て、kousukeさんびっくりしたので記事を書くことにしたのです(本当は上司に書けっていわれ・・・ry)
いざ、Webスクレイピング!
VBAでスクレイピングする方法はいろいろあります。
今回は、WEBブラウザをコントロールできる「SeleniumBasic」を使ってみました。
以下のURLからダウンロードして、インストールします。
SeleniumBasic
インストールできたら、ExcelのVBAで参照設定から、"Selenium Type Library"にチェックを付けます。
これで使うための準備は完了!
UI部分はこんな感じで作りました。
A列にURLを上詰めで入力して、参照ボタンから保存先を指定する。
実行ボタンを押すと、指定したURLのページのスクリーンショットを撮影して保存。
よくある単純な仕組みです。
シンプルイズすべすべお肌!
コードの全文は以下の通り
5行目:Seleniumのインスタンスを作ります。
23行目:ブラウザを指定して立ち上げます。ここではchromeを立ち上げています。
28行目:読み込みを待つ時間を指定します。余裕を見て多めに設定しています。
33行目:ブラウザウィンドウの指定。今回はスクリーンショットを取る関係上、ここで指定するサイズで撮影されるスクリーンショットの拡大率が変わる。
38行目:検索エンジンを指定。
ここまでが初期設定になります。
64行目:スクリーンショットを撮影。保存先を指定して保存。
これだけです。
その他色々書いてあるのは、ブラウザから叩くURLを成形したり、保存の際のファイルネームを成形したりしているので複雑に見えるだけです。
やりたいことを実現してる部分はわずか6行のコードで実装できます。
これは簡単!
以前よりVBAでWebスクレイピングできるのは知っていましたが、調べると出てくるコードは非常に複雑で億劫になってやってませんでしたが、これだけ簡単に実装できるとなると夢が広がリングですね~♪
という感じで今回はExcelVBAを使ってWebスクレイピングに挑戦してみました。
それではまた