
【開発備忘録①】娘の漢字検定対策に、AIと一緒に"模擬試験自動生成システム"を作った話
娘が漢字検定9級を受けることになりました。
こんにちは、じゅんです。
今回はいつもとちょっと違う記事です。
最近、AIを使ったアプリ開発を本格的に始めまして、その開発過程をありのままに記録していこうと思っています。
ツールの使い方でも、成功談でもなく、「こういう流れで作った、こういうところで詰まった」という備忘録に近い内容です。
私自身プログラミング未経験者なので、プログラミングの知識はゼロでも大丈夫です。同じようにAIを使って何か作ってみたい方に「自分にもできそう」と感じてもらえたら嬉しいです。
ということで、今回の開発テーマはこちら。
漢字検定9級の模擬試験を自動生成して、学習履歴まで管理できる仕組みを作る。
① なぜ作ろうと思ったか
きっかけは、小3の娘が3月から通い始めた塾のイベントです。
「受けてみませんか」という案内が来て、親としてはせっかくだしと思ったのですが、本人のテンションはというと、正直あまり高くありませんでした。
「べつにいいけど〜」くらいの温度感。
まあそうだよな、とは思いつつ、せっかく受けるならちゃんと準備させたいと思って、まず市販のドリルを買ってみました。
ところが、これが続かない。
同じ問題を繰り返すだけの構成なので、やればやるほど「答えを覚えてしまう」状態になります。それ自体は悪くないのですが、娘のモチベーションはじわじわ下がっていく一方でした。問題が新鮮じゃないと、やらされてる感が増すのでしょう。
そこで考えました。
毎回違う問題が出てきて、しかも苦手なところを重点的にカバーしてくれる仕組みが作れないか。
私はプログラマーでもIT系の出身でもありません。生成AIを仕事に取り入れながら、その活用範囲を少しずつ広げてきた、いわゆる非エンジニアです。そんな自分が「だったらClaudeに頼もう」と思ったのは、ある意味自然な流れでした。コードは書けなくても、AIに指示を出しながら一緒に作り上げていくバイブコーディングというスタイルがあるからです。
Claudeと壁打ちしていくうちに方向性が固まっていきます。
・模擬試験の生成はClaudeのプロジェクト機能に任せて、
・出題履歴や苦手漢字の管理はGoogle Sheetsで蓄積していく
——という二本立ての構成です。
娘のモチベーション対策のつもりが、気づいたらちょっとした開発プロジェクトになっていました。
② 何を作ったか
作ったのは、ClaudeとGoogle Sheetsを組み合わせた学習管理の仕組みです。
構成はシンプルで、2つの役割に分かれています。
Claudeのプロジェクト機能が「模擬試験を作る側」、
Google Sheetsが「学習履歴を記録・分析する側」です。
【Claudeのプロジェクト機能】
Claudeには「プロジェクト」という機能があり、特定の指示や情報をあらかじめ設定しておくことができます。
今回はClaudeと対話しながら、漢字検定9級の試験情報・出題構成・問題の書式ルールまでを含んだ詳細なプロンプトを一緒に設計しました。このプロジェクトに設定しておくことで、以降は「模擬試験を作って」と一言打つだけで、本番と同じ7大問構成・150点満点の試験問題がWordファイルで出力されます。問題シートと解答シートのセットで、そのままプリントして使えます。
なお、Claudeのプロジェクト機能は無料版でも利用できます(最大5プロジェクトまで)。今回のような個人利用であれば、課金なしで始められます。
【Google Sheetsの学習管理】
Google Sheetsは3枚のシートで構成しました。
出題履歴シート:試験回ごとの点数・合否・出題した漢字・間違えた漢字を記録
漢字マスターシート:9級の配当漢字240字すべての出題回数と誤答回数を管理
苦手ダッシュボード:誤答回数の多い漢字が自動でランキング表示



