10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Excel VBAAdvent Calendar 2017

Day 6

VBAからHeadless Chromeに挑戦

Last updated at Posted at 2017-12-05

Headless?Selenium?こちらの説明は割愛させて頂き、
ExcelVBAからブラウザを立ち上げないで、操作してみよう的な感じです.
こちらのサンプルではyahoo!ファイナンスからデータを取得して、
シートに内容を書き出しています。

※動作させるのにSeleniumBasicのダウンロードが必要となります。

##Excelで動作させるための準備
####1. 下記サイトからSeleniumBasic-2.0.9.0.exeをダウンロード
https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0

####2. chromedriver2.33をダウンロード
VBAのエラーが起きてしまうので、chromedriver2.33を別途ダウンロード(上記に含まれているchormedriverが古い?)
https://sites.google.com/a/chromium.org/chromedriver/downloads

ダウンロードしたzipからchromedriver.exeを1.があるフォルダにコピー
(以前のファイルは念のため、保存しておいたほうがいいかと思われます。)

####3. ExcelVBAの参照設定
ExcelVBAのメニューから「ツール」-「参照設定」でライブラリを開き、「Selenium Type Library」にチェック入れ、OK

####4. Chromeのバージョン
Headlessを使用する場合、Chrome59以上

##VBAの記入

Dim driver As New Selenium.ChromeDriver

driver.AddArgument "headless"
driver.AddArgument "disable-gpu"
driver.AddArgument "window-size=1920,1080"
driver.Start
driver.Get ("http://stocks.finance.yahoo.co.jp/us/profile/AMZN")
driver.Wait 1000

Dim data1, data2, data3
data1 = driver.FindElementByCss("#globalDate > p > strong").Text
Worksheets("Sheet1").Cells(1, 1) = data1
   
data2 = driver.FindElementByCss("#main table.stocksTable").AsTable.Data
Worksheets("Sheet1").Cells(2, 1).Resize(UBound(data2, 1), UBound(data2, 2)).Value = data2

data3 = driver.FindElementByCss("#main table.boardFinCom").AsTable.Data
Worksheets("Sheet1").Cells(5, 1).Resize(UBound(data3, 1), UBound(data3, 2)).Value = data3

driver.Close

ブラウザを開いて操作感を出したい時や、もしくはどういう操作をやっているかを確認したいなら、下記コードをコメントにするとChromeが表示されます。
(Headlessの意味がなくなってしまいますが・・・)

driver.AddArgument "headless"
driver.AddArgument "disable-gpu"
driver.AddArgument "window-size=1920,1080"

##取得イメージ
result.PNG

##終わりに

  1. いくつものURLを手動で取得しているなら、データ収集の効率化が図れると思います。

  2. 本当はPDFファイルもVBAから操作したいのですが、ハードルが高いようなので、勉強中です・・・

10
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?