Media > AI活用ユースケース > 品質管理 > 毎月作る確認テストの問題と解答を、配る前に誤字・設問番号のずれ・配点の合計・解答との食い違いで点検する

毎月作る確認テストの問題と解答を、配る前に誤字・設問番号のずれ・配点の合計・解答との食い違いで点検する

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

毎月作る確認テストの問題と解答を、印刷する前に点検します。設問番号の連番と配点の合計は仕組みで数え、誤字や「2つ選べ」なのに解答が1つ、といった食い違いはAIが印を付けます。

サマリー
生成AI
ChatGPT/Claude/Gemini
連携・自動化
Google Apps Script/Make/n8n/Power Automate
対象業界
人材/教育
対象部門
品質管理
対象業務
内容確認・チェック
主な課題
人手が足りない/属人化している/確認ミスが多い
AIで行う処理
校正
主な効果
入力漏れ削減/品質標準化/工数削減
導入難易度
★★☆☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
条件付き
現在工数
40h/月
AI導入後
16h/月
想定削減
60%
年間削減
288h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 作った講師が、問題と解答のドキュメントを「点検待ち」のフォルダに入れ、点検担当に知らせる
  2. 点検担当が問題を頭から読み、誤字と、設問番号が順に並んでいるかを見る
  3. 各設問の配点を書き出し、電卓で合計して満点になるかを確かめる
  4. 解答のドキュメントを並べて開き、設問の数と番号が問題と合っているかを見る
  5. 設問ごとに、問題文の指示(「記号で答えよ」「2つ選べ」「20字以内で」)と解答の形が合っているかを見る
  6. 計算問題は自分で解き直し、解答と合うかを確かめる
  7. 気づいた点をコメントで書き、作った講師に戻す。講師が直して印刷に回す
導入後(After)
  1. 人作った講師が、問題と解答のドキュメントを決めた名前の付け方で「点検待ち」のフォルダに入れる
  2. 自動10分ごとにフォルダを見て、問題と解答がそろった組を見つける
  3. 自動2つのドキュメントの本文と表を読み、設問ごとに分ける
  4. 自動設問番号の連番、配点の合計、問題と解答の設問の数を数える
  5. 自動生成AIが誤字、指示と解答の形の食い違い、疑わしい解答に印を付け、JSONで返す
  6. 自動結果を点検結果のスプレッドシートに書き、作った講師と点検担当にメールで知らせる。2つのドキュメントは「点検済み」へ移す
  7. 人作った講師が指摘を見て、直すか直さないかを決め、直したら再び「点検待ち」に入れる
  8. 人点検担当が、AIの指摘の無い組も含めて、図と印刷の体裁、疑わしいと出た計算問題を見る
  9. 人点検担当が印刷してよいと決める
各工程の詳しい説明を読む
  1. 作った講師が、問題と解答のドキュメントを「点検待ち」のフォルダに入れ、点検担当に知らせる
  2. 点検担当が問題を頭から読み、誤字と、設問番号が順に並んでいるかを見る
  3. 各設問の配点を書き出し、電卓で合計して満点になるかを確かめる
  4. 解答のドキュメントを並べて開き、設問の数と番号が問題と合っているかを見る
  5. 設問ごとに、問題文の指示(「記号で答えよ」「2つ選べ」「20字以内で」)と解答の形が合っているかを見る
  6. 計算問題は自分で解き直し、解答と合うかを確かめる
  7. 気づいた点をコメントで書き、作った講師に戻す。講師が直して印刷に回す

(a)読み合わせに時間がかかる。 2番から6番を1組ずつ行うと、1組20分かかります。 月120組なら40時間で、点検する8名にとって、授業の準備の時間を削って捻出している時間です。

(b)見落とす箇所が人によって違う。 誤字に強い人、計算の解き直しを丁寧にする人、配点だけは必ず電卓を叩く人。点検の中身が、その月に誰が担当したかで変わります。 点検の手順は決まっていても、どこまで深く見るかは決まっていません。

