VBAで作った転記ツールを社内展開したら、ChromeDriverの配布で完全に詰んだ話|人事情報の転記自動化・中編

前編を読んでくださった方は、おわかりかもしれません。このシリーズは「成功談」ではありません。ツールを作ってからが、本当の戦いでした。その実録を綴っています。

前編では、紙のシートをGoogleフォームに置き換えました。VBAとSeleniumを使い、転記作業を自動化しました。そこまでの経緯をお話ししました。

自作したツールは、私の手元では完璧に動いていました。3時間かかっていた作業が、ボタン1つで終わります。数分で完了するため、大きな達成感を得られました。

でも、ツールを使うのは私ではありません。採用担当の社員たちです。そこから始まった「配布の地獄」は、想像を絶するものでした。

配布の手間:VBAとSelenium

通常のVBAツールなら、ファイルを送るだけで済みます。社員がマクロを有効にすれば、すぐに使えます。これ自体も手間ですが、配布は簡単です。

しかし、今回はブラウザを操作する仕組みでした。そのため、配布は3段階の手順になります。まず、VBAファイルを送ります。次に、Selenium本体をインストールします。最後に、ChromeDriverを上書きコピーします。この流れが必要でした。

さらに、今回のツールは拠点ごとに設定が異なりました。参照するURLが、人によって別々だったのです。そのため、全員に同じファイルを一斉送信することはできませんでした。個別に1対1でやりとりをして、配布を進める必要がありました。

ChromeDriver導入、AppDataの壁

Selenium本体は、ファイルを動かすだけでインストールできます。こちらは、ほとんど問題になりませんでした。その後アップデートも来ませんでした。そのため、初回の配布で作業は完了しました。

一方で、問題はChromeDriverです。

これは、ブラウザとツールを繋ぐ「通訳」です。各社員のPCにあるフォルダへ、上書きコピーする必要があります。そのフォルダは、通常は以下のパスにあります。

VBA+Selenium転記ツールの完成画面:ボタン1つで転記が走る状態

C:\Users\(ユーザー名)\AppData\Local\SeleniumBasic\

そのため、この「\AppData」フォルダが、最初の壁になりました。

AppDataが見つからない

まず「\AppDataに移動してください」と伝えるのが困難でした。そもそも、言葉が通じないのです。

社員の多くは、PCを初期設定のまま使っています。エクスプローラーを開くと、初期表示は「ホーム」です。そこには「よく使うフォルダ」が並んでいるだけです。Cドライブがどこにあるか、すぐにはわかりません。「Cドライブってどこですか?」という質問から始まることも多かったです。

さらに、\AppDataはデフォルトで「隠しフォルダ」になっています。

設定で「隠しファイルを表示する」を選ばないと見えません。この操作を言葉だけで説明するのは大変でした。「表示タブはどこですか?」「チェックを入れる場所は?」という会話が繰り返されました。

スクショとリモートサポート

最も効果的だったのは、手順を画像にして送ることでした。スクショに印を付け、「ここをクリックしてください」と伝えました。そうすると、格段に通じやすくなります。それでも、一人で解決できない社員は多くいました。

結局、9割以上のケースで私がリモートサポートに入りました。直接ChromeDriverを、所定の場所に置くためです。\AppDataを知っている社員は稀でした。そのたびに、私は一人ずつ丁寧にサポートを行いました。

ChromeDriver、まさかのバージョンエラー

苦労の末に、初回の配布は完了しました。各社員のPCに適切なファイルが配置され、ツールは動きました。3時間かかった作業が数分で終わります。奔走した労力が、ようやく報われたように感じました。しかし、この安堵は長く続きませんでした。導入から数週間後、オフィスで「動かない」という声が上がり始めたのです。複数の社員から、同様の報告が次々と寄せられました。

