ExcelマクロをClaude CodeでWebアプリに変換する
Excelマクロ(.xlsm)をClaude Codeが解析し、HTMLとGoogle Apps Scriptに自動変換。ソース取得からテストまで一気通貫で自動化した事例を紹介します。
Excelのマクロ(VBA)で作られた業務ツールをWebアプリに置き換えたいという相談は少なくありません。今回、依頼のあったマクロファイル(.xlsm)から、フォーム情報・ソースコードを取得して解析し、最終的にHTMLとGoogle Apps Script(GAS)に変換するところまでを、Claude Codeのエージェントに一気通貫で行わせることができました。本稿ではその流れを紹介します。
VBAマクロを構成する3つのファイル
VBAのマクロファイル(.xlsm)には、主に3種類の要素が含まれています。
- .frm(フォームモジュール):画面上のボタンや入力欄など、フォームの情報が入ったファイル
- .cls(クラスモジュール):オブジェクト単位の処理をまとめたコード
- .bas(標準モジュール):フォームに紐づかない、共通処理のコード
Web化にあたっては、.frmを画面(HTML)に、.clsと.basを動作(GASの.gsファイル)に、それぞれ置き換えていく必要があります。
Claude Codeによる自動変換のプロセス
今回は、マクロファイルからこれら.frm・.cls・.basを抜き出して解析させ、HTMLへ変換するところまでを、Claude Codeのエージェントに任せました。人がコードを1行ずつ読み替えるのではなく、エージェントがファイルの構造を理解した上で、画面部分と処理部分を仕分けながら変換していく流れです。
clasp・Playwrightでアプリ構築とテストまで自動化する
変換したコードを実際に動くWebアプリにするには、GAS環境への反映とスプレッドシートとの連携、そして動作確認が必要です。ここでは以下の2つのツールを使いました。
- clasp:Google Apps Scriptをコマンドラインから操作するためのCLIツール。ローカルで書いたコードをGASプロジェクトに反映できる
- Playwright:ブラウザを自動操作するテストツール
claspとPlaywrightを使ってブラウザを操作し、GASやスプレッドシートを実際に開きながら、Webアプリケーションを組み上げていきました。
テストについても、テスト仕様書とチェック表をあらかじめ作成し、それをもとにPlaywrightで実際の操作を自動実行させています。ソースコードの解析からHTML/GASへの変換、アプリの構築、そしてテストの実行まで、すべてを自動で行えるところまで到達しました。
変換ログを蓄積し、継続的に精度を高める
実際の現場では、様々なシチュエーションで使われてきた大量のマクロファイルが存在します。そこで、変換した内容をログとして残し、そのログをエージェントに継続的に反映していく仕組みもあわせて構築しています。案件をこなすたびに、変換の精度や対応できるパターンが積み上がっていく設計です。
まとめ
VBAマクロのWeb化は、ファイルの構造を理解する手間と、変換後の動作確認という2つの壁が負担になりがちです。Claude Codeのようなエージェントに、ファイル解析からコード変換、clasp・Playwrightを使った構築・テストまでを任せることで、この一連の作業を大きく効率化できます。