(c)直した後の再点検がない。 7番で講師が直したとき、直した箇所の周りが新しくずれることがあります。問2を削ったら問3以降の番号が1つずつずれる、配点を変えたら合計が満点でなくなる。再点検は行われず、そのまま印刷に回ります。

(d)配った後に分かる。 誤りが見つかるのは、教室で生徒が気づいたときです。12教室で同じテストを配っていれば、12教室で同じ訂正のアナウンスが要ります。 成績の集計をやり直すことにもなります。

  1. 【人】 作った講師が、問題と解答のドキュメントを決めた名前の付け方で「点検待ち」のフォルダに入れる
  2. 【自動】 10分ごとにフォルダを見て、問題と解答がそろった組を見つける
  3. 【自動】 2つのドキュメントの本文と表を読み、設問ごとに分ける
  4. 【自動】 設問番号の連番、配点の合計、問題と解答の設問の数を数える
  5. 【自動】 生成AIが誤字、指示と解答の形の食い違い、疑わしい解答に印を付け、JSONで返す
  6. 【自動】 結果を点検結果のスプレッドシートに書き、作った講師と点検担当にメールで知らせる。2つのドキュメントは「点検済み」へ移す
  7. 【人】 作った講師が指摘を見て、直すか直さないかを決め、直したら再び「点検待ち」に入れる
  8. 【人】 点検担当が、AIの指摘の無い組も含めて、図と印刷の体裁、疑わしいと出た計算問題を見る
  9. 【人】 点検担当が印刷してよいと決める

7番目の「再び点検待ちに入れる」が、第3章の(c)への答えです。 直した後も同じ仕組みを通すので、直した箇所の周りのずれが、もう一度数えられます。 何度通しても点検担当の手間はほとんど増えません。

8番目で点検担当が残るのは、意図してのことです。 図とレイアウトは、この構成では見ていません。AIの指摘が無いことは、誤りが無いことではありません。

02今回想定するシステム構成

構成図
作った講師 ── 問題と解答の Google ドキュメントを「点検待ち」へ
   ▼【トリガー】10分ごと(時間主導型トリガー)
Google Apps Script
   ├──▶ Google ドライブ ── 問題と解答がそろった組を探す
   ├──▶ Google ドキュメント ── 本文・表を読み、設問に分ける
   ├──▶ 数える処理(スクリプト)
   │       設問番号の連番/配点の合計/問題と解答の設問の数
   ├──▶ Claude API(構造化出力)
   │       誤字/指示と解答の形の食い違い/疑わしい解答
   ├──▶ 点検結果(スプレッドシート)へ書き込む
   ├──▶ 作った講師と点検担当へメール
   └──▶ 2つのドキュメントを「点検済み」へ移す
   ▼
【人】講師が直す → 再び「点検待ち」へ
【人】点検担当が図と体裁を見て、印刷してよいと決める
役割想定する製品代替候補
実行環境Google Apps ScriptPower Automate、Make、n8n
生成AIClaude API(構造化出力)Gemini API、OpenAI API
原稿Google ドキュメントMicrosoft Word
点検結果Google スプレッドシート教務の管理表

Google Apps Script を選ぶのは、原稿が Google ドキュメントにあり、外へ持ち出さずに読めるからです。 ドキュメントの本文は Body クラスで扱えます。getText() で本文の文字列を、getParagraphs() で段落を、getTables() で表を取り出せます。解答を表で作っている講師が多いので、表を表のまま読めることが効きます。

フォルダの見張りも、ドライブのサービスで足ります。 Folder の getFiles() でフォルダの中のファイルを、getFilesByType() で種類を絞って取り出せます。点検が終わったら、File の moveTo() で「点検済み」のフォルダへ移します。移す・移さないで状態を表すので、点検の状況はフォルダを開けば分かります。

実行には上限があります。 1回の実行は6分まで、トリガーは1スクリプトにつき1人20本までです。1回の実行で点検するのは3組までにし、残りは次の回に回します。 月120組なら、締め切り前に集中しても1日に数十組で、10分ごとの実行で追いつきます。

