アフィリエイト広告を利用しています
アフィリエイト広告を利用しています

AI作成のVBAが動かない?JsonConverter導入でエラーを即解決する「環境設計」の極意

④AI参謀の活用

ChatGPTにVBAコードを書かせて、いざ実行した瞬間に出る「ユーザー定義型が定義されていません」という冷たいエラー。せっかく業務を効率化しようと一歩踏み出したのに、出鼻をくじかれて挫折しそうになりますよね。

pc_trouble_01

AIが悪いわけでも、あなたのスキルが低いわけでもありません。多くのケースでは Excel側に「JSONを解読する部品(ライブラリ)」が入っていないだけです。

【最短で解決する3ステップ(ここだけ見ればOK)】

  1. JsonConverter.bas(VBA-JSON)を入手してVBAへインポート
  2. VBEの参照設定で Microsoft Scripting Runtime を有効化(または回避策で遅延バインディング)
  3. 通信なしの 最小テストコード で動作確認(成功したらAPIへ進む)

JsonConverter導入_最短3ステップ図解

「導入できたら次はAPI連携まで一気にやりたい」という人向けに、シリーズ記事も置いておきます。

【第1回】REST APIとは?EXCEL VBAでVOICEVOXで喋らせる事ができる!
はじめに「REST APIって聞いたことはあるけど、難しそう」「初心者には無理かも」と思っていませんか?実は、REST APIを使えば、今すぐ便利な機能を実現することができます。そして驚くことに、Excel VBAでもREST APIを活用...
【第3回】【Excel VBA】REST APIのJSON操作:基礎から応用まで(実践コード付き)
REST APIにチャレンジし始めた人が、かなりの確率でつまずくポイントがあります。それが 「JSONが返ってきたけど、Excel VBAでどう扱えばいいの?」 という壁です。JSONは軽量で便利なデータ形式ですが、VBAから見ると「波カッ...

私はこれまで零細企業の現場で、「とりあえず動けばいい」で増殖したマクロが、数年後に誰も触れない“負債”になっていく場面を何度も見てきました。単にエラーを消すだけではなく、将来の属人化を防ぐ「環境設計」までセットで解説します。AIを真の部下にする土台を、ここで整えてしまいましょう。

AIが生成したJSONコードでエラーが出る根本原因

結論から言うと、AIが書いたコードで「ユーザー定義型が定義されていません」が出る代表的な原因は、コードの誤りというより「前提となる部品(JSON解析ライブラリ / Dictionary周り)が揃っていない」ことです。

ChatGPTは、ネット上の“よく使われる型”を前提に答えがちです。VBAでJSONを扱うなら、定番は VBA-JSON(JsonConverter.bas)。ただしAIは、あなたのPCにそれが入っているか・参照設定が済んでいるかまでは見てくれません。

「そもそもJSONって何?」から押さえたい場合は、先にここで用語と構造だけ掴むと理解が速いです。

【第2回】JSONとは?初心者向けフォーマット解説
JSONの基本JSON(JavaScript Object Notation)は、軽量で簡単に読み書きできるデータフォーマットです。REST APIのデータ交換や設定ファイルの保存形式として広く使われています。JSONの特徴キーバリュー型J...

ChatGPTは「あなたのPC環境」までは整えてくれない

AIは「優秀な新人」ですが、「情報システム部」ではありません。新人に「翻訳して」と頼むなら、辞書は上司が用意しますよね。VBAにとってのJSONライブラリは、その辞書です。

現場あるあるですが、AIの出したコードを見て「ChatGPTは嘘つきだ!」と怒っていた社長さんがいました。画面を一緒に見ると、原因はただ「Microsoft Scripting Runtime」の参照設定がOFFだっただけ。チェックを入れて再実行したら、あっさり動きました。この“環境構築”の概念を知らないと、AIという武器を宝の持ち腐れにします。

【視覚イメージ:プラモデルの落とし穴】

  • AI:完璧な「組み立て説明書(コード)」をくれる
  • あなたのExcel:説明書に書かれた「専用パーツ(ライブラリ)」が入っていない箱

→ 説明書が完璧でも、部品がなければ完成しません。

AIコードが動かない_原因は環境不足

この先は「部品の入手」と「Excelへの組み込み」を、つまずきポイント込みで最短ルートに整えます。

