こんな悩みに回答します。
こんな悩みの人向け
こんな悩みの人向け
- EXCEL VBA × Selenium でChromeウィンドウサイズを最大化したい人
Seleniumでは「Chromeブラウザ上に表示されていない箇所は、DOM操作できない」という難点があります。
それを解決する第一歩は「Chromeブラウザのウィンドウサイズを最大化」にすることです。
しかし、VBAだと結構 難しいもので、Google検索してもピンポイントで出てきません。
例えば、Google記事でよく見かける以下のコードは動きませんでした。
NGだったコード
driver.maximize_window()
driver.Manage.Window.Maximize
ということで、VBA×Seleniumで Chromeのウィンドウサイズを最大化する方法を紹介します。
コードの紹介
SeleniumDriverの「AddArgument」を用いることで、ウィンドウサイズを最大化にします。
以下のコードを参照し、試してみて下さい。
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub セレニウムでChromeウィンドウ最大化() Dim driver As New Selenium.ChromeDriver 'AddArgumentでウィンドウサイズを最大化にしています。 driver.AddArgument "disable-gpu" driver.AddArgument "start-maximized" driver.Start driver.Get ("https://yahoo.co.jp") End sub |
こちらのコードが上手く行かなかった場合は、以下のコードを試して下さい。
コチラでは、「AddArgument」でウィンドウサイズを任意のサイズに変更しています。
本来の目的と異なりますが、Seleniumの動作は安定します。
1 2 3 4 5 6 7 8 9 10 11 12 |
Sub セレニウムでChromeウィンドウ最大化() Dim driver As New Selenium.ChromeDriver 'AddArgumentでウィンドウサイズを指定 driver.AddArgument "disable-gpu" driver.AddArgument "window-size=1920,1080" driver.Start driver.Get ("https://yahoo.co.jp") End sub |
終わりに
VBAでSeleniumを利用するのは、世の中的にはニッチな分野です。
しかし、VBAでIE制御をする方法を知っている人からすれば、
EXCELからWebスクレイピングができる有用性を知っていますから、
どうにか こうにか VBAで何とかしたいものです。
僕もその一人です。
Pythonなどの「別プログラミング言語×Selenium」でのWebスクレイピング方法は、
巷で出回っていますが、VBAとなると 一気に情報が少なくなるから困ったものです。
今後も、VBA×Seleniumについて有用なコードがありましたら、
紹介していきますので、どうぞよろしくお願いいたします。
今回はここまでとなります。