見出し画像

非エンジニアの土木事務員が、Claudeとの共闘で行き着いたExcel操作

「CoworkでExcelは危険」と言い切り、役所Excelの操作を「壊れる物があるか」で使い分ける形にまとめた。

これは『Excel役所様式格闘記』全5話+番外編の第5話。
土木中小企業の事務員が、役所提出書類のExcel作業をAIに任せようとして、何度も壊して何度も学んだ記録のシリーズです。
第5話は、ばらばらに増えた方法が「三層構成」という一枚の地図にまとまるまでの、最終話の記録。



武器は揃った。でも、地図がなかった

パソコンの前に、役所提出用のExcelがいくつも並んでいる。方法はいろいろあるのに、どれも決め手に欠ける。もっと楽な方法はないものか。そう思いながら、今日も手を動かしていた。

役所のExcelと格闘した記録を、この連載で何本か書いてきた。最初に挑んだのは、毎月の建設系廃棄物搬入集計表を、Coworkに任せられないかという試みだった。チャットのClaude.aiの上でシミュレーションを重ね、壊れた数式を401箇所も直した。なのに最後の最後で、パワークエリが消えていると分かった。CSVを入れるだけで一覧が更新される、あの仕組みだ。『これはあかん、無理やわ』と撤退した。openpyxlは、既存の複雑なExcelには向かない。それだけは、確かなことだった。

次は接合替の数量計算書。今度は527個のセルが小文字に書き換わって、2000件を超えるエラーになった(→『Excel役所様式格闘記』第2話)。そこから『人が先にセルを赤く塗って、AIに読ませる』赤セル方式と、『読み取りはopenpyxl、書き込みはVBA』という線引きが生まれた。その計算に進むと、値を聞かれるたびに自分が答えている場面に気づいて、「全て私が答えるのならばAIに任せる意味がない」とClaudeに言った日もあった。そのあとも、長い修正対応を、最後まで走り切った。

方法は、ひととおり試した。チャットのClaude.ai、Cowork、Claude Code、Excelアドイン。Pythonで触る方法も。

方法は増えた。でも、決め手がない。

でも、どれもいまひとつ決め手に欠ける。武器は増えたのに、それを効率よく使えていない、連携する手間がなくなる方法は無いのか。

そんなことを考えながら手を動かしていた、ある日の話だ。前話から、少しだけ時間を戻す。

あの集計表に、もう一度

時間は4月7日。

その日、自分はもう一度あの集計表に向き合っていた。第1話で撤退した、建設系廃棄物搬入集計表だ。廃材の種類ごとにシートが分かれていて、前の月のシートをコピーして、日付を入れ直して、印刷範囲やタブの色を整えて……という作業を、毎月くり返している。今回やろうとしたのは、その月次シートを作る部分を、スキル(Claudeに手順を覚えさせておく、手順書のようなもの)にして片付けることだった。

最初に『無理だ』と引いた、まさにあの相手だ。あのときは、壊れた数式を401箇所も直した末に、肝心の仕組みが消えて撤退した。でも今度は、あれから積み上げてきた経験を持って戻ってきた。期待しながら、もう一度向き合う。そんな気持ちだった。

「CoworkでExcelを触るのは危険」

問題は、このスキルをどこで作るか、だった。

候補は二つ。ひとつはCowork(ブラウザの中でファイルを作ってくれる環境)。もうひとつはExcelアドイン(Excelの画面の横でClaudeに話しかけられる機能)。

自分は、はっきりこう答えた。

CoworkでExcelを触るのは危険だと判断しています。最初からの作成では良いのですが、何処で計算式が消えちゃうのか、また挿入されていた図形はなくなってしまいます。なので、これはExcelアドイン用のスキルにしたいと思っています。

少し補足する。Coworkは、Excelファイルを「Python(openpyxlという部品)でいったん分解して、書き戻す」やり方で扱っている。ゼロから新しく作るぶんには問題ない。でも、すでに数式や挿入図が入っている既存のファイルをいじると、どこかで計算式が消えたり、図形がそっくり飛んだりする。

これは、感覚で怖がっているのではない。数式が一気に壊れてやり直した経験があるし、別の様式では、管の加工表をPythonで処理させたら、中に入っていた図形(切管のマークや接続線)が丸ごと消えたこともあった。役所の様式集には、挿入図のある様式がいくつもある。これから役所のExcelを触りはじめる人にとっては、地味に痛い制限だ。