生成AIは、UrlFetchApp から Claude API の Messages API(POST /v1/messages)を呼びます。 要求には anthropic-version と content-type のヘッダが必要です。1回の要求の大きさは32MBまでで、テスト1組の文字量なら問題になりません。

03どうやって実装するのか

Step1

処理の起点を決める

10分ごとに動く時間主導型のトリガーを1本使います。 時間主導型のトリガーは毎分から月1回まで指定でき、実行時刻は少しばらつきます。講師がフォルダに入れてから10分ほどで結果が届けば、待たされる感じはありません。

フォルダに入った瞬間に動かさないのは、問題と解答が別々に入るからです。 問題だけが入った時点で動くと、解答が無いまま点検が始まります。名前の付け方で組を判定し、2つそろったものだけを処理します。 片方だけが2時間以上残っていたら、作った講師に「解答が入っていません」と知らせます。

名前の付け方は、中2_数学_標準_10月確認_問題 と 中2_数学_標準_10月確認_解答 のように、最後の「問題」「解答」だけが違う形にします。この決まりが、組を見つける唯一の手がかりです。

Step2

入力データを集める

データ中身取得元
問題本文、段落、表。設問番号、問題文、指示、配点の表記Google ドキュメント
解答本文、表。設問番号と解答Google ドキュメント
テストの情報学年、教科、クラス、満点、作った講師ファイル名と作成者
表記の決まり教室で使う表記(「答えなさい」と「答えよ」のどちらか、単位の書き方、送り仮名)教務部の一覧
数えた結果設問番号の並び、配点の合計、設問の数の一致数える処理

表記の決まりの一覧が、誤字の指摘の質を決めます。 「答えなさい」と「答えよ」が混ざっていることを誤りとするかは、塾の決まりです。一覧が無いと、AIは自分の好みで直そうとします。

数えた結果もAIに渡します。 「問5が2回出てくる」と分かっていれば、AIはその周りを特に注意して読めます。ただし、数えた結果をAIに確かめ直させることはしません。 数えた結果は数えた結果として、そのまま点検結果に載せます。

Step3

データの取得方法を決める

取るものどこからどう取るか
点検待ちのファイルドライブのフォルダgetFilesByType() でドキュメントだけを取り出す
組の判定ファイル名名前の最後の「問題」「解答」を外して突き合わせる
本文と段落ドキュメントgetBody() の getParagraphs() で段落ごとに
表ドキュメントgetTables() で表ごとに、行とセルを読む
作った講師ファイル作成者(所有者)を取り、メールの宛先にする

段落ごとに読むのは、設問の切れ目を見つけるためです。 getText() で本文をまとめて取ると、改行の位置しか手がかりが残りません。段落ごとに読み、「問1」「(1)」「【1】」で始まる段落を設問の始まりとします。 塾の中で、設問番号の書き方を2〜3種類に決めておきます。

表は、解答欄と配点の表として扱います。 解答を「設問番号・解答・配点」の3列の表で作る決まりにすると、配点の合計は表の列を足すだけで出ます。 問題の側で「(各3点)」と書いている場合は、その設問の小問の数を掛けます。

Step4

AIへ渡す前に整形する

  1. 設問に分ける … 段落の先頭の番号で設問を区切り、小問まで含めて番号の木を作ります
  2. 配点を拾う … 「(5点)」「(各3点)」「配点:」などの書き方を決めた形だけ拾います。拾えない書き方のものは「配点不明」として点検結果に載せます
  3. 数える … 設問番号が1から順に並んでいるか、重複や飛びが無いか。配点の合計が満点と一致するか。問題と解答で設問の数と番号が同じか
  4. 図の位置に印を付ける … 本文の中の画像の位置に「【図】」と入れ、AIに図があることだけを伝えます
  5. 長さを確かめる … 1組の本文が極端に長いもの(総合問題など)は、大問ごとに分けて呼びます