JsonConverter.basの入手方法と失敗しない導入ステップ

VBAでJSONを扱うなら、定番ライブラリ VBA-JSON(JsonConverter.bas) の導入が最短ルートです。VBA標準機能だけではJSONを解析できないため、このライブラリが“翻訳辞書”になります。

導入は大きく2つだけです。

  • ファイル入手(JsonConverter.basを手に入れる)
  • Excel側設定(インポート+参照設定)

GitHubからのダウンロードとファイルの解凍手順

download_github_01

まず、VBA-JSONをGitHubから入手します。ここで迷う人が多いです。私の支援現場でも「どれが本体かわからない」「関係ないファイルを開いて時間が溶けた」は頻発します。ポイントは“JsonConverter.basだけ見つける”こと。

  1. GitHubの「VBA-JSON(VBA-tools)」公開ページへアクセス
  2. Releases(リリース)が用意されている場合は、原則そちらからzipを入手(慣れていない人ほど事故が少ない)
  3. zipを解凍して、フォルダ内の JsonConverter.bas を探す

展開したフォルダの中に「JsonConverter.bas」が見つかれば準備完了です。

【現場の詰まりポイント】

  • 「Zipを解凍できていない」→ フォルダの中身が見えず迷子になります
  • 「JsonConverter.bas以外をインポート」→ 不要ファイルでVBEが散らかり、後で管理不能になります

VBAエディタへのインポートと必須の参照設定

vbe_setting_01

次に、手に入れたファイルをExcelに読み込ませ、参照設定(紐付け)をします。ここを忘れると、コードが正しくても動かない/または別のエラーに化けます。

【インポートと設定の3ステップ】

  • Excelで Alt + F11 → VBAエディタ(VBE)を開く
  • メニューの「ファイル」→「ファイルのインポート」→ JsonConverter.bas を取り込む
  • メニューの「ツール」→「参照設定」→ Microsoft Scripting Runtime にチェック → OK

この参照設定は、Dictionary(キーと値の組)を安定して扱うための土台になります。

もし参照設定に「Microsoft Scripting Runtime」が見当たらない場合でも、回避策はあります(後述の「よくあるエラー集」に入れています)。

ここまで整うと、AIに書かせたAPI連携コードの「動作率」が一気に上がります。

最小構成で学ぶJSON解析の基本とAIへの正しい命令法

ライブラリ導入後、いきなりAPI連携に突っ込むと、失敗したときに原因が切り分けできません。なので最初は通信なし・外部要因ゼロの最小コードで動作確認してください。これを挟むだけで、復旧が桁違いに早くなります。

ParseJson関数の使い方を最小限のコードで理解する

まずはこのテストコードをコピペしてください。これが動けば「JsonConverter導入+参照設定」は概ね成功です。

【コピペで動く:最小構成のJSONテスト】

Option Explicit

Sub 最小構成のJSONテスト()

Dim jsonText As String

Dim data As Object

‘ 手書きのJSON(まずは“確実に動く”最小データ)

jsonText = “”

‘ 解析(ここでエラーが出なければ、導入は概ねOK)

Set data = JsonConverter.ParseJson(jsonText)

‘ 取り出して表示(Dictionary的にアクセス)

MsgBox data(“品名”) & “の価格は” & data(“価格”) & “円です。”

End Sub

メッセージボックスが出れば、「ExcelがJSONを理解できる状態」になっています。次にAPIへ進むのが最短です。

【現場の切り分け術(一次情報)】

私は支援のとき、いきなりAPIコードを触りません。まずこの最小テストで「環境がOKか」を確定させ、次に通信(WinHTTP/XMLHTTP)を分離して確認します。

この順番を守るだけで、「3日悩む」が「数分で原因特定」に変わります。

AIにJsonConverterの使用を前提とさせるプロンプト

環境が整ったら、AIへの指示の冒頭で「JsonConverter導入済み」を宣言してください。これだけで、AIが“別解(独自実装)”に逸れて事故る確率が下がります。

【コピーして使える指示出しプロンプト】

「Excel VBAでAPI連携のコードを作成してください。なお、JSON解析には外部ライブラリの『JsonConverter.bas(VBA-JSON)』を使用します。参照設定(Microsoft Scripting Runtime)が有効である前提で、Dictionary形式でデータへアクセスするコードを提示してください。あわせて、よくある実行時エラーの原因と対処もコメントで補足してください。」