既存のExcelに触れると、音もなく壊れる。

最初にあの集計表に触ったときの「これは無理かも」という戸惑いが、いくつもの経験を経て、「危険だと判断しています」という静かな断定に変わっていた。自慢ではない。やってみて分かった事実を、そのまま口にしただけだ。

そう決めてからは、アドイン用スキルの仕様書を仕上げていった。下水・舗装形式と水道形式の見分け方、印刷範囲の決まり、タブ色の並ぶ順番。これらを、Excelアドインの上でClaudeが読んで動かせるように、手順を一つずつ書き起こす。仕上がった仕様書はCoworkに渡して、スキルの形にしてもらった。これで、Excelの画面の横でClaudeに頼めば、毎月のシートが作れる。ひとまず、それで片はついたはずだった。

ところが、Claude Codeなら

ここで終わらなかったのが、この日のおもしろいところだ。

同じ4月7日、自分はClaude Code(パソコンの中で直接ファイルを操作してくれる、開発者向けのClaude)にも、別の作業を頼んでいた。JWNET(廃棄物の処理を記録・管理する電子マニフェスト)から、受渡確認票のPDFをダウンロードして、種類ごとに仕分ける作業だ。Coworkだとブラウザをスクリーンショット越しに操作することになるが、Claude CodeならChromeを直接触れる場面が多くて速い、と聞いていた。実際に頼んでみると、するすると片付いていく。

ダウンロードのスキルができたところで、自分は「ちょっと集計表を作って」と続けた。Claude Codeは「集計表の作成からお願いします。どの工事の何の集計表ですか?」と返してくる。そう、落としてきた電子マニフェストを、あの建設系廃棄物搬入集計表にまとめる作業だ。それで自分は、かねての懸念を口にした。

Claude CodeもExcelの修正ではPythonを使うんですよね? Pythonだと数式が消えたり、図が消えたりするのでお願いしにくいんです。

ところが、返ってきた答えは予想と違った。Claude Codeには、Excel本体を裏で起動して、人間が手で触るのと同じようにセルを操作する方法がある、という。それなら数式も図形も壊れない。『それならお願いできる』と、自分は一気に前のめりになった。

Claude Codeが最初に挙げてくれたのが、win32comという方法だった。先に出してくれたものだから、こっちのほうがメジャーなんだろうと、勝手に思い込んでいた。だから『これでいけるはず』と期待した。

しかし期待通りには行かず、かなり大変な作業だった。

シートをコピーすると、なぜか別のウィンドウが勝手に開く。既存のシートの名前まで書き換わってしまう。何度やり直しても落ち着かない。

win32comは、何度やっても暴れる。

自分はこう伝えた。

既存のシートの名称が変わってしまっています。一度閉じた方が良いと思います。あと、他の人達がどの様に使っているのか、一度情報を検索しましょう。

調べてみても、その場でははっきりした原因が分からず、似たトラブルの報告がいくつも見つかるばかり。当時の自分は『Excelが新しくなって、まだ対応し切れていないのかな』と受け止めていた。

ならば、と昔ながらのマクロ(VBA)でも試した。が、今度はWindowsのセキュリティに弾かれて、これも進めない。

最後に切り替えたのが、xlwingsという、それまで名前も知らなかった方法だった。半信半疑で動かしてみると——一発で、全部うまくいった。

日付も、タブの色も、シートの並び順も、前の月のシート名も、そのまま。データのない種類には「搬出なし」のテキストボックスを貼り、データのある種類からは外す、という細かい処理まで、きちんと通った。

バッチリです!

名前も知らなかった方法が、すんなり助けてくれた。胸の中で、思わず『ヨシッ!!』とガッツポーズが出た。

思わず『ヨシッ!!』が出た。

長い回り道の末に、これが既存の役所Excelの「本命」だと、頭ではなく手で分かった瞬間だった。

xlwingsには小さな癖もあって、操作を始めると、空っぽの新しいブックが一緒に開く。でも、

まず新規のExcelが何故か開いています。これは閉じて貰えば良いだけなので問題はありません。

閉じれば済むだけの話で、実害はない。

と、このときの自分は『有名なwin32が転んで、無名のxlwingsが救ってくれた』と受け取っていた。でも後日、その見立てが少しズレていたと、調べてもらって分かった。