3番目は、AIを呼ぶ前に終わらせます。 数えた結果に誤りがあっても、AIの点検は続けます。ただし点検結果の先頭には、数えた誤りを載せます。 番号のずれと配点の合計の誤りは、印刷前に必ず直すものだからです。

4番目で図があることだけを伝えるのは、AIに図の中身を想像させないためです。 「図のように」と書かれた設問は、図を見ないと解答が正しいか分かりません。 AIには「図を見ていないので判断できない」と返させます。

Step5

AIに処理させる

させるのは、決めた種類の指摘に印を付け、根拠の文を書き出すことだけです。

指摘の種類見るもの判断できないときの扱い
typo誤字・脱字、表記の決まりから外れた書き方決まりに無い書き方は style_question
instruction_mismatch「記号で」「2つ」「〇字以内」と、解答の形の食い違い指示が読み取れなければ unclear
answer_doubt解答が問題文の条件と合わない、計算をやり直すと違う値になる必ず needs_teacher
choice_issue選択肢の記号の重複・飛び、解答の記号が選択肢に無い-
reference_issue「問2の答えを使って」「下の表から」の参照先が無い図が参照先なら figure_not_checked
figure_not_checked図を見ないと判断できない設問指摘ではなく、点検担当への申し送り

3行目の answer_doubt は、確定ではなく疑いです。 AIが計算をやり直して違う値になった、というだけで、違っているのがAIの計算のほうである可能性も残ります。 そのため、この種類の指摘は必ず needs_teacher とし、点検担当が解き直す設問の一覧になります。全部の設問を解き直す代わりに、疑わしいものだけを解き直すのが、第4章の④を減らす仕組みです。

させないこと理由
原稿を書き換える直すかどうかは作った講師が決める
配点の合計や設問の数を数える数える処理で行う。AIの合計は使わない
問題の良し悪し・難易度の評価教務の責任者の判断
図の中身の推測図を見ていない
新しい問題の提案この構成の役目ではない

2行目がいちばん大事です。 AIに配点を足させると、多くの場合は正しい合計を返しますが、ときどき100点ではないものを100点と書きます。 合計を確かめたいのに確かめる手段が誤る、というのでは意味がありません。

Step6

指示内容を固定する

あなたは学習塾の教務部で、配る前の確認テストを点検する係です。
下の問題と解答だけを根拠にしてください。原稿を書き換えないでください。

【指摘する種類】
- typo: 誤字・脱字、【表記の決まり】から外れた書き方
- instruction_mismatch: 問題文の指示(記号で・〇つ・〇字以内・単位をつけて など)と
  解答の形が合わない
- answer_doubt: 解答が問題文の条件と合わない、または計算をやり直すと違う値になる
- choice_issue: 選択肢の記号の重複・飛び、解答の記号が選択肢に無い
- reference_issue: 「問〇の答えを使って」などの参照先が見つからない
- figure_not_checked: 【図】を見ないと解答の正しさを判断できない設問

【厳守事項】
- 指摘ごとに、該当する設問番号と、根拠にした文を原文のまま quote に写してください。
- 直し案は suggestion に書いてもよいですが、原稿の書き換えではなく案として書いてください。
- 配点の合計、設問の数、番号の並びは数えないでください。
  【数えた結果】に書かれているものを、そのまま正しいものとして扱ってください。
- answer_doubt のときは、あなたが計算した過程を reasoning に短く書いてください。
  自分の計算が誤っている可能性があるので、断定しないでください。
- 【図】を含む設問では、図の中身を想像しないでください。
  図を見ないと判断できない場合は figure_not_checked にしてください。
- 【表記の決まり】に無い書き方の違いは typo にせず、style_question にしてください。
- 問題の良し悪しや難易度については書かないでください。
- 指摘が無い場合は、findings を空の配列にしてください。

【テストの情報】{grade} {subject} {class} 満点{full_score}点
【表記の決まり】{style_rules}
【数えた結果】{count_result}
【問題】{question_text}
【解答】{answer_text}

