Google Drive・スプレッドシート・Gemini APIを準備する方法|家計簿OCR自動化の初期設定(第二回)

再生速度:1.0x1.25x1.5x2.0x
前回は、紙の家計簿やレシートをやめずに、入力と集計だけをデジタル化する考え方を紹介しました。
今回から、実際の仕組みを作っていきます。
完成後の流れは、次のとおりです。
第2回では、まだGASコードを実行しません。
最初に、次の4つを準備します。
GASコードは第3回で、ファイルごとに全文掲載します。
- 今回準備するもの
- 1.Google Driveに親フォルダを作る
- 2.Google DriveのフォルダIDを確認する
- 3.Googleスプレッドシートを作る
- 4.スプレッドシートIDを確認する
- 5.Google Apps Scriptのプロジェクトを作る
- 6.Gemini APIキーを取得する
- 7.APIキーをスクリプトプロパティへ保存する
- 8.Geminiのモデルを確認する
- 9.無料利用枠について確認する
- 10.Google Drive拡張サービスを有効にする
- 11.appsscript.jsonを表示する
- 12.テスト用データを準備する
- 13.ここまでの準備チェックリスト
- 🎯 理解度チェッククイズ(全4問)
- ❓ よくある質問
- 解決ドットコム ワンポイント
今回準備するもの
必要なものは、Googleアカウントです。
今回の検証では、次のサービスを使用しました。
| サービス | 役割 |
|---|---|
| Google Drive | レシートや手書き家計簿の保存 |
| Googleドキュメント | OCRで読み取った文字の保存 |
| Googleスプレッドシート | 家計データの管理・集計 |
| Google Apps Script | OCR、AI、登録処理の自動化 |
| Google AI Studio | Gemini APIキーの発行 |
| Gemini API | 画像・PDFの確認と項目整理 |
Google Driveのスマートフォンアプリでは、領収書や請求書などを撮影し、検索可能なPDFとしてDriveへ保存できます。AndroidとiPhone・iPadの両方にスキャン機能があります。
1.Google Driveに親フォルダを作る
最初に、レシートや手書き家計簿を保存する場所を作ります。
Google Driveを開き、新しいフォルダを作成してください。
フォルダ名は、次のようにします。
この段階では、親フォルダだけ作れば大丈夫です。
最終的には、この中に次の4フォルダを作ります。
├─ 01_処理待ち
├─ 02_処理済み
├─ 03_要確認
└─ 04_OCRドキュメント
ただし、4つのサブフォルダはGASの初期設定処理で自動作成します。
手動で作っても問題はありませんが、名前を間違える可能性があるため、親フォルダだけ準備する方法が分かりやすいでしょう。
各フォルダの役割
| フォルダ | 役割 |
|---|---|
| 01_処理待ち | 新しいレシートや家計簿を保存する |
| 02_処理済み | 正常に登録できた原本を移動する |
| 03_要確認 | 読み取り失敗や確認が必要な原本を移動する |
| 04_OCRドキュメント | OCRで作成されたGoogleドキュメントを保存する |
処理待ちと処理済みを分けることで、どこまで登録したのかが分からなくなる問題を防ぎます。
2.Google DriveのフォルダIDを確認する
作成した「家計OCR自動化」フォルダを開きます。
ブラウザ上部のURLには、次のような文字列が表示されます。
folders/より後ろの部分がフォルダIDです。
説明用の例では、次の部分です。
このIDを、あとでGASの設定ファイルへ入力します。
フォルダIDはAPIキーではない
フォルダIDとAPIキーは別物です。
フォルダIDは、GASが処理対象のフォルダを見つけるための住所のようなものです。
一方、APIキーはGeminiへ接続するための認証情報です。
フォルダIDだけで、他人が自由にフォルダの中身を閲覧できるわけではありません。
ただし、実際のフォルダIDも記事やSNSへ積極的に公開する必要はありません。
3.Googleスプレッドシートを作る
次に、家計データを保存するGoogleスプレッドシートを作ります。
新しいスプレッドシートを作成し、名前を次のようにします。
現時点では、シートを自分で追加する必要はありません。
GASの初期設定を実行すると、次の5シートが自動で作成されます。
各シートの役割
00_設定
フォルダID、使用するGeminiモデル、カテゴリ候補などを確認するシートです。
01_OCR原文
Google OCRが読み取った文字と、Geminiが返した結果を保存します。OCRがどこを間違えたのかを、あとから確認できます。
02_家計データ
実際の家計簿データを保存します。主な項目は次のとおりです。
03_月次集計
登録されたデータを、月別やカテゴリ別に集計します。
04_検証ログ
処理時間、抽出件数、エラー内容などを記録します。今回の記事では、単に「動いたか」だけでなく、OCRやAIの精度と限界も検証するため、このログを残します。
4.スプレッドシートIDを確認する
作成したGoogleスプレッドシートを開きます。
URLは、次のような形です。
/d/と/editの間にある文字列がスプレッドシートIDです。
説明用の例では、次の部分になります。
このIDも、あとでGASの設定ファイルへ入力します。
URLの後ろにある次の部分は、シートを示す番号です。
今回のGASで使用するのはgidではありません。必要なのは、スプレッドシート全体を示すIDです。
/d/スプレッドシートID/edit
5.Google Apps Scriptのプロジェクトを作る
今回の検証では、スプレッドシートから独立した「独立型Apps Script」を使用しました。
Google Apps Scriptの管理画面を開き、新しいプロジェクトを作成します。
プロジェクト名は、次のようにします。
独立型Apps Scriptでは、特定のスプレッドシートを自動的に認識しません。その代わり、先ほど確認したスプレッドシートIDをコードへ設定します。
この方法なら、処理対象がコード上で明確になります。
コードファイルを作る
第3回では、次のファイルを作成します。
Apps Scriptの左側にある「+」からスクリプトファイルを追加できます。
ファイル名を入力するときは、.gsを二重につけないようにします。
たとえば入力欄に、Configと入力すれば、画面上では通常、Config.gsと表示されます。
6.Gemini APIキーを取得する
ブラウザ版Geminiへ手作業でファイルを渡すだけなら、APIキーは必要ありません。
しかし、GASから自動的にGeminiを呼び出すには、APIキーが必要です。
APIキーは、Google AI Studioで自分自身が取得します。記事に掲載された共通キーを使用する仕組みではありません。
APIキーの取得手順
APIキーは、次のような長い文字列です。
これは説明用の架空例です。
実際に発行されたAPIキーは、この記事のコメント欄、SNS、メール、チャットなどへ貼らないでください。
2026年7月時点では、Google AI Studioで新しく作成されるGemini APIキーは、新しい認証方式のキーとして発行されます。古い標準キーからの移行も進められているため、新規作成したキーを使用する方が分かりやすいでしょう。
7.APIキーをスクリプトプロパティへ保存する
取得したAPIキーを、GASコードへ直接書くことは避けます。
次のようにコードへ貼り付ける方法は使用しません。
コードを他人へ渡したときに、APIキーまで一緒に漏れる可能性があるからです。
今回は、Apps Scriptの「スクリプトプロパティ」へ保存します。
スクリプトプロパティは、設定名と値を組み合わせて、スクリプト内に保存できる機能です。今回のコードでは、PropertiesService.getScriptProperties()を使ってAPIキーを読み取ります。
登録手順
次の内容を登録します。
| 入力欄 | 入力内容 |
|---|---|
| プロパティ | GEMINI_API_KEY |
| 値 | Google AI Studioで取得したAPIキー |
左側のGEMINI_API_KEYは、コードがAPIキーを探すための名前です。右側へ、実際に取得したAPIキーを貼り付けます。最後に保存します。
名前を変えない
プロパティ名は、必ず次の文字列にします。
たとえば、次のように変更するとコードから取得できません。
今回掲載するGASは、GEMINI_API_KEYという名前を探すように作られています。
8.Geminiのモデルを確認する
今回の自動化では、次のモデルを使用します。
このモデルは、テキストだけでなく、画像やPDFの入力にも対応しています。また、出力形式をJSONへ固定する構造化出力にも対応しているため、レシートや手書き家計簿から抽出した情報をGASで扱いやすくできます。
今回の用途では、次のような結果を返させます。
"date": "2026-06-01",
"merchant": "〇〇スーパー",
"description": "食料品",
"category": "食費",
"amount": "1280",
"paymentMethod": "クレジットカード"
}
記事公開後にモデル名が変更・終了する可能性はあります。
エラーで「モデルが見つかりません」と表示された場合は、Google AI Studioのモデル一覧で、画像・PDF入力と構造化出力に対応した現在のモデルを確認してください。
9.無料利用枠について確認する
Gemini APIには無料利用枠があります。
今回使用するgemini-3.1-flash-liteにも、無料枠の設定があります。ただし、利用できる回数や処理量には上限があり、条件は変更される可能性があります。無料枠では、送信した内容がGoogleの製品改善に使用される扱いです。有料枠では、製品改善へ使用しないと案内されています。
そのため、本格的に使い始める前に、次の点を確認してください。
無料枠の上限を超えた場合、次のようなエラーが発生することがあります。
これは、リクエスト回数や処理量などの上限を超えた場合に発生するエラーです。
今回のように、個人の家計簿を数枚ずつ試す場合と、大量のレシートを毎日処理する場合では、使用量が異なります。
「無料だから無制限」と考えず、まず少ない枚数で検証します。
10.Google Drive拡張サービスを有効にする
今回のGASでは、画像やPDFをGoogleドキュメント形式へ変換するために、Google Driveの拡張サービスを使用します。
Apps Scriptには通常のDriveAppとは別に、Google Drive APIを利用するための拡張サービスがあります。このサービスは、使用前に有効化が必要です。
エディタから追加する方法
appsscript.jsonで設定する方法
第3回で掲載するappsscript.jsonには、Drive APIを有効化する設定を含めます。
{
"userSymbol": "Drive",
"version": "v3",
"serviceId": "drive"
}
]
そのため、第3回のマニフェストを全文貼り付ければ、設定内容もコード上で確認できます。
11.appsscript.jsonを表示する
Apps Scriptでは、初期状態でappsscript.jsonが画面に表示されていない場合があります。
エディタへ戻ると、ファイル一覧に次の名前が表示されます。
第3回では、このファイルも全文置き換えます。
12.テスト用データを準備する
最初から本物のカード情報が記載されたレシートを使う必要はありません。
まずは、個人情報が少ないレシートや、自分で作った手書き家計簿で試します。
説明用の手書き例は、次のような内容です。
2026年6月2日 〇〇ドラッグ 日用品 980円 現金
2026年6月3日 〇〇鉄道 交通費 420円 ICカード
本物のレシートを使う場合は、次の情報が写っていないか確認します。
今回のGASプロンプトでは、これらを家計データへ出力しないように指示します。
ただし、AIへ送信する前の原本画像自体に情報が含まれている可能性があります。
必要のない部分は撮影しない、折る、隠す、画像を加工するという方法があります。
13.ここまでの準備チェックリスト
第3回へ進む前に、次の項目を確認してください。チェックが全部揃うと +10XP です。
すべて準備できれば、次はGASコードを貼り付けます。
🎯 理解度チェッククイズ(全4問)
各問正解で +7XP。全問正解で「👑全問正解」バッジを獲得できます。
Q1. フォルダIDとAPIキーの違いとして正しいのは?
どちらも同じ情報で、呼び方が違うだけ フォルダIDは処理対象を示す住所、APIキーはGeminiへ接続する鍵 フォルダIDの方が機密性が高いQ2. スクリプトプロパティに登録するAPIキーのプロパティ名は?
API_KEY GeminiApiKey GEMINI_API_KEYQ3. スプレッドシートのURLで、GASの設定に使うのはどの部分?
edit#gid=123456789 の数字 /d/ と /edit の間にある文字列 URLの末尾の拡張子Q4. 今回のGeminiモデルが対応している機能として正しいのは?
テキスト入力のみで画像には対応しない 画像・PDFの入力と、JSON形式に固定する構造化出力に対応 Googleスプレッドシートへ直接書き込む機能を内蔵している❓ よくある質問
解決ドットコム ワンポイント
自動化を作るときは、いきなりコードを動かすよりも、先に情報の置き場所を整理することが重要です。
今回の仕組みでは、次の役割を分けました。
Googleスプレッドシート =確定前の家計データを確認する場所
スクリプトプロパティ =APIキーを保存する場所
GAS =各サービスをつなぐ処理
Gemini =画像とOCR文字を整理する処理
APIキーをスプレッドシートへ書いたり、レシート画像と家計データを同じ場所へ無秩序に保存したりすると、あとで管理が難しくなります。
問題を解く前に、まず整理する。
自動化でも、最初に役割と保存先を分けることで、エラーが起きた場所を確認しやすくなります。
コードを書く前に、フォルダ・データ・鍵の置き場所を分けておくピヨ。
GASコードを実装し、自動化システムを起動させます。Config.gs/Setup.gs/OCR.gs/Gemini.gs/Main.gs/Spreadsheet.gs/Utils.gs/appsscript.jsonを、コピーしてそのまま使えるように全文掲載します。


