はじめに
この記事は主に、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単体でスクレイピングしたいという情熱/ロマンがあるなら、是非見てみるとよいでしょう😎
きっと参考になるコードがあるでしょう🤠
もちろん、このツールの面倒も見ています。わたしが🦊