「昨日まで使えたのに、急に動かなくなった」という訴えばかりです。「ボタンを押してもChromeが起動しない」という声もありました。当初はPCの一時的な不具合を疑いました。ですが、報告が相次いだため、共通の原因があるのは明らかでした。原因を探るべくログを確認しました。すると、ドライバーのバージョンエラーが多数出ていたのです。

Chrome自動更新とChromeDriverのバージ…

この現象の原因は、ブラウザの自動アップデート機能にありました。Chromeは常に最新の状態を保つため、自動で更新されます。VBAツールがChromeを操作するには、専用のドライバーが必要です。このChromeDriverは、ブラウザのバージョンに紐付いています。

これは、特定の言語しか理解できない通訳のような存在です。バージョンが少しでも異なると、正確な意思疎通ができません。たとえば、Chromeが100に更新されたら、ドライバーも100に対応させる必要があります。古い99のままでは、ブラウザは指示を理解できません。その結果、ツールは動かなくなるのです。

LINE WORKSでVBAファイルとChromeDriverのzipを個別送付している画面

💡 ここで一度立ち止まって考えてみてください

PythonやExcel自動化スキルを持ったまま、ITエンジニアとして転職したい方には「EBAエデュケーション」が選択肢です。企業が求めるエンジニア像に合わせたカリキュラムで、実務直結のスキルを習得できます。

ITエンジニア転職・EBAエデュケーション →

Chrome自動更新が引き起こすバージョン不一致

当初は動いていたツールが、数週間で止まってしまいました。この現象は、まさしくバージョン不一致が原因でした。社員たちの「何もしていないのに」という言葉は、事実でした。PCの裏側で、Chromeが自動的に更新されたのです。PCに詳しくない社員からすれば、突然の故障に見えます。この理解のギャップにより、私への問い合わせはさらに増えていきました。

ChromeDriver更新作業が本末転倒

ブラウザの自動更新は、セキュリティ上は重要です。ですが、ツールを運用する側には厄介な課題でした。Google Chromeのアップデートは、月に1回程度行われます。不具合修正などがあれば、さらに頻度は増えます。つまり、ツールを使い続ける限り、数週間に一度はトラブルが起きます。その都度、個別に対応が必要になるということでした。

再び、リモートサポートでファイルを入れ替える日々が始まりました。最新版をダウンロードし、配布します。隠しフォルダ内のフォルダへ、手動で上書きコピーを繰り返しました。この作業を、ツールを使う全員に対して行わなければなりませんでした。せっかく転記を自動化して、時間を節約したはずでした。しかし、その時間をドライバーの更新に費やすことになりました。まさに、本末転倒な状況に陥ったのです。

VBAでのChromeDriver自動更新の困難

手作業での対応は、根本的な解決策ではありませんでした。毎回アップデートを検知して配布するのは、現実的ではありません。運用にこれほどの手間がかかるなら、導入の意味が薄れてしまいます。どうにか自動化できないかと考えました。VBAからダウンロードページへアクセスし、自動で更新する仕組みを検討しました。

Windowsエクスプローラーの「表示」メニュー:隠しファイルとファイル名拡張子の表示設定

しかし、これはVBAの標準機能だけでは困難でした。さらに、Webからのダウンロードはセキュリティ上のリスクも伴います。社内PCで不特定のURLからファイルを落とすのは、承認を得るのが難しいです。結局、VBAでスマートに解決する方法は見つかりませんでした。この問題は、導入後も続く「配布の地獄」でした。ツールの運用を考える上で、大きな足枷となっていたのです。

救世主が重荷に変わった自動化ツール

更新作業が常態化するにつれ、私は大きな疑問を抱きました。3時間の作業を数分に短縮したはずなのに、その分をメンテナンスに費やしています。これでは、どちらが効率的なのかわかりません。本来の業務も圧迫され始めました。ツール導入が正解だったのかと、自問自答する日々が続きました。

一方で、社員からも「また動かない」「面倒だから手動でやる」という声が出始めました。ツールへの信頼性は、徐々に失われていきました。私も毎月の対応に追われ、強いストレスを感じるようになりました。自動化ツールは、業務を改善する「救世主」のはずでした。しかし、いつの間にか「メンテナンスの重荷」へと変わってしまったのです。

精神的な負担とVBAの限界

特に、隠しフォルダへのリモート作業は神経を使いました。手作業でファイルを上書きするのは、リスクを伴います。誤って別のファイルを消さないか、常に緊張しながら作業をしました。この精神的な負担も、私を苦しめる大きな要因でした。いつまでこの戦いを続けるのだろうかと、途方に暮れることも多かったです。

この状況をVBAだけで解決するのは、不可能だと結論づけました。Chromeのバージョンを自動検知して配置するような処理は、VBAでは高度すぎます。無理に実装すればコードが複雑になり、管理がさらに難しくなります。もはや、この問題はVBAという枠組みでは解決できないのではないか。そう考えるようになりました。

VBAの限界、Pythonでの活路

VBAの限界を痛感した私は、別の解決策を模索し始めました。社内を見渡すと、一部のエンジニアが「Python」という言葉を使っていました。私はプログラミングの初心者でした。そのため、Pythonという言葉は未知の存在でした。VBAよりも高度なことができる言語だろうという、漠然とした印象だけを持っていました。

しかし、行き詰まっていた私は、藁にもすがる思いでPythonを調べ始めました。すると、Webスクレイピングや自動化に非常に強いことがわかりました。VBAで諦めていた自動ダウンロードなども、Pythonなら実現できる可能性があります。特に、PythonでSeleniumを使えば、ドライバー問題を解決できるかもしれません。かすかな光が見えたような気がしました。

VBAツールの配布は「3段階」になるに関する解説図(日本語UI)

配布の地獄打破、Pythonへの挑戦

もちろん、新しい言語をゼロから学ぶ不安は大きかったです。外国語を学ぶようで、専門書を読んでも最初は理解できませんでした。それでも、現状のままでは「配布の地獄」は終わりません。強い危機感が、私の背中を押しました。バージョン問題を根本解決するには、新しい知識を習得するしかありません。私は腹を括りました。

当時の私は、Pythonで何ができるか、まだぼんやりとしか理解していませんでした。VBAの壁を乗り越えるための道具として、Pythonがあるらしい。その程度の認識でした。それでも、現状を変えたいという強い思いがありました。それが、プログラミングの世界へ深く足を踏み入れる一歩となりました。この挑戦がどのような発見をもたらすのか。その時は、まだ知る由もありませんでした。

関連リンクとチェックリスト

無料プレゼント

Excel業務を自動化する前に確認するチェックリスト(PDF)

自動化していい作業かどうか、VBAかPythonか、最初に避けるべき落とし穴。実務でよく迷うポイントを1枚にまとめました。メールアドレスだけで受け取れます。

無料でチェックリストを受け取る

¥980 ミニキット

コピペで動かせる3スクリプト+自動化チェックリスト

最新ファイルの自動選択・部署名ゆれの正規化・CSV文字コード確認の3本セット。今週の作業を1つだけ楽にするための最小キットです。

ミニキットを見る(¥980)

関連する学びを少し広げるなら

日々の作業を少しでも軽くしたい方には、業務効率化の考え方を本で整理する方法もあります。

業務効率化の関連書籍(Amazon) →

学習サービスとアンケート

VBA・Pythonをもっと本格的に学ぶなら

VBAやPythonを実務レベルまで引き上げたい方には「侍エンジニア」がおすすめです。マンツーマン指導・オーダーメイドカリキュラムで、文系出身でも挫折しにくい環境が整っています。無料カウンセリングだけでも学習ロードマップが明確になります。

侍エンジニア 無料カウンセリングを予約する →

[アンケート] この記事は役に立ちましたか?

30秒で答えられます。改善の参考にします。

1問だけ回答する