「数えないでください」を明記するのは、AIが親切に数え直すからです。 数え直した結果が数える処理と違うと、どちらが正しいかを人が確かめることになります。数えるのは仕組みの仕事と決め、AIには触らせません。

answer_doubt で計算の過程を書かせるのは、点検担当の確認を速くするためです。 過程を読めば、AIがどこで問題文を読み違えたのか、本当に解答が違うのかを数十秒で判断できます。

Step7

出力形式を固定する

Claude API の構造化出力で、次の形のJSONを受け取ります。 構造化出力では output_config.format に json_schema の型と JSON Schema を渡し、応答が決めた形に合うことが保証されます。 ただし、安全上の理由で応答を断った場合と、出力の上限に達した場合は形が合わないことがあるとされているので、停止の理由を確かめてから読みます。

{
  "test_id": "中2_数学_標準_10月確認",
  "findings": [
    {
      "type": "typo | instruction_mismatch | answer_doubt | choice_issue | reference_issue | figure_not_checked | style_question",
      "question_no": "問3(2)",
      "quote": "",
      "suggestion": "",
      "reasoning": "",
      "route": "author | needs_teacher"
    }
  ]
}

JSONで受け取る1つ目の理由は、点検結果のスプレッドシートに1指摘1行で並べられることです。 講師は自分のテストの行だけを見て、「直した」「直さない」を1列に書き込めます。

2つ目は、route で振り分けを決められることです。

typeroute誰が見るか
typo、instruction_mismatch、choice_issue、reference_issueauthor作った講師が直すかを決める
answer_doubtneeds_teacher点検担当が解き直す
figure_not_checkedneeds_teacher点検担当が図を見る
style_questionauthor表記の決まりに足すかを教務部が決める

3つ目は、数えた結果と並べて1枚にできることです。 点検結果の先頭の行には、数える処理が出した「問5が重複」「合計98点(満点100点)」を入れ、その下にAIの指摘を並べます。数えた誤りとAIの指摘を、出どころが分かる形で分けて見せます。

スクリプトの側では、quote が問題か解答の本文に実際に含まれているかを確かめます。含まれていない quote は、AIが作った文として指摘ごと「要確認」にします。

Step8

システムへ連携する

つなぎ先方式内容
Google ドライブFolder、File点検待ちのファイルを探し、点検済みへ移す
Google ドキュメントBody段落と表を読む。書き込まない
Claude APIUrlFetchApp から Messages API指摘の一覧をJSONで受け取る
点検結果スプレッドシートへ追記1指摘1行。数えた結果は先頭
講師と点検担当Gmail からの送信点検結果へのリンクと、指摘の件数

ドキュメントには書き込みません。 コメントや修正の提案を原稿に直接付ける形も考えられますが、原稿に触れるのは作った講師だけ、と決めておくほうが、どの版を印刷したかが追いやすくなります。 指摘はすべてスプレッドシートの側にあります。

Claude API の呼び出しは UrlFetchApp.fetch() で、method を post、contentType を application/json にし、ヘッダに APIキーと anthropic-version を入れます。 muteHttpExceptions を true にすると、失敗の応答でも例外を投げずに応答を返すので、応答コードを見て再試行するかを決められます。 APIキーはスクリプトのプロパティに置き、コードには書きません。

点検結果の列は、テストID、版(何回目の点検か)、指摘の出どころ(数えた/AI)、種類、設問番号、根拠の文、直し案、計算の過程、振り分け、講師の判断(直した/直さない/該当しない)、点検担当の確認、日時です。

Step9

人が確認する

  1. 作った講師が、author の指摘を1件ずつ見る … 直すなら原稿を直し、直さないなら理由を一言書きます
  2. 直したら、もう一度「点検待ち」に入れる … 直した周りのずれを、数える処理がもう一度見ます
  3. 点検担当が、needs_teacher の設問を解き直し、図を見る … answer_doubt は計算の過程を読み、本当に違うかを確かめます
  4. 点検担当が、指摘の無い組も含めて体裁を見る … 図の位置、改ページ、解答欄の大きさは、この構成では見ていません
  5. 点検担当が、印刷してよいと点検結果に書く … この記入が無いテストは印刷に回しません

