【ITニュース解説】I Built My Own AI Copilot for Excel Desktop — Without Paying for Microsoft 365 Copilot
2026年09月21日に「Dev.to」が公開したITニュース「I Built My Own AI Copilot for Excel Desktop — Without Paying for Microsoft 365 Copilot」について初心者にもわかりやすく解説しています。
ITニュース概要
Microsoft Copilotを使わず、Excelデスクトップ向けにAIアシスタントを自作した。自然言語で指示すると、データの整理やグラフ作成などをExcel上で直接実行できるアドインだ。AIとExcel操作を分離した設計で、AIモデルを自由に選択可能。安全性にも配慮し、GitHubで公開中。
ITニュース解説
このニュース記事は、Excelデスクトップで利用できる自分だけのAIアシスタントを開発した話である。このアシスタントは、Microsoft 365 Copilotのような既存のAIツールとは異なり、利用制限を気にせず、より自由にExcelを操作できることを目指している。
開発者は、Excelを使う多くの人が抱える「もっと高度な操作をAIに任せたい」という願望から出発した。数式やVBA、手作業では限界があると感じ、「このデータをきれいに」「重複する顧客を探して」「このテーブルからグラフを作成して」といった自然な言葉の指示で、AIがExcel内で実際に作業してくれることを求めていた。Microsoftには「Copilot for Excel」があるが、筆者はその利用回数制限に不満を感じ、自分で独自のAIアシスタントを構築することにしたのだ。これは単なるチャットボットではなく、自然言語の指示を実際のExcel操作に変換する、Excelデスクトップ内に組み込まれたAIアシスタントを目指すプロジェクトだ。
開発された「Excel AI Assistant」は、Excelデスクトップ用のアドインとして機能し、CopilotのようなAIサイドバーを提供する。しかし、MicrosoftのCopilotとは異なり、「OpenCode」という技術を介して様々なAIシステムと連携できるのが最大の特徴である。
このアシスタントの基本的な仕組みは以下の通りだ。まず、Excelデスクトップのサイドバーからユーザーが自然な言葉で指示を出す。この指示は「Office.js」という技術を使って「Python Bridge」という仲介役プログラムに送られる。Python Bridgeは指示を「OpenCode」に渡し、OpenCodeが様々なAIモデルやAIサービスプロバイダーと通信して処理を行う。
ここで特に重要なのは、AIがExcelを直接操作するのではなく、**「構造化されたアクション」**という特定の形式の指示を生成する点だ。例えば、「売上データを収益の降順で並べ替えて」という指示に対して、AIは「ソートする範囲」「シート名」「ソートする列番号」「昇順か降順か」といった、コンピューターが理解しやすい明確なデータ形式の指示を返す。そして、Excelアドイン内の「Excel実行エンジン」が、この構造化されたアクションを検証し、実際のExcel操作として実行する。AIが直接任意に操作するのではなく、検証された構造化された指示を介して安全に操作するという設計は、このプロジェクトの最も重要なアーキテクチャ上の決定事項である。
このプロジェクトの背景には、「ExcelのインターフェースとAIのプロバイダー(AIを提供する側)が同じ製品である必要はないのではないか」という筆者の考えがある。Excelはあくまで操作の「窓口」であり、AIの「頭脳」は別々に選べるべきだ、という思想だ。これにより、ユーザー → 自然言語 → AI → 構造化されたExcelアクション → 検証 → Office.jsによる実行 → Excelという、より安全で制御しやすい仕組みが実現されている。
このAIアシスタントは、単にExcelに関する質問に答えるだけでなく、実際のワークブック操作を実行できる。「A1からF500の範囲でテーブルを作成して」「売上データを収益の降順で並べ替えて」「重複する顧客IDを探してハイライト表示して」「利益率の数式を追加して」「月ごとの収益を示す縦棒グラフを作成して」といった具体的な指示が可能だ。さらに、ピボットテーブル、グラフ、条件付き書式、セルの書式設定、数式操作、シートの構造変更など、高度なExcel操作もサポートする。例えば、「このレポートをプロフェッショナルにフォーマットして」といった曖昧な指示に対しても、AIは「ヘッダー行を特定して太字にする」「数値形式を適用する」「罫線を追加する」「列幅を調整する」「ヘッダー行を固定する」「テーブルを作成する」といった複数の具体的な構造化アクションに分解し、それを実行層が処理する。これは、AIがワークブックの状態を推論し、JavaScriptによる決定論的な実行層が実際に変更を行うという設計思想に基づいている。
ユーザーインターフェース部分は「Office.js」という技術を使ってHTML、CSS、JavaScriptで開発されている。「taskpane.js」がアシスタントとの対話とPython Bridgeとの通信を担い、「excel_actions.js」が実際のExcel操作を行う部分だ。Excelの操作は複雑なため、この実行層は数式、書式設定、テーブル、グラフ、結合セル、非表示行・列、フィルター、条件付き書式、ウィンドウ枠の固定、構造変更、元に戻す機能など、多岐にわたる状況に対応できるよう慎重に構築されている。
「Python Bridge」は、ExcelのUI(JavaScript)とAI(OpenCode)の間を取り持つ重要な役割を果たす。AIが生成できるExcelアクションの種類をPython Bridgeが管理し、安全性を確保している。
「OpenCode」は、このプロジェクトの核となる部分の一つで、特定のAIモデルに固定されず、様々なAIモデルやAIサービスプロバイダーを切り替えて使えるようにするためのインターフェースである。これにより、Excelアドイン自体は「製品」として存在し、AIモデルは「交換可能な部品」として扱われ、将来的な柔軟性をもたらす。
筆者は、いくつかの重要な注意点も明確にしている。このプロジェクトは「完全にローカルで動くAI」ではない。アドインとPython Bridgeはユーザーのコンピューター上で動くが、OpenCodeを通じてクラウド上のAIサービスを利用する可能性もあるため、データが外部に送信される場合がある。また、このプロジェクトはMicrosoft Copilotの「無料代替品」ではない。OpenCodeで利用するAIモデルによっては、利用料や利用制限が発生する場合がある。
特に、安全性には細心の注意が払われている。AIにスプレッドシートへのアクセスを許可することは、データの破壊につながる可能性があるため、単にAIの指示をそのまま実行するような設計は避けている。安全対策として、「構造化されたアクションの生成」「Python Bridgeでの厳格な検証」「操作のグループ化と状態管理を伴う実行層」「元に戻す/やり直す機能」「変更前の自動バックアップ」といった複数の層で保護されている。
このプロジェクトの真の面白さはExcelそのものだけでなく、その「アーキテクチャ」にあると筆者は述べている。AIが自然言語を理解し、既存のソフトウェアが正確な操作を行うというパターンは、今後、CAD、エンジニアリングソフトウェア、プロジェクト管理、ERPシステム、データ分析、レポートツール、財務モデリングなど、様々な分野に応用できる可能性を秘めている。AIがアプリケーション全体を置き換えるのではなく、アプリケーションの上に「自然言語で制御する層」として加わる、新しいソフトウェアの形を実験しているのだ。
筆者は、自分が「Microsoft Copilot」を開発したわけではないことを強調している。このプロジェクトは「個人的で拡張可能な、AIバックエンドを独立して選択できるExcelデスクトップ用AIインターフェース」であり、ベンダーの決定を待つことなく、自分自身のワークフローを構築できる自由を重視している。
現在、筆者はこのプロジェクトに対して、Excelユーザーや開発者からの正直なフィードバックを強く求めている。実際に使ってみて「うまくいかなかったこと」「なぜこうなるのか」「不便な点」「こうあるべき」といった具体的な意見が、プロジェクトの次のバージョンを形作る上で不可欠だと考えている。特に、実際の仕事で使うような「整理されていないデータ」「大規模なデータセット」「複雑な指示」などを試して、何が問題だったかを教えてほしいと願っている。
このプロジェクトは完璧でも完成形でもないが、「なぜExcelを使うのに特定のAIアシスタントに縛られる必要があるのか?」というシンプルな問いから生まれた。それは、AIと既存ソフトウェアの新しい連携の可能性を示し、システムエンジニアを目指す人々にとっても、AIがどのように実際のアプリケーションに組み込まれ、ユーザーの生産性を高めるかを学ぶ良い事例となるだろう。