実は、xlwingsはwin32com(正確にはpywin32)と、まったくの別物ではない。win32comという「素の操作機能」の上に、分かりやすい命令の書き方をかぶせた「ラッパー」だ。同じエンジンに、握りやすいハンドルを付けたようなものだ。土台のしくみ(COM=Excel本体に命令を渡す経路)は同じ。だから、正しく操作できれば結果はどちらも同じで、数式も図形も壊れない。Excel本体が処理してくれるからで、ここがopenpyxl(Excelを介さず外から書き戻すので壊れる)との決定的な違いだ。

では、なぜwin32comのときは転んだのか。シートを複製したあと「どのシートに名前を付けるか」を「左から何番目」という番号で指していると、複製で並び順がずれて、新しいシートではなく元のシートを指してしまう。だから元のシート名が書き換わった。コピーが勝手に別ブックへ飛び出したのも、同じ「作法」の取りこぼしだった。一方でxlwingsには複製専用の命令があり、できた新しいシートをそのまま受け取れるので、番号のずれで取り違える心配がそもそもない。だから、名前がすんなり狙ったシートに当たった。さっきの「空の新しいブックが開く」のも、実はExcelを起動したときに必ず付いてくるおまけで、成功・失敗とは関係なかった。

つまり、「有名なほうが弱くて、無名なほうが強い」という優劣の話ではなかった。土台は同じで、xlwingsのほうが命令の作法を外しにくい。それだけのことだった。あやうく、間違った理解のまま書いてしまうところだった。

騙されるところだった

少し日が飛んで、4月29日。

Xを眺めていたら、こんな一文が目に留まった。「Coworkはネイティブにオフィス形式をサポートしているので」。

もし本当なら、話は早い。数式も挿入図も、これから始める人たちが困るあの問題も、全部まとめて解決してしまう。そうだったらいいな、という気持ちで、チャットのClaude.aiに聞いてみた。

いまXの記事で
Coworkはネイティブにオフィス形式をサポートしてるので
という記述がありました。
本当なの?

答えは「半分正しくて、半分は誤解を招く表現」。中身はやっぱりPython(openpyxl等)経由で、Office本体が動いているわけではない、と。つまり、すでにある複雑なExcelをそのまま壊さず編集できる、という意味での「ネイティブ」ではなかった。

やっぱりそうなのね。騙されるところだった。

危うく、騙されるところだった。

今までの経験と照らし合わせると、違う可能性のほうが高い。そう思いながらの問いだった。だから、返ってきた答えは、すんなり納得できた。

xlwingsは本命。でも、Coworkでは使えない

その流れで、かねて思っていたことを聞いた。

結局一番楽なのは、XLWing?を介してPython経由でClaude Codeに触って貰うのが、お願いしたことをそのまま出来て、図形が飛んだりしないんで、私はこれを使っていこうと思ってるんだけど、Coworkでもその度にインストールすれば使うことが出来ますか?

「その都度インストールすれば」と聞いたのには、わけがある。Coworkは、立ち上げるたびに中身がまっさらに初期化される。機能を入れても、次に開くときには素の状態に戻ってしまう仕組みなのだ。少し前、PDFの配管図から管材を読み取るスキルを作ったとき、日本語の文字読み取り機能をスキルの中に同梱して持たせたことがあった。あれと同じように、xlwingsも毎回入れ直せば使えるんじゃないか、と思って聞いてみた。

それに、本当の狙いは別にあった。自分の手元ではxlwingsで決着がついている。だったら、これから始める工事部のメンバーも、Coworkで同じことができないか、社内で使い所を広げられないか、を確かめたかったのだ。

答えは、はっきり「いいえ」だった。

CoworkはLinuxという、Excel本体の入っていない仮想のパソコンの中で動いている。xlwingsは「そのパソコンにインストールされたExcel本体を動かす」仕組みなので、肝心のExcelがいないCoworkでは、何度インストールしても動かしようがない。

肝心のExcelが、Coworkにはいない。

つまり、xlwingsを使うならClaude Code。ここで、方法とその置き場所の組み合わせが、すっと一つに絞れてきた。

三層構成という地図

ここまでの経験が、一枚の地図にまとまった。1話からずっと続いてきた、役所Excelとの格闘。自分とClaudeで奮闘してきた、その答えが、ようやく形になった。