4番目を省かないでください。 AIの指摘が0件の組ほど、点検担当は安心して流しがちです。図の多い理科や社会では、0件は「見られる部分に誤りが無かった」というだけです。

目標は、1組8分です。 指摘を読み、疑わしい計算問題を解き直し、体裁を見るだけになります。最初から全部を読み直す必要はありません。

Step10

例外に対処する

起きること対応
問題だけ、解答だけが入っている2時間たったら作った講師に知らせる。点検は始めない
名前の付け方が決まりと違う組を作れないので、教務部に知らせる
Word のファイルが入っている点検しない。Google ドキュメントで保存し直して入れるよう講師に知らせる
設問番号の書き方を拾えない「設問の区切り不明」として点検結果に載せ、AIの点検は大問単位で行う
配点の書き方を拾えない「配点不明」と載せる。合計の確認は点検担当が行う
1回の実行が6分に近づく3組で打ち切り、残りは次の回に回す
生成AIが応答しない、または形が合わないファイルを「点検待ち」に残し、次の回に再処理する
quote が本文に無いその指摘を「要確認」にする
同じテストが何度も入る版を1つずつ増やし、前の版の指摘との差を点検結果に示す

上から4行目までは、原稿の作り方の決まりの問題です。 名前の付け方、ファイルの種類、設問番号の書き方。決まりが守られていないものを無理に読もうとせず、決まりに戻してもらいます。 2か月も回すと、講師の側の作り方がそろってきます。

Step11

記録を残す

  • 点検したドキュメントのID、版、点検した日時
  • 数える処理の結果(設問番号の並び、配点の合計、設問の数)
  • 生成AIへ渡した本文と、返ってきたJSONの全文
  • 講師の判断(直した/直さない/該当しない)と、その理由
  • 点検担当の確認と、印刷してよいと決めた日時
  • 配った後に見つかった誤りと、それが点検結果に載っていたかどうか

4つ目の「該当しない」は、指示を直す材料になります。 AIの指摘のうち講師が「該当しない」とした種類が偏っていれば、表記の決まりの一覧か、指示の書き方が足りていません。

最後の行は、この構成の効き目を測る唯一の記録です。 配った後の誤りが、点検結果に載っていたのに直されなかったのか、そもそも載っていなかったのかで、手を入れる場所が違います。

04実装レベルの3段階

最小構成:本文を手でAIの画面に貼り、指摘を表にさせる / 1組ごとの誤字と食い違いの点検
半自動化:上記+Google Apps Script でフォルダを見張り、番号と配点を数え、点検結果を書き、講師に知らせる / 点検の全体と、直した後の再点検
本格構成:上記+過去に配った後に見つかった誤りの型を表記の決まりに積み上げ、教科ごとの指示を分ける / 点検の基準の更新