実際に2回試験を終えた時点で、シートにはこんなデータが蓄積されています。
火(1年生):誤答2回 町(1年生):誤答2回 歌(2年生):誤答2回
「火」と「町」と「歌」が鬼門のようです。親としては「そこか」と少し意外でしたが、データは正直です。次の模擬試験ではこの漢字たちが優先的に出題されます。
点数を入力するだけで正答率と合否が自動計算され、試験問題生成時にClaudeから出力される出題した漢字リストを貼り付けるだけで240字分のマスターデータが自動更新されます。
試験後の作業は、点数を入力して出題リストをコピペ、間違えた漢字を入力するだけで完了です。
③ 実際の開発プロセス&詰まったこと
開発といっても、私はプログラマーではありません。コードは書けないし、Google Apps Scriptも「なんとなく聞いたことある」レベルです。いわゆるバイブコーディング——AIに指示を出しながら、出てきたコードをそのまま使っていくスタイルで進めました。
最初にClaudeと設計を固め、「Google Sheetsのひな形をApps Scriptで一括生成したい」という方針になりました。
Claudeがコードを書いてくれて、私はそれをApps Scriptエディタに貼り付けて実行するだけ——のはずでした。
1回目のエラー。
Exception: Ranges must have at least one range.
条件付き書式の書き方が間違っていたらしく、処理が途中で止まりました。Claudeに報告すると即座に原因を特定して修正版を出してくれました。
2回目のエラー。
TypeError: ...setFontWeight is not a function
条件付き書式のAPIには存在しないメソッドを使っていたとのこと。再度修正。
3回目のエラー。
Exceeded maximum execution time
今度は処理が終わらないまま6分が経過してタイムアウト。Claudeは「セルへの書き込みを1行ずつではなく一括処理に変更する」という方針で全面的に書き直してくれました。
ここで私がやらかしたのは、エラーが出るたびにスプレッドシートの中身を確認せずにいたことです。
4回目の実行後もタイムアウトエラーが表示されたので「またか」と思っていたのですが、ふとスプレッドシートを開いてみると——3シートすべてのデータがきれいに入っていました。タイムアウトしたのは処理の最後に表示しようとしていたアラートダイアログの部分だけで、肝心のデータ書き込みはすでに完了していたのです。
Claudeにそのことを報告すると、こんな返事が来ました。
「大丈夫です!これは成功です。タイムアウトエラーには『処理が止まったエラー』と『処理は終わったが後処理に失敗したエラー』の2種類があります。今回は後者でした」
エラー=失敗、ではないのだと学んだ瞬間でした。
GASのエラーが落ち着いたあと、もう一つ詰まった箇所がありました。
模擬試験の書式です。最初に生成された試験問題は、解答欄のかっこが途中で改行されてしまったり、1ページに問題が詰め込まれすぎて見づらかったりしました。小学生が手書きで答えるものなので、解答スペースの広さや文字の大きさは特に気を使いました。Claudeとやり取りしながら大問ごとに書式ルールを細かく設定し、v2で納得のいく仕上がりになりました。

もう一つは区切り文字の問題です。
Claudeが提示する出題漢字リストを出題履歴シートに貼り付けると、漢字マスターシートに反映されないという問題が起きました。原因を調べると、リストの区切りが「・」だったり「、」だったりスペースだったりと一定でなかったためです。これもClaudeがApps Scriptのコードで対応してくれて、どの区切り文字でも自動判別できるようになりました。
こういう細かいところを一つひとつ潰していく作業が、実は開発の大半を占めていたかもしれません。
④ できあがったもの・現在の状況
現在、第2回模擬試験まで完了しています。
第1回は120点でぎりぎり合格ライン、第2回は107点で不合格でした。結果だけ見ると「大丈夫か?」となりますが、苦手漢字のデータはしっかり蓄積されています。「火・町・歌」を中心に、次回は重点的に出題される予定です。
娘の反応としては、毎回違う問題が出てくることで「また同じやつだ」という感覚がなくなったようで、ドリルのときよりは取り組む姿勢が前向きになってきました。ゲームのステージをクリアしていく感覚に近いのかもしれません。
システムとしては、開発の過程で作ったコードや設定内容をまとめた開発手順書も整備しました。同じ仕組みを8級や他の資格試験に転用するときは、漢字リストとClaudeへの指示文を差し替えるだけで使い回せる設計にしてあります。一度作ってしまえばずっと使えるのが、この仕組みの一番のメリットです。
⑤ 今後の展開
試験本番まで、あと数回の模擬試験を重ねる予定です。
苦手漢字が絞り込まれてくるにつれて、試験の難易度は自然と上がっていきます。それが本番に向けた仕上げになるはずです。
娘が合格できるかどうかは、続報をお待ちください。
合格したあかつきには、8級アップデート版として記事にする予定です。そのときは今回の仕組みをそのまま引き継いで、対象漢字と試験形式だけ更新します。「一度作ればずっと使える」を実証できるかどうか、そちらも楽しみにしていただければと思います。
プログラミング未経験でも、AIと一緒ならこういった仕組みは作れます。
エラーが出ても焦らず、まず結果を確認する——そのくらいの心構えで十分です。
同じように「子どもの学習をサポートしたい」「何か作ってみたいけどコードは書けない」という方の参考になれば幸いです。
このシリーズでは、
非エンジニアがAIと一緒に何かを作る過程を、
ありのままに記録しています。
コードが書けなくても大丈夫、手順通りに動けば結果は出る。
次は、あなたが作る番です!