AIに丸投げではなく、共通ルール(標準部品)を指定して管理する。これが、非エンジニアがAIを“部下化”する最短ルートです。

よくあるエラーと原因・直し方(ここで9割止まる)

検索でも現場でも、詰まりポイントはほぼここに集約します。エラー文そのまま載せます。

VBA_JSON_よくあるエラー対応早見表

エラー/症状 よくある原因 対処
ユーザー定義型が定義されていません Dictionary型を使っているのに参照設定がない / 参照先が違う 参照設定で Microsoft Scripting Runtime をON。もしくは CreateObject(“Scripting.Dictionary”) で遅延バインディングに寄せる
オブジェクトが必要です / 実行時エラー ‘424’ Set漏れ / ParseJsonの返り値の扱い間違い Set data = JsonConverter.ParseJson(…) を確認。dataの型はObjectでOK(まず動かす)
型が一致しません / 実行時エラー ’13’ 数値/文字列の混在、Nullの扱い CStr/CLngなどで明示変換。Nullや存在しないキーは事前にチェック
参照設定にMicrosoft Scripting Runtimeが見当たらない 環境差 / Office構成差 遅延バインディング(CreateObject)に寄せる、または別PC/別Officeで確認。社内で「標準環境」を決めるのが再発防止
64bit環境でDictionary周りが不安定に感じる コード側の宣言/依存の組み合わせ まずは遅延バインディングで統一し、再現条件を切り分ける(“環境台帳”に記録)
【ワンポイント:遅延バインディング例】

Dim dict As Object

Set dict = CreateObject(“Scripting.Dictionary”)

参照設定が不安定な現場では、こうして「参照設定に依存しない書き方」に寄せるだけで事故が減ります。

経営者のための「死なないシステム」設計論:なぜ部品の管理が必要か

messy_system_01

結論から言うと、長く使えるツールに必要なのは「最新のコード」よりも、今回のJsonConverterのような「どの外部部品(ライブラリ)を使っているか」という設計図です。

AIを使えば“動くもの”は速く作れます。でも中身(部品構成)を把握せずにコピペを増やすと、数年後に誰も直せない負債になります。これが本ブログで警告している「デジタル・スラム」です。

「Excelを自作して崩壊した」パターンは、実録でまとめています(同じ事故を避けたい人は先に読んだ方が早いです)。

【実録】エクセル在庫管理を自作して失敗する本当の原因は「マクロ」ではない!崩壊しないための「設計」入門
今日も「#REF!」のエラー修正に追われていませんか?行を追加しただけで数式が壊れる。ファイルが重くて開かない。触った瞬間にレイアウトが崩れる。そのストレス、痛いほど分かります。そして多くの人が、「もっとマクロを勉強すれば直せるはず」と考え...

コピペを繰り返すと社内ツールが「デジタル・スラム」化する

「とりあえず動けばいい」で増築すると、あるPCでは動くのに別PCでは動かない、という事故が起きます。原因の多くは、外部部品がPCごとに違う“環境のバラつき”です。業務効率化のはずが、属人化と停止リスクに変わります。

項目 デジタル・スラム(危険) 死なないシステム(理想)
構築手法 AIコードを無秩序にコピペ 標準部品(ライブラリ)を定義
管理対象 コードの中身(難解) 導入部品と設定手順(明確)
トラブル時 作った本人しか直せない 手順書どおりに環境を整えれば復旧可能

「じゃあ何から設計すればいいの?」は、ここで手順化しています。

【AI開発初歩の初歩】コードの前に道を作れ!経営者が握るべき「死なない」機能設計の極意
AI開発で失敗したくない経営者必見。ChatGPTに指示を出しても動かない、外注費もない…その原因は『機能設計』の欠落です。実はプログラミング知識は一切不要。あなたの日本語だけで、デジタル・スラム化を防ぎ10年使える『死なないシステム』の地図を描く極意を解説します。

さらに、未経験の人が“設計書ベース”で資産化していくロードマップはここです。

AI開発こそ「設計書」を書け!未経験の経営者がデジタル・スラムを回避する最短ロードマップ
AI開発でエラーが続き悩んでいる経営者の方へ。実はAI開発の成否はコードではなく「日本語の設計書」で決まります。本記事ではデジタル・スラムを回避し、未経験でも最短でシステムを資産化する5ステップを公開。読めば死なない開発の型が分かります。