最小構成では、番号と配点が見られません。 AIに数えさせない設計なので、最小構成は誤字と食い違いだけを確かめる段階です。 半自動化が、本記事の想定です。 番号と配点を数え、AIが指摘を出し、直したら再点検される。1組20分が8分になるのは、この段階です。 本格構成で増えるのは、点検の基準が育つことです。 「単位の付け忘れが理科で多い」「国語の字数指定と解答の字数が合わない」のような型を、教科ごとの指示に入れていきます。時間よりも、配った後の誤りの件数に効いてきます。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
8 名
月間件数
120 件
1件あたり現在時間
20 分
1件あたり導入後時間
8 分
現在  120件 × 20分 ÷ 60 = 40 時間/月
導入後 120件 × 8分 ÷ 60 = 16 時間/月
月間削減時間
24h
削減率
60%
年間削減時間
288h
年間金額換算(時間単価2,500円)
72万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 学年・教科ごとの確認テストを毎月自前で作り、作った人とは別の講師が読み合わせで点検している学習塾。社内の資格講座や研修で理解度テストを定期的に作る研修会社。問題と解答を Google ドキュメントで作っている、または作る運用に寄せられる場合。点検する人によって見落とす箇所が違い、配った後に誤りが見つかったことがある場合。
向いていない
  1. テストを教材会社の市販品や問題データベースからそのまま使っており、自前で作る問題が少ない場合。問題の大半が図形・グラフ・地図などの図で、文字で書かれた部分がわずかな場合。入試問題のように、作問の段階から外部のサービスに一切出せない取り決めがある場合。なお、問題として適切か、難易度が合っているかの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 過去3か月のテストから、配った後に誤りが見つかったものを10組集める
  2. 誤りの無かったテストを10組加え、20組にする
  3. 問題と解答のドキュメントの本文を、手元のAIサービスの画面に貼り付ける
  4. 「この確認テストの問題と解答を点検し、誤字、指示と解答の形の食い違い、疑わしい解答、選択肢の記号の問題を、設問番号と根拠の文つきで表にしてください。原稿は書き換えないでください。配点は数えないでください」と指示する
  5. 配った後に見つかった誤りが指摘に出たかを確かめる

20組は必ずやってください。 スクリプトを書く前に、「配った後に見つかった誤りが、AIに見つけられる種類のものだったか」を確かめます。

出てきた内容判断
配った後の誤りの多くが指摘に出たスクリプトとフォルダの連携に進む
配点や番号のずれだけが出なかった予想どおり。数える処理で拾う部分
誤りの多くが図の中にあったこの構成の外。 図の点検は人の手順として残す

2行目は失敗ではありません。 AIに配点や番号を数えさせない設計なので、最小構成で拾えないのは当然です。ここは、数える処理を書けば確実に拾える部分です。

08実装時につまずきやすいポイント

問題対策
AIが配点を数え直して違う合計を書く数えないよう指示し、数える処理の結果だけを使う
計算問題の指摘がAIの計算違いだったanswer_doubt は疑いとして扱い、計算の過程を読ませる
図を想像して解答を判定する【図】の印を入れ、figure_not_checked を返させる
好みの言い回しへの直しが大量に出る表記の決まりの一覧を渡し、決まりに無いものは style_question に
設問の区切りを拾えない設問番号の書き方を2〜3種類に決める
問題と解答の組が作れないファイル名の決まりを最後の「問題」「解答」だけが違う形にする
Word で作った原稿が入るGoogle ドキュメントで保存し直す決まりにする
直した後に再点検されない「点検待ち」に入れ直せば、同じ仕組みでもう一度数える
指摘が0件の組を点検担当が流す図と体裁の確認を、指摘の有無にかかわらず残す
印刷してよいかの記入が飛ばされる記入の無いテストを週に1回、教務部へ一覧で出す

上の3行が、この構成の失敗のほとんどです。 どれも「AIに任せすぎる」という同じ型です。数えるのは仕組み、計算の正しさは人、図は人と分けておけば、AIが間違えても誤りがそのまま印刷に回ることはありません。

4行目は、運用の最初の1か月で必ず出ます。 講師は、自分の言い回しを「直せ」と言われ続けると、指摘の一覧を読まなくなります。表記の決まりに無いものは誤りとしない、と最初から決めておいてください。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 配る前のテストの問題と解答です。生徒の氏名や成績は扱いません。

  1. 配る前のテストの中身を外へ出してよいかを確かめる … 実施前のテストは、塾にとって外に出したくない情報です。生成AIのAPIは、商用の利用として契約したものを使います。 Anthropic は、Anthropic API などの商用の製品の入力と出力を、既定ではモデルの学習に使わないとしています
  2. 市販の教材や過去の入試問題を使ったテストの扱いを確かめる … 教材会社との契約で、問題を外部のサービスで処理してよいかが決まっていることがあります。自前で作った問題と、市販の教材から引いた問題を分けておきます
  3. 生徒の情報を混ぜない … 原稿に生徒の名前や過去の得点を書き込む講師がいれば、原稿と生徒の情報を分ける決まりを先に作ります
  4. 問題の良し悪しを代替させない … この構成が出すのは、誤字、食い違い、疑わしい解答の印です。難易度や単元の狙いに合っているかは、作った講師と教務の責任者が決めます
  5. APIキーを講師に見せない … スクリプトは教務部の専用アカウントで作り、編集権限を絞ります

