本記事は Zenn で公開した実測記事の Qiita 版です (筆者本人による転載・一部整形)。
「業務フローのところだけ、指摘が薄くないですか」——AIに設計書レビューを頼んだとき、そんな経験はありませんか。
先日の記事(「この設計書、レビューして」で頼むと検出率0%だった)では、総務省の税務システム標準仕様書をAIにレビューさせ、頼み方で検出率が0%から86%まで変わる実測を書きました。実はあのとき、業務フローはPDFで渡していたので、この「指摘が薄い」問題は起きていません。
正体に行き当たったのは、同じ検証の途中で別の公開資料を調べていたときです。デジタル庁が公開している業務フローのExcelをopenpyxl(Pythonのxlsx読み取りライブラリ)で開いたら、セルに入っている値はたった5個。業務の中身180個は、全部「図形」の中にありました。
そしてAIは、セルの5個しか届いていなくても「レビューしました」という顔で返事をします。この記事は、その罠を実物の公開資料とコードで解剖した単独版です。
設計レビュー全体の実測(検出率0%→86%)は本編の記事にまとめています。本記事は、その検証で見つけた「Excel図形問題」だけをコードで中身まで開けて確かめたものです。
開いてみたら、見出ししかなかった
題材にしたのは、デジタル庁が公開している「地方公共団体情報システム共通機能標準仕様書」の別紙、申請管理機能の運用フローExcel(20230929_policies_local_governments_common-feature-specification_outline_05.xlsx、2026年6月取得)です。実物の公開資料です。
(検証環境: Python + openpyxl。Claudeを使った実験はブラウザ版 claude.ai の Pro プラン・Sonnet 5・思考モード最大で、いずれも2026年6月末〜7月頭に実施しています。)
import openpyxl
wb = openpyxl.load_workbook("業務フロー.xlsx")
for row in wb.active.iter_rows():
for cell in row:
if cell.value:
print(cell.value)
結果は、拍子抜けするほどシンプルでした。業務フローのシートでセルに入っている値は、申請者・自治体・マイナポータル・申請管理機能・標準準拠システムの5つだけ。これはスイムレーン(担当ごとに分かれた横帯)の見出しです。結合セルも5個。業務の中身を示す言葉は、セルの中に1つもありませんでした。
では、実際の業務(申請データの取込や審査結果の連携)はどこに消えたのか。
中身は全部、図形の中にあった
Excelファイルの正体は、ZIP圧縮されたXMLの束です。図形(テキストボックスやオートシェイプ)のテキストはxl/drawings/drawing*.xmlという、セルの値とはまったく別のファイルに格納されています。ここを直接展開して、<a:t>タグ(図形内テキストの実体)を正規表現で抜き出してみました。
import zipfile, re
with zipfile.ZipFile("業務フロー.xlsx") as z:
xml = z.read("xl/drawings/drawing1.xml").decode("utf-8")
shapes = re.findall(r"<a:t>(.*?)</a:t>", xml)
print(len(shapes)) # → 114
drawing1.xmlだけで114個。同じ要領で各シートのdrawing*.xmlを合計すると180個でした。なお<a:t>は書式の切れ目ごとに分割されることがあるため、この180は厳密には「図形の数」ではなく「図形内テキストのかたまりの数」に近い値です。中身は、申請データ取込・宛名番号変換・形式審査結果・実質審査・審査結果連携・申請処理状況登録API・業務DB——まさに業務フローの本体です。
セルに5個、図形に180個。この差を見た瞬間、「そりゃ指摘が薄いわけだ」と声が出ました。コピペやテキスト読み取りでExcelを渡すと、AIの目には見出し5個しか映っていなかったのです。それでも返事は来ます。中身が渡っていないことに、渡した側が気づけないのが一番厄介なところです。
Excel設計書へのAIの指摘が妙に薄いと感じたら、まずセルと図形のどちらを読ませているかを疑ってみてください。
「MCPサーバーなら読めるのでは」——実測したら0個だった
「Excel対応のツールを噛ませればいいのでは」と思うかもしれません。私も最初はそう考えていました。
ところが、Excel対応のMCPサーバー(AIにExcel操作の手足を生やすための接続規格のサーバー)として代表的なnegokaz氏のexcel-mcp-server(v0.12.0)で実測したところ、提供されるツールはセルの値・数式・シート・テーブル操作の6種で、図形を読み取るツールは存在しませんでした。基本フローのシート全域を読ませても、取れたのはスイムレーン見出しの5個——openpyxlのセル読みと同じ結果です。図形内テキスト180個のうち、拾えたのは0個。ツールに図形を読む口が無いので当然です。
示唆的なのは、このサーバーにWindows限定の「シートのスクリーンショット」機能が付いていることです。図形は"画像として見せる"しかない、と作者も分かっているのだと思います。
図形の中のテキストを取りたければ、今回のZIP展開(数行のスクリプト)が確実です。ただ——テキストが取れても、まだ足りないものがあります。
テキストが取れても、つながりが消える
業務フローの本質は、箱の中身だけでなく「どの箱からどの箱へ」というつながりです。矢印の位置関係は、Excel内部では座標情報として保存されています。テキストだけを抜き出す方式では、この座標=つながりの情報がごっそり抜け落ちます。180枚の付箋を渡されて、貼ってあった順番だけ教えてもらえない、という状態に近いです。
対照実験として、IPA(情報処理推進機構)が公開している製造業の業務フロー資料「新業務フロー(詳細)」を、今度はPDFのままClaudeに読ませてみました。結果は対照的でした。担当レーン(事業者・関係会社・当社の各グループ)も、8ステップに及ぶ処理の流れと順序も、途中の分岐も、正確に読み取れました。郵送・電話・電子メールといった連携手段や、「システム化対象=緑」という色分けの凡例まで拾えています。矢印の向きも色も、画像として渡せば生きるのです。
同じ「業務フロー」でも、PDF(画像として渡す)かテキスト抽出かで、ここまで差が出ます。
📢 8/29(土) にオンライン勉強会をやります
「AI に読ませる」工夫の先にある、AI に実務を任せる仕組みの実物を 40 分でお見せします。50 案件の進捗催促を Slack・スプレッドシート・cron で自動化した構成とデモ、うまくいかなかった部分も含めて話します。オンライン・無料・定員 20 名です。
▶ 50案件の催促をAIに任せたら「進捗どう?」がほぼ消えた — 実測勉強会 #1 (connpass)
4つの手法を比べる
| 手法 | Excelのまま | 図形テキスト | つながり・流れ | 手間 | 向く用途 |
|---|---|---|---|---|---|
| PDF変換 (Excel for the web等で) | ✕ (PDF化が必要) | ◎ | ◎ 視覚的に流れも読める | 最小 | レビュー・図の理解 |
| ZIP解凍+XML (今回の方法) | ○ | ○ 180個取れる | ✕ 座標ごと落ちる | 数行のスクリプト | 図形テキストの検索・一覧化 |
| excel-mcp-server (negokaz氏) | ○ そのまま | ✕ 0個 (v0.12.0実測) | ✕ | Node.js+MCP設定 | セル値・数式のデータ操作 |
| Claude for Excel (公式アドイン) | ○ そのまま | △ 図形読取は記載なし | △ (未検証) | 有料プラン (.xlsx/.xlsm対応) | セル・数式・表の質問応答 |
結論は、身も蓋もないのですが「流れまで読ませたいなら、PDF化が一番確実」です。図形の中のテキストだけならZIP展開で取れますが、矢印のつながりは視覚情報なので、テキスト抽出では原理的に再現できません。
「Claude for Excelの公式アドインは?」と思う方もいるかもしれません。2026年7月時点で全有料プラン向けに正式提供されていますが、公式ヘルプが挙げているのはセル・数式・表への質問応答やデバッグで、図形(テキストボックス)の読み取りは記載がありませんでした。図形前提の業務フローを読ませる用途なら、今のところPDF化のほうが確実です。
後日談: AIは自分で"目"に切り替えていた
面白い後日談があります。「セルに5個しかないなら、ブラウザ版のClaudeに渡してもフローの説明はできないはずだ」と思い、同じExcelファイルをそのまま渡して、どんな業務の流れが描かれているか説明を頼んでみました。
想定は外れました。15分後、5レーンの構成から処理の順序・分岐・API名まで、ほぼ完全な説明が返ってきたのです。
本当にファイルを読んだのかは怪しみました。処理中にWeb検索をした形跡があり、題材は公開資料なので「外部知識で語った」可能性が残るからです。そこで図形の文言を2箇所だけ架空の名前に差し替え、Web検索をオフにして再試験しました。結果、その架空の名前を正しく拾って説明してきました。ファイルを読んでいるのは確実です。
どうやって読んだのか。2回目の回答の冒頭に、こうありました。
「セル自体にはレーン名しか入っていなかったため、PDF変換して図として読み取りました」
1回目の処理中には「SVG図を構築し可視化」という表示も出ていました。読んだ経路の説明はAIの自己申告なので割り引くとしても、「テキストとして読めないと気づいたら、自分で視覚化してから"目"で読む」という回避策を自力で実行したことは、架空名の再試験で確かめられました。
本文で中身を解剖した今なら、この挙動の意味がはっきり言えます。セルを読んでも5個しかない。だからAIは自力の画像化に回り、そこに15分かかる。最初からPDFで渡せば、その遠回りごと省けて数十秒です。
明日からできること
- Excelの図形(テキストボックス・オートシェイプ)で描かれた業務フローは、渡す前にPDF化する。 Excel for the webの「印刷」からPDF保存するだけで十分です
- 図形の中のテキストだけ拾えればいい用途(検索・一覧化)なら、ZIP解凍+XML抽出(上の数行のスクリプト)で足ります。 Excel対応のMCPサーバーは、実測では図形非対応でした。いずれの方式でも、矢印のつながりまでは出てこないと割り切ってください
- 「AIに投げたら普通に返事が来た」は安全のサインになりません。 返事が来ることと、中身を読めていることは別問題です。業務フローのような図中心の資料で、指摘の量が妙に少ないときほど疑ってください
冒頭の「業務フローへの指摘だけ薄い」の正体は、AIの手抜きではなく、セルと図形という保存場所の違いでした。もし今、Excelの図形入り設計書をそのままAIに渡しているなら、一度PDFに変換してから同じ質問をしてみてください。指摘の量が、たぶん変わります。
出典: デジタル庁ウェブサイト「地方公共団体情報システム共通機能標準仕様書」関連資料(申請管理機能の運用フロー)/ IPA(情報処理推進機構)公開資料「新業務フロー(詳細)」。本文に記載した図形テキストはいずれも公開資料そのままです(後日談の再試験で使った2箇所の架空名への差し替えは検証専用のコピーで行っており、本文の数値・引用には含まれていません)。
3ペルソナでの観点分割レビューなど、設計書レビュー全体の実測(検出率0%→86%)はこちらの記事に、実際に使ったプロンプト一式はnoteの実践パッケージにまとめています。
🔍 moname_ai — Claude を本業で使い倒した実測記録を書いています。続きは Bluesky (@moname-ai.bsky.social) で。