経営者が握るべきは「コード」ではなく「部品の台帳」

おすすめは、すべてのマクロに「利用部品」をコメントで残すルールです。たとえば以下のように。

【コピペで使える:部品台帳コメント】

‘【利用部品(環境台帳)】

‘ – VBA-JSON:JsonConverter.bas(入手元:GitHub VBA-tools / VBA-JSON)

‘ – 参照設定:Microsoft Scripting Runtime(または遅延バインディング)

‘ – 通信:WinHTTP / XMLHTTP(使う場合はここに追記)

‘【導入手順メモ】

‘ – JsonConverter.basをインポート → 参照設定 → 最小テストコードで確認

これだけで、PC買い替えや担当交代のたびに詰む確率が激減します。

API連携で広がる業務効率化の可能性

api_data_01

JsonConverterを扱えるようになると、Excelが世界中のデータとつながります。単にデータ取得が楽になるだけでなく、自社の専門知識と組み合わせることで“競合が真似できない”業務ツールが作れます。

住所データから方位を自動計算する仕組み(例)

  • 情報の取得:地図系APIに住所を投げ、緯度・経度を含むJSONを受け取る
  • データの解析:JsonConverterで必要な数値を抽出してセルへ
  • 専門的な計算:atan2 / arccos などで方位を算出

方位角(0〜360°)の算出は、ここで式をコピペできるようにしています。

【測量Excel】ATAN2で方位角0〜360°算出 北跨ぎ差分も解決
測量座標の方位角計算、ExcelのATAN関数で「角度がずれる」「マイナスになる」と悩んでいませんか?その原因と対策は「ATAN2」にあります。現場で即使える0〜360°算出の決定版数式をコピペで提供。北跨ぎ問題やミスを防ぐ検算方法、実用テンプレまで網羅した実務者必見の記事です。
【現場の一次情報(安全な言い方に調整)】

私の支援先では、事前チェック作業を「担当者の経験」に依存させず、事務スタッフでも回せる形にした結果、移動や確認にかかる時間が月に数十時間規模で減ったケースがあります(※業務内容・件数により差が出ます)。

API連携の具体的な実装(認証やリクエストの作り方)については、関連記事でステップ解説しています。

【第3回】【Excel VBA】REST APIのJSON操作:基礎から応用まで(実践コード付き)
REST APIにチャレンジし始めた人が、かなりの確率でつまずくポイントがあります。それが 「JSONが返ってきたけど、Excel VBAでどう扱えばいいの?」 という壁です。JSONは軽量で便利なデータ形式ですが、VBAから見ると「波カッ...

まとめ

JsonConverterの導入は、単なるエラー解消ではありません。AIという強力な部下が働けるようにする「着任準備(環境設計)」です。

  • 結論:AIコードが動かない原因は「部品(ライブラリ/参照設定)」不足が多い
  • 対策:JsonConverter.basをインポートし、参照設定(または遅延バインディング)を整える
  • 次:最小テスト→API通信、と切り分け手順を守ると挫折しない

次のステップ:

土台が整ったところで、実際にAPIを叩く楽しさを体感してみませんか?

【第3回】【Excel VBA】REST APIのJSON操作:基礎から応用まで(実践コード付き)
REST APIにチャレンジし始めた人が、かなりの確率でつまずくポイントがあります。それが 「JSONが返ってきたけど、Excel VBAでどう扱えばいいの?」 という壁です。JSONは軽量で便利なデータ形式ですが、VBAから見ると「波カッ...

現在、メルマガでは「AIを部下にするためのシステム設計図テンプレート」を無料配布しています。スラム化を防ぎ、経営を楽にしたい方はぜひご登録ください。

当ブログは、お風呂好きのみなさんとに快適なお風呂生活を楽しんで頂きたい思いで運営しています。
「記事が役に立った」「続きも読んでみたい」と感じていただけたら、下記リンクからのご利用・ご支援で応援してもらえると嬉しいです。

※Amazonのアソシエイトとして、「メリ爺の事務攻略万歳」は適格販売により収入を得ています。

④AI参謀の活用
シェアする
メリ爺をフォローする

コメント

タイトルとURLをコピーしました