誤りが起きた場合のリスクは、誤りのあるテストが配られることと、正しい解答が「違う」と指摘されて直されてしまうことの2つです。 前者は図の点検と体裁の確認を人に残すことで、後者は answer_doubt を必ず人が解き直すことで止めます。AIの指摘で原稿が直接変わる経路は、どこにもありません。

10まず何から始めるか

1週目:書き方の決まりを作る

ファイル名、設問番号の書き方、配点の書き方、解答の表の列の決まりを、教務部で1枚にまとめます。表記の決まりの一覧もここで作ります。 すでにある教材作成の手引きがあれば、そこから引き写します。

2週目:20組で試す

配った後に誤りが見つかったテスト10組と、誤りの無かった10組を、手元のAIサービスに貼り付けて点検させます。配った後の誤りが指摘に出たか、出なかったならそれは図の中か番号・配点か、を数えます。

3週目:数える処理を作る

Google Apps Script で、設問番号の連番、配点の合計、問題と解答の設問の数を数える処理を作ります。AIを呼ぶ前に、この処理だけで20組を流し、番号と配点の誤りを拾えるかを確かめます。

4週目:フォルダからメールまでをつなぐ

フォルダの見張り、AIの呼び出し、点検結果への書き込み、講師へのメールをつなぎます。この時点では、点検担当はこれまでどおりの読み合わせも並行して行い、点検結果と見比べます。

2か月目: 読み合わせをやめ、指摘の確認と図・体裁の確認だけにします。講師が「該当しない」とした指摘を毎週数えます。3か月目以降: 配った後に見つかった誤りを記録し、表記の決まりと教科ごとの指示に積み上げます。点検担当が読み合わせをせずに「印刷してよい」と書けるようになった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-06/最終更新:2026-10-06
確認した内容情報源確認日
時間主導型トリガーが毎分から月1回まで指定でき、実行時刻が少しばらつくこと。インストール型トリガーが作成者のアカウントで動くことGoogle for Developers: Installable Triggers2026-10-06
1回の実行が6分まで、トリガーが1スクリプトにつき1人20本までであることGoogle for Developers: Quotas for Google Services2026-10-06
Body に getText()、getParagraphs()、getTables()、正規表現で探す findText() があることGoogle for Developers: Class Body2026-10-06
Folder に getFiles() と getFilesByType() があることGoogle for Developers: Class Folder2026-10-06
File に moveTo()、getMimeType()、getOwner()、getUrl() があることGoogle for Developers: Class File2026-10-06
UrlFetchApp.fetch() の method・contentType・headers の指定と、muteHttpExceptions を true にすると失敗の応答でも例外を投げずに応答を返すことGoogle for Developers: Class UrlFetchApp2026-10-06
構造化出力が output_config.format に json_schema を渡す形で一般提供されていること。応答が形に合うことが保証されるが、応答を断った場合と出力の上限に達した場合は合わないことがあることClaude Docs: Structured outputs2026-10-06
Messages API が POST /v1/messages であり、anthropic-version と content-type のヘッダが必要なこと。要求の大きさが32MBまでであることClaude Docs: API overview2026-10-06
Anthropic API などの商用の製品の入力と出力を、既定ではモデルの学習に使わないことAnthropic Privacy Center: Is my data used for model training?2026-10-06

問題として適切か、難易度が合っているかは、作った講師と教務の責任者が判断してください。 本記事は公式の資料で確認できた範囲だけを扱っています。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0479)についてのご相談はこちらから。

AI活用について相談する
目次