VBAをやめて生成AI×Pythonで転記ツールを作り直したら、配布の問題が完全に消えた話|人事情報の転記自動化・後編

前編でGoogleフォームへの切り替えとVBA転記システムの完成をお話しました。中編ではそのツールを社員全員のPCに展開しようとして。ChromeDriverの配布という予想外の壁にぶつかったことをお話しました。

「動かなくなったら連絡してください」という案内を出しながら。Chromeのアップデートのたびに問い合わせに対応し続けた日々。これをどうにかしなければ。と思い始めたのがPython移行を決断したきっかけです。

Python移行とAI活用

まず、「Pythonに移行すれば。ChromeDriverのバージョン管理問題が解決できるかもしれない」と思い始めたとき。まず頼ったのは生成AIです。

既存のVBAコードがあったので、それをまるごと生成AIに共有しました。「このVBAで作ったSeleniumツールをPythonで書き直したい。ChromeDriverを使わない方法で」という形で依頼するために。システムの概要を伝えることが目的です。

ただ、転記システム全体はかなり複雑な工程を持っています。最初からすべてを一度に作ろうとしても無理と判断し。まずはログイン画面の実装から始めることにしました。必要な機能を生成AIと相談しながら、一つずつ積み上げていくイメージです。

生成AIとの壁打ちで知る根本解決

次に、最初に返ってきたコードを実行してみると、当然ながら動きませんでした。エラーメッセージが出る。そのエラーを生成

AIに投げる。修正コードが来る。動かす。また別のエラーが出る——というサイクルが延々と続きます。

生成AIとのやり取り画面:エラーを投げて修正を繰り返す壁打ち開発の実録

VBAをゼロから学んでいた頃は、エラーメッセージをコピーしてGoogle検索し。Stack Overflowや個人ブログを読み漁り、コードをコピーして試し。また違うエラーが出る——という作業を何時間も繰り返していました。今回はその相手が生成AIになっただけで、構造は同じです。違うのはスピードです。エラーを投げれば即座に修正案が返ってくる。調べる時間がない分、試行回数を稼げます。

AIが導くWebDriver自動管理

生成AIとの壁打ち開発が進む中で、エラーメッセージの修正を繰り返しながら。一つの事実に直面した。それは。PythonのSeleniumが持つ「WebDriverの自動管理」というVBAにはない強力な機能です。VBAをゼロから学んでいた頃は知らなかった、この根本的な違いが。我々が直面していた配布問題の根源を解決する鍵だったと、生成AIは教えてくれた。

VBA時代のChromeDriver更新管理の苦悩

一方で、VBAでSeleniumを動かしていた頃を思い出してみる。我々は。使っているChromeブラウザのバージョンに合ったChromeDriverを手動でダウンロードし。PC内の特定のフォルダに配置する必要があった。そして、VBAコードの中でそのChromeDriverのパスを正確に指定する。Chromeが自動アップデートされるたびに。古いChromeDriverは使えなくなり。新バージョンをダウンロードし直してパスを更新する手間が発生した。この一連の作業は開発者である私が行う分にはまだ耐えられたが。それを社員全員のPCに展開し、それぞれに同じ作業を強いるのは不可能だった。配布先のPCでChromeが更新されれば、ツールは途端に動かなくなる。そのたびに問い合わせが殺到し。「動かなくなったら連絡してください」という注意書きは。開発者の責任逃れのように聞こえた。

ChromeDriverの自動管理

PythonのSeleniumは、この悪夢のような状況を根本から変える。生成AIが提示したPythonのコードには、ChromeDriverのパスを指定する記述が見当たらない。最初は戸惑ったが、生成AIが詳しく解説してくれた。PythonのSelenium 4.x以降に搭載された「Selenium Manager」という機能、あるいは`webdriver_manager`といった外部ライブラリの存在を知ったのです。これらは、開発者が意識することなく、ユーザーのPCにインストールされているChromeブラウザのバージョンを自動的に検出する。そして、そのバージョンに最適なChromeDriverを、インターネットから自動的にダウンロードし、適切な場所に配置してくれるのです。

ChromeDriver自動更新、常に最適な動作

この仕組みは、例えるなら、アプリの自動更新機能と似ている。ユーザーはアプリが最新バージョンであるかを気にすることなく使い続けられるように。PythonのSeleniumは常に最新かつ互換性のあるWebDriverを裏側で準備してくれる。つまり、配布先の社員が使っているChromeがいつアップデートされようとも。Pythonの転記ツールは自律的に最適なChromeDriverを見つけてきてくれるため。ツールが「突然動かなくなる」という事態が起こらなくなる。

Python移行を決めた日、最初にしたことに関する解説図(日本語UI)

Python Seleniumの自動管理とインストール…

そのため、VBAのSeleniumは。開発者や利用者が手動でWebDriverのバージョンを管理することを前提としていた。しかし、PythonのSeleniumは。その面倒な管理をライブラリ自身が肩代わりしてくれる設計になっている。この決定的な違いこそが。配布後の運用で発生するバージョン不一致の問題を根本から解決するカギだった。生成AIとの壁打ちを通じて。私は単にVBAコードをPythonに翻訳するだけでなく。Pythonが提供するよりスマートな解決策とそのメカニズムを理解できた。これまでのVBAでの苦労は、この機能を知らないが故のものだったのだと痛感した。これで、配布後のバージョン管理問題は理論上は解決できる。しかし、まだもう一つ大きな課題が残っていた。それは。「Pythonをインストールしていない社員のPCでどうやってツールを動かすのか」という問題です。

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

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

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

Python配布の悪夢を終わらせる魔法

PythonのSeleniumがWebDriverの自動管理機能を持つことで。配布後のバージョン不一致問題は解決の糸口が見えた。しかし、総務や経理、人事の社員のPCには。Pythonがインストールされていないのが普通です。Pythonスクリプトをそのまま配布しても、Python環境がなければ動かない。社員全員にPythonをインストールしてもらうのは現実的ではないし。会社のセキュリティポリシーを考えると。勝手にソフトウェアをインストールさせるわけにもいかない。VBAの場合、Excelさえあればマクロ有効ブックを配布するだけでよかったが。Pythonではどうするのか。ここに、配布の悪夢を完全に終わらせる「魔法」が必要だった。

PythonツールのPyInstaller配布で問い合…

その魔法こそが、「PyInstaller」というツールです。生成AIは。Pythonスクリプトを配布可能な単一の実行ファイル(Windowsであれば.exeファイル)に変換できるPyInstallerの存在を教えてくれた。PyInstallerを使うと、書いたPythonコードと。そのコードが動作するために必要なPythonインタープリタ。そしてすべてのライブラリ(SeleniumやWebDriver自動管理ライブラリなど)を一つのパッケージにまとめ。自己完結型の実行ファイルとして出力できる。

PyInstaller:ツールの簡単配布と問い合わせ消滅

しかし、このメカニズムは実にシンプルで強力です。PyInstallerが生成した`.exe`ファイルは、社員のPCにPythonがインストールされていなくても、ダブルクリックするだけで起動する。まるで普通のWindowsアプリケーションのように振る舞うのです。実行ファイルの中には、Pythonの実行環境がギュッと圧縮されており、起動時に一時的に展開されてスクリプトを実行する。ユーザーはPythonの存在すら意識する必要がない。これは、VBAのマクロ有効ブックを配布する際の手間と比較しても、圧倒的な手軽さだった。

ただ、転記システム全体はかなり複雑な工程を持っていますに関する解説図(日本語UI)

VBAからexeへ、問い合わせゼロ

VBAのマクロ有効ブックを配布する場合、共有フォルダに置けばExcelさえあれば動く。だが、セキュリティ警告が表示され、「コンテンツの有効化」ボタンを押してもらう手間は発生した。また、VBAのソースコードは誰でも見ることができるため、機密性の高い処理を含むツールの配布には、心理的な抵抗もあった。しかし、PyInstallerで生成した`.exe`ファイルは、中身のコードを簡単に見られることはなく、セキュリティ警告も少なくなる傾向がある。社員はただアイコンをダブルクリックするだけで、ツールが起動し、自動転記が始まる。

実際にPyInstallerを使って転記ツールの`.exe`ファイルを作成し、社内共有フォルダに配置した。社員向けには「新しい転記ツールです。このアイコンをダブルクリックしてください」という簡潔な案内だけ。結果は驚くべきものだった。VBA時代に頻発していた「ツールが動きません」「ChromeDriverの更新はどこからですか?」「Pythonって何ですか?」といった問い合わせが、文字通り「完全に消滅」したのです。社員は、配布された転記ツールを当たり前のように使いこなし、Chromeがアップデートされても、PCの環境が変わっても、ツールは常に問題なく動作した。