整理がついたのは、4月7日にあの建設系廃棄物搬入集計表へ向き合ったときだ。壊れやすい既存の役所Excelは、Claude Codeとxlwingsに任せる。これが本命だと、手を動かして決着がついた。進む先は、もうこの日に決まっていた。

言葉にすると、こうなる。

  • openpyxlで壊れる可能性のある、既存のExcelブック → Claude Codeとxlwings

  • 壊れる数式や図形がない、または新規のExcelブック → Claude Codeとopenpyxl(できるという意味では、Coworkとopenpyxlでもいい)

  • Excelブックの簡単な修正 → Excelアドイン、もしくは壊れないデータならCoworkとopenpyxl

三つに分かれてはいるが、自分の場合、Excelを触る相手はだいたいClaude Codeだ。壊れる物があるかどうかで、xlwingsかopenpyxlかを選ぶ。それだけのこと。

たとえば、このあと取りかかった新規の付帯工の数量計算書は、壊れる物がないから、Claude Codeとopenpyxlで安心して組めた。openpyxlで触るだけなら、さっきの分類のとおりCoworkでもできる。それでもClaude Codeを選んだのは、当初設計になかった工種を、参考資料や既存の計算式をいくつも読み込ませながら一から組み立てる必要があったからだ。たくさんのファイルをまとめて読ませて考えてもらうには、Claude Codeのほうが向いていた。

三つ目の「簡単な修正」でアドインやCoworkも挙げたのは、Claude CodeをVSCodeでそのフォルダから立ち上げるのが、ちょっとした作業にはひと手間だからだ。

壊れる物があるかで、置き場所が決まる。

なかでもxlwingsが一番安心なのには、理由がある。どんなExcelブックが相手でも、数式も図形もそのまま守られる。そこにClaude Codeのメモリーとスキルが加わって、大事なことは覚えてくれるし、手順も工程化してあるから、毎回の説明が減って作業も速い。どの場面でも対応できて、そして何より、壊れない。だから、まず手が伸びるのはここ、という置き場所になった。

「迷わなくなった」というより、「決め手ができた」。そういう落ち着きだった。

地図はできた。でも、社内には渡せない

役所のExcelとの長い格闘の末、ようやく肚(はら)に落ちた。

ただ、この答えは、このまま社内には持っていけない。xlwingsもopenpyxlも、Claude Codeあってのものだ。そして、これから始める工事部のメンバーは、Claude Codeには手を出せない。

xlwingsが使えたら問題は無いんだけど、今度会社で導入が決まったので、始める子達がね。

思い返せば、4月29日にCoworkでxlwingsが使えるか聞いたのも、そこを確かめたかったからだった。でも、答えはノー。Claude Code抜きで同じ場所に辿り着く道は、まだ見えていない。

地図はできた。でも、まだ渡せない。

自分とClaudeの、Excelをめぐる奮闘記は、ここまでだ。1話の撤退から、赤セル方式、役割分担、そして三層構成の地図まで。長い道のりの先に、自分の答えはたしかに出た。けれど、それを社内で回すための試行錯誤は、まだ始まったばかり。地図づくりは自分のためにやっていたつもりが、振り返れば、いつも頭の片隅に、これから始める人たちがいた。

ばらばらの武器が、一枚の地図になった

長い格闘の末にたどり着いたのは、3つだった。

  • 機能の優劣ではなく「壊れる物があるか」で選ぶ。分かれ道は、ツールの名前ではなかった

  • 有名な機能が、いつも正解とは限らない。win32comでつまずいてxlwingsで通ったのは、ラッパーが命令の作法を吸収してくれただけだった

  • 自分用の地図は、そのままでは人に渡せない。解けたことと、渡せることは、別だった

次に試すこと

この地図を、コードを書けない人にどう渡すか。Excelアドインを中心に、運用の工夫だけで同じ場所に辿り着けないか、試してみる。


失敗を重ねた数だけ、地図は正確になった。
その地図を片手に、次は、人に手渡す番だ。

次回・番外編:コードを書けない人に、Excel×Claudeをどう渡すか

※本記事で触れた各ツール(Cowork・xlwings 等)の挙動は、2026年6月時点のものです。


#土木AI #業務改善 #非エンジニアのAI活用 #Claude活用 #土木DX #Cowork #Excel

いいなと思ったら応援しよう!