2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

そろそろSeleniumBasic、卒業しませんか?

2
Last updated at Posted at 2026-11-04

はじめに

この記事は主に、VBA民をターゲットにしています。

2026/10/29 VBAのWebスクレイピング界隈でざわつきが起こりましたね。

なんかSeleniumBasicが急に、動かなくなったんだけど🫥

"The driver failed to open the listening port" うんたらかんたらで動かん🙃

そんな声がSNS等でちらほらと見かけました。

どうやら、「Windows Update の累積更新プログラム KB5127936」を適用することで起こる事象のようです。

詳しいことは、すでに他の方がここに纏めてあるので端折りますが、要するに

内部APIの挙動が、KB5127936のせいで変わってしまった

と言った感じです。

より技術的な詳細はここを拝見するとよいでしょう

疑問

だが、私はこれらを見てこう思ってしまいました。

なんでみんな「アンインストール」ということしか思いつかないのか🤔
なんで意地でもSeleniumBasicに硬直するんだ🙃

私の頭の中にはこれらのツールの後継、そしてAIの使い方を知っているからです。

分かります。言いたいことは分かります

  • いや、作者全然違うやん
  • 別プロジェクトだからコードの書き方も違うんでしょ?
  • 別ツールへの再開発の気力がわかん

しかし、SeleniumBasicの現状を改めて認識しなければなりません

  • 更新はもう10年も止まってる
  • Issueに報告しても作者からの応答なし
  • 古いフレームワークへの依存(.NET Framework 3.5)
  • ChromeDriverのバージョン管理への意識

私は少なくともこの、誰もメンテナンスされていないOLDツールを使い続けるのは抵抗ありますね

実質後継ポジションであるSeleniumVBAはこれらを解決しています

  • SeleniumVBAの面倒を見ている方がいる(主に、sele_chan氏)
    • なんならWebDriverBiDiへの試験的対応も
  • なにかトラブルがあっても純VBAコードなので、AIに尋ねれる
  • ChromeDriverのバージョン自動管理
  • DLしてすぐにスクレイピングスタートできる配布形式

今はAI時代です。少し前に語った

  • 別プロジェクトだからコードの書き方も違うんでしょ?
  • 別ツールへの再開発の気力がわかん

これもAIが解決してくれます。
ちょっと期待と違う挙動があっても、少し指示を入れるだけで、修正も出来ます。

また、元をたどればSeleniumVBAもSeleniumBasicも、同じWebDriverとして動いています。
若干のコードの書き方の違いはあれど、正しく書けばゴールは一緒になります。WebDriverがそのコードの差を吸収してくれるので😆

少しKB5127936について調べるとわかる通り、この更新自体はプレビュー(極論、βみたいな)扱いです。
だから、アンインストールでもいいという選択肢が浮かんでしまいます。

しかし、いずれ適用しなければいけない時期が来ます。結局はただのその場しのぎにすぎません。
WindowsUpdateを適用しないということは、特定の脆弱性を放置するのと一緒です。個人ならまだしも社内PCでは許されないでしょう。

ツールの移行について

今はAIがいます。むしろAIを使いこなさないと置いてけぼりになるほど、必須スキルになっています。
今回のWindows Updateによる障害をきっかけに、SeleniumBasicから移行なり、AIの操作への慣れもやっておくべきではないでしょうか?

SeleniumVBAで検索すれば、いろ~んなノウハウ資料が落ちています。AIもそれを学習しています。
だからこそ、尋ねるだけで簡単に移行できると思っています。

...そろそろ重い腰を上げて、ツール移行しないといけない時が来ます。
私はこの一連の出来事を、1つのサポート終了へのカウントダウンと思っています。

おわりに

でも、実務はそう簡単にはいかないのも分かっています。

ここのissueを見てもらえれば分かる通り、すでに複数の選択肢があります

派閥 発想 今回なら
🔧 修理派 根本原因を直そう WaitForListening() の GetTcpTable 依存をやめ、実際のTCP接続などで判定する
🩹 迂回派 壊れてる所だけ使わない ChromeDriverを外部起動 → StartRemotely で接続
🚚 移住派 もう保守されてないなら、乗り換えよう SeleniumVBAへの移行

あくまでも、自分は「移住派」です。
でももし、既存マクロが大量にあってまだ使い続けなければならない場合、
簡単な「迂回」パッチをしてその場しのぎしつつ、段階的に「SeleniumVBAへの移行」が良いかなと思います。

移行のコストはAIで、かなり軽減できるはずです。

感覚的には、IE資産をEdgeへ少しずつ移行みたいなもんですね。

これからも特にExcel VBAでWebスクレイピングを続けたい方には、SeleniumVBAへの移行をお勧めします。

おわり

Advance

  • WebDriver.exeの配置自体が嫌
  • 外部exeの配置自体が許されない

そんなニッチな方のルートも実は、用意しています。

ただし、見てわかる通り、非常に低レイヤーの知識が必要になる要素満載です。
言ってしまえば、WebDriverの機能を丸ごと、VBAだけでエミュレーションして、完全なBook1枚完結にしてるようなもんですからね🫠

でももし、そんな厳しい状況であってもどうしても、真のExcelVBA単体でスクレイピングしたいという情熱/ロマンがあるなら、是非見てみるとよいでしょう😎
きっと参考になるコードがあるでしょう🤠

もちろん、このツールの面倒も見ています。わたしが🦊

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?