Pythonが解いた配布の魔法

さらに、この二つの要素。PythonのSeleniumが持つWebDriverの自動管理機能と。PyInstallerによる実行ファイル化。これらこそが。VBA時代に我々が苦しんだ「配布の問題」を完全に過去のものとした魔法だった。開発者はバージョン管理や環境構築の心配から解放され。利用者はツールの安定稼働を享受できる。総務・経理・人事の社員が、本来の業務に集中できるようになったのは。この「魔法」のおかげだと断言できる。我々は、もう二度と、配布の問題に悩まされることはないだろう。

「Pythonをインストールしていない社員のPCでどうやってツールを動かすのか」という問題が。私の目の前に立ちはだかりました。VBAの時はExcelさえあれば動かせましたが、Pythonはそうはいきません。社員全員にPythonをインストールしてもらうなんて。現実的ではありませんでした。それは、また別の「配布の悪夢」の始まりになるように感じていました。どうしたら良いのか、途方に暮れていました。

PyInstallerで配布の悪夢解消

この新たな壁にぶつかった時も、やはり生成AIに相談しました。「Pythonで作ったツールを、PythonがインストールされていないPCで動かすにはどうすればいいですか?」と、素直に質問を投げかけました。すると、生成AIは「実行ファイル化」という概念と、そのためのツールとして「PyInstaller」という名前を教えてくれました。Pythonのコードを、Windowsなら`.exe`ファイルのように、単独で実行できる形式に変換できるというのです。その説明を聞いた時、「これだ!」と直感しました。まるで魔法のような解決策に思えました。

PyInstallerで配布の悪夢解消

しかし、PyInstallerの使い方も、最初からすんなりとはいきませんでした。コマンドプロンプトを開いて、呪文のようなコマンドを入力する。エラーが出れば、また生成AIに相談して、オプションを調整したり。足りないライブラリをインストールしたり。VBAの時と同じように、地道な壁打ちの繰り返しでした。特に、Seleniumを使うツールだったので。WebDriverの自動管理機能とPyInstallerを組み合わせる部分で。何度か躓きました。それでも、生成AIは辛抱強く、適切なヒントや修正案を提示し続けてくれました。

生成AIとの壁打ち開発が始まったに関する解説図(日本語UI)

そして、ついに完成した`.exe`ファイルを見た時、感動しました。たった一つのファイルを社員に配布すれば、彼らはPythonがインストールされているかどうかを気にする必要がないのです。ダブルクリックするだけで、私が作った自動化ツールが動き出す。これは、VBA時代には考えられなかった、まさに「配布の悪夢」を終わらせる画期的な方法でした。ファイルサイズは少し大きくなりましたが、それ以上に、配布の容易さと運用の安定性がもたらすメリットは計り知れませんでした。

生成AIが叶えた配布の悪夢終焉

実際にexe化したツールを社員全員に配布した後の状況は、劇的に改善しました。以前はChromeのアップデートのたびに「ツールが動かなくなった」という問い合わせが殺到していましたが。Python版に切り替えてからは、ピタリと止みました。社員からは「特に何も設定していないのに動くから便利だね」という。何気ない一言が聞かれるようになりましたが。その裏には私が生成AIと格闘した数々の試行錯誤があったことを思うと。感慨深いものがありました。私自身も。もうChromeDriverのバージョン管理に頭を悩ませる必要がなくなったのです。

まず、この「Pythonの実行ファイル化」こそが。私が長年苦しんできた配布と運用の問題。つまり「配布の悪夢」を終わらせる、たった一つの魔法でした。生成AIとの出会いがなければ、Python移行を決断することも。PyInstallerの存在を知ることもなかったでしょう。プログラミングの「プ」の字も知らなかった私が、ここまで来られたのは。本当に生成AIという強力な相棒がいたからだと、今あらためて感じています。これで、ようやく安心してツールを社員に提供できるようになりました。

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

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

このスキルを活かしてさらに前へ進むなら

Pythonや自動化スキルを体系的に習得して、ITエンジニアとしてのキャリアを切り開きたい方には「Enjoy Tech!(エンジョイテック)」が選択肢のひとつです。

プログラミングスクール Enjoy Tech!(エンジョイテック) →