たたかいのひぶた
この令和の時代にInternet Explorerでスクレイピングしてる奴いる!?いねぇよな!?
え…いる?…あ…はい…
かくいう私は最近まで使っていました。が、Microsoft様の気まぐれか職場の設定か分かりませんが、IEを立ち上げてもEdgeで立ち上がるようになってしまいました。(Edgeで「Internet Explorer に Microsoft Edge でサイトを開かせる」をOFFにしても変わらず。)
そんなわけで、バッチ起動⇒Chrome拡張機能でブラウザの自動化を試みることに。もはや何と戦っているんでしょうね。はい。
コード
' ブラウザを立ち上げる。
Public Sub LaunchBrowser()
' シェル関連
Dim wsh As New IWshRuntimeLibrary.WshShell
Dim result As WshExec
' クォーテーション
Dim QUOT As String
QUOT = Chr(34)
' コマンド
Dim command As String
Dim browserPath As String
Dim url As String
Dim param As String
browserPath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
url = "https://tenki.jp/"
param = "?param1=value1¶m2=value2"
' ""(略)chrome.exe" "https://...?p=v""
browserPath = QUOT & browserPath & QUOT
url = QUOT & url & param & QUOT
command = browserPath & " " & url
command = QUOT & command & QUOT
' 実行
Set result = wsh.Exec("%ComSpec% /c " & command)
Set wsh = Nothing
End Sub
参照設定
- Windows Script Host Object Model
ポイント
- VBAで文字列としてのダブルクォーテーションは「”””」と書かなくてはならず混乱してしまうため変数(
QUOT
)にしておくと分かりやすい。 - 全体の構成は「” “exeファイルのパス” “url?param””」である。
%ComSpec% /c
はコマンドプロンプトの実行パスのようなもの。/cはcドライブを指すらしい。- 既にブラウザが開かれている場合は新しいタブとして追加される。