1
1

More than 1 year has passed since last update.

【VBA Selenium】Chromeを閉じずにVBAコードを終わる

Last updated at Posted at 2023-02-17

やりたいこと

VBAでSeleniumを使ってChromeを操作するとき、
VBAのコード実行が完了すると、Chromeが勝手に閉じてしまう。
これを閉じずにVBAコードを終わりたい。
そうすれば、下図のように別の作業を手作業で挟むことができる。
image.png

サンプルコード

以下サンプルです。
前提として、SeleniumBasic、ChromeDriverはインストール済み、参照設定でSelenium Type Libraryを設定済みとします。

ここで重要なのが、1行目でSubの外でDriverを宣言している点です。
こうすることで、Subが終了してもブラウザが消えません。
ただし、いつまでもDriverが残ることになるため、本当に処理を終了するときには
Driver.Quitを入れないと、次回実行時にエラーがでます。

Private Driver As New Selenium.ChromeDriver
  
'最初に実行するVBA
Sub Macro1()
    
    '古いDriverが残っているとエラーになるのできれいにする
    If Not Driver Is Nothing Then
      Driver.Quit
      Set Driver = Nothing
    End If
    
    'Driverでどこかにアクセスして、何か作業があれば作業させる。
    Driver.Get "https://google.com"

    '一旦VBA1はおわり。
    'ブラウザは開いたままなので、このあと人間の手作業をはさむ。
End Sub

'ここで、人間が手作業する。(例えば何か検索してください)
'手作業が終わったら、次のMacro2を実行することもできる。

Sub Macro2()
    
    'Driverを引き継いで、別の作業をさせる(例:検索結果の1番上のテキストをプリント)
    Debug.Print Driver.FindElementsByClass("MjjYud")(1).Text
    
    'ブラウザ終了
    Driver.Quit

End Sub

おわり

以上です。お疲れ様でした。

1
1
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
1
1