
Seleniumを使わなくてもIEを起動して、Webページをスクレイピングすることもできますが、IEを起動することに抵抗があったり、Webスクレイピングする操作が手間だったりします。
Seleniumを使うとVBAからChromeを起動して、Webページを簡単にスクレイピングすることができます。
Seleniumのインストール方法についてはこちらをご覧ください。

今回は実際に「Yahoo!ファイナンス」のページをChromeで開いて、中国元の為替レートを取得してみます。
こちら↓↓↓

VBAを起動して参照設定
こちらはSeleniumのインストール方法でも説明しましたが、もう一度記載しておきます。
VBAを起動して、「ツール」→「参照設定」を開きます。

「Selenium Type Library」にチェックを入れて、「OK」をクリックします。

為替レートページを開く
Chromeで開くページのURLは「https://info.finance.yahoo.co.jp/fx/convert/?a=1&s=CNY&t=JPY」です。
Sub OpenChrome()
Dim Driver As New Selenium.WebDriver
Driver.Start "Chrome"
Driver.Get "https://info.finance.yahoo.co.jp/fx/convert/?a=1&s=CNY&t=JPY"
' *****
' ここで為替レートを取得
' *****
Driver.Close
Set Driver = Nothing
End Sub
データ取得
データの取得はFindElementByCssメソッドを使用します。
SeleniumにはこのほかにもFindElementByTagメソッドなどデータを取得するためのメソッドがあります。
’ データの取得
Driver.FindElementByCss("CSSセレクター").Text
CSSセレクターに何をセットしたら良いのか??
Chromeのデベロッパーツールでセットする値を取得することができます。
【1】Chrome右上の「三点メニュー」→「その他ツール」→「デベロッパーツール」を起動します。

【2】要素選択モードにします。

【3】取得したい項目をクリックします。

【4】選択した項目のソース上で右クリックし、「Copy」→「Copy selector」をクリックします。

【5】クリップボードにコピーされているので、VBAの「Driver.FindElementByCss(“CSSセレクター”).Text」のCSSセレクターの部分に張り付けてください。
’ データの取得
Driver.FindElementByCss("#main > div.fxRateCal > table > tbody > tr:nth-child(2) > td.price.noLine").Text
動作確認
動作確認のため、取得した為替レートをMsgboxでポップアップさせます。
Sub OpenChrome()
Dim Driver As New Selenium.WebDriver
Driver.Start "Chrome"
Driver.Get "https://info.finance.yahoo.co.jp/fx/convert/?a=1&s=CNY&t=JPY"
MsgBox Driver.FindElementByCss("#main > div.fxRateCal > table > tbody > tr:nth-child(2) > td.price.noLine").Text
Driver.Close
Set Driver = Nothing
End Sub
実行した結果です。
為替レートがメッセージボックスで表示されました。


