← Back to List

家計簿マネージャー

家計簿マネージャー

以前も紹介した家計簿自動化システムをアップデートしました。

機能:Webインターフェースの実装

Google Apps Script、LINE Bot、Googleスプレッドシート、そしてGemini APIを組み合わせて作成した「家計簿自動化システム」を紹介します。

このスクリプトは、単なる家計簿入力ツールではありません。

LINEにレシート画像を送るだけで、AIが内容を読み取り、購入日・店舗名・商品名・カテゴリ・金額などを自動でスプレッドシートへ記録してくれます。

さらに、買い物リスト、底値比較、月別集計、レシピ提案、消耗品リマインドなど、日々の家計管理をかなり便利にしてくれる機能を盛り込んでいます。

この家計簿システムでできること

このスクリプトの主な機能は以下の通りです。

機能概要

レシート自動読取

LINEやWeb画面から送信したレシート画像をGeminiで解析

家計簿自動記録

解析結果をGoogleスプレッドシートへ自動登録

買い物リスト管理

LINEやWeb画面から買うものを登録・削除

数量対応

「牛乳2」など、数量付きの買い物リストに対応

自動消し込み

レシート解析時に買い物リストの商品を購入済みに変更

月別集計

今月・先月・指定月の支出合計を自動集計

カテゴリ別集計

食費、日用品、交通費などカテゴリごとに集計

商品検索

「卵?」のように聞くと購入履歴を検索

底値比較

店舗ごとの平均単価を比較

レシピ提案

最近買った食材をもとにAIが献立を提案

消耗品リマインド

一定期間購入していない消耗品を通知

定期レポート

家計データをAIが分析して節約アドバイスを作成

セキュリティ対策

LINE署名検証、認証、ユーザー数制限などに対応

1. レシート画像を送るだけで家計簿に自動登録

一番の特徴は、レシート画像をLINEに送信するだけで家計簿データを自動作成できる点です。

LINEでレシートの写真を送ると、画像はGoogle Driveの指定フォルダに保存されます。

その後、Gemini APIが画像を解析し、以下のような情報を自動で抽出します。

  • 購入日
  • 店舗名
  • 商品名
  • 数量
  • カテゴリ
  • 金額
  • 単価
  • 送信者
  • 元画像URL

解析されたデータは、Googleスプレッドシートの「レシートデータ」シートに自動で登録されます。

また、趣味・エンタメ系の支出は「趣味データ」シートへ分けて記録するようになっており、家計支出と趣味支出を分離して管理できます。

2. Gemini OCRによるレシート解析

このシステムでは、Gemini APIを使ってレシート画像を解析しています。

単純なOCRではなく、画像の内容から「これは食費」「これは交通・車関連」「これは日用品」といったカテゴリ分類まで行います。

対応しているカテゴリは、以下のようになっています。

  • 食費
  • 日用品
  • 家庭用品
  • 交通・車関連
  • 住宅・園芸
  • 趣味・エンタメ
  • 家族・教育
  • 医療・健康
  • 衣類・履物
  • その他

高速道路やETCの利用証明書も「交通・車関連」として分類できるようになっており、通常の買い物レシート以外にも対応できる設計になっています。

3. 複数レシートの同時解析にも対応

画像内に複数のレシートが写っている場合でも、それぞれを独立したレシートとして解析するようにしています。

Geminiには、複数レシートをJSON配列として返すように指示しており、1枚の画像に複数のレシートが含まれていても、できるだけ個別のデータとして処理できます。

これにより、買い物後に複数枚のレシートをまとめて撮影して送る、といった使い方も可能です。

4. 買い物リスト機能

このシステムには、買い物リスト機能もあります。

LINEから以下のように送信するだけで、買い物リストへ追加できます。

買う 牛乳
買う 卵2
買う トイレットペーパー3

数量にも対応しているため、「牛乳2」のように入力すると、牛乳を2個買う予定として記録されます。

登録した買い物リストは、LINEで以下のように送ると確認できます。

リスト

削除したい場合は、以下のように送信します。

削除 牛乳
キャンセル 牛乳

Web画面側からも、買い物リストの取得・追加・削除ができるAPIが用意されています。

5. レシート解析と連動した自動消し込み

買い物リストに登録していた商品が、レシート解析結果に含まれていた場合、自動で「購入済」に変更します。

例えば、買い物リストに以下のように登録していたとします。

牛乳 2個
卵 1個

その後、レシート画像を送信し、Geminiの解析結果に「牛乳 2個」が含まれていれば、買い物リスト上の牛乳は自動的に購入済みになります。

数量も考慮されているため、買い物リストに「牛乳2」と登録している場合、レシート上の数量が2個以上であれば消し込み対象になります。

6. 夕方の買い物リマインド

未購入の買い物リストが残っている場合、夕方にLINEへリマインド通知を送る機能もあります。

通知内容は、例えば以下のようなイメージです。

🔔 【夕方の買い物リマインド】
以下のアイテムが未購入です。お帰りの際にお忘れなく!

・牛乳
・卵
・トイレットペーパー

仕事帰りや外出先で「そういえば買うものがあった」と気づけるので、買い忘れ防止に役立ちます。

7. 月別の支出集計

LINEから以下のようなメッセージを送ると、月別の支出を集計できます。

今月の合計
先月の支出
4月の集計
2026年4月の合計

集計結果では、合計金額に加えてカテゴリ別の支出も表示します。

📅 【2026年4月の支出まとめ】
💰 合計: 85,430円

📊 カテゴリ別:
・食費: 42,100円
・日用品: 12,800円
・交通・車関連: 18,500円
・その他: 12,030円

Googleスプレッドシートに記録したデータをもとに集計するため、毎月の家計の振り返りが簡単になります。

8. 商品の購入履歴検索

LINEで商品名の後ろに「?」を付けて送信すると、過去の購入履歴を検索できます。

卵?
牛乳?
豚肉?

すると、最後にいつ、どのお店で、いくらで購入したのかを返してくれます。

🔍 「卵」の購入履歴

最後に購入したのは【5日前】です!
📅 2026/05/10
🏪 スーパー〇〇
🏷 卵10個
💰 238円

「これ、最近買ったっけ?」という確認に便利です。

9. 店舗ごとの底値比較

商品名の後ろに「比較」または「底値」を付けると、店舗ごとの平均単価を比較できます。

卵 比較
牛乳 底値
豚肉 比較

レシートデータや底値データをもとに、店舗ごとの平均単価を算出し、どのお店が一番安いかを表示します。

さらに、QuickChartを使ってグラフ画像も作成し、LINEへ送信できるようになっています。

買い物のたびに自然と価格データが蓄積されていくため、「なんとなく安い」ではなく、実際の購入データをもとに安い店舗を判断できます。

10. 値札データの保存にも対応

レシートだけでなく、値札画像の解析にも対応しています。

Geminiの解析結果で「値札」と判断された場合は、「底値データ」シートに保存します。

つまり、購入していない商品でも、店頭で値札を撮影して送ることで、価格データベースとして蓄積できます。

これは、日用品や食品の底値管理にかなり便利です。

11. 給油データの記録にも対応

ガソリンのレシートを解析した場合は、「給油データ」シートに記録します。

記録される主な内容は以下です。

  • 給油日
  • 店舗名
  • 走行距離
  • 給油量
  • 金額
  • 燃費計算用の数式
  • 送信者

走行距離と給油量をもとに、燃費を計算するための数式も自動で入るようになっています。

家計簿だけでなく、車の維持費や燃費管理にも使える設計です。

12. 最近買った食材からAIがレシピ提案

「レシピ」や「献立提案」と送ると、最近買った食材をもとにGeminiが献立を提案します。

レシピ
献立提案
5人分 レシピ

直近3日以内に購入した食費カテゴリの商品を食材として扱い、最近の献立記録も参考にしながら、重複しにくいメニューを提案します。

出力内容は以下のような構成です。

  • 提案する料理名
  • 選んだ理由
  • 簡単な手順

また、「献立 カレー」のように送ると、実際に作った献立を記録できます。

献立 カレー

これにより、「最近同じものばかり作っている」といった偏りも避けやすくなります。

13. AIによる家計分析レポート

「分析」や「レポート」と送信すると、家計簿データをGeminiが分析し、節約アドバイスを作成します。

分析
レポート
分析4月
レポート4月〜5月

分析対象期間は、指定がなければ直近30日間になります。

月を指定すれば、その月のデータを対象に分析できます。

レポートでは、以下のような内容を出力するようにしています。

  • 支出の要約
  • 詳細分析
  • 節約ポイント
  • LINEで読みやすい形式のアドバイス

単なる合計表示ではなく、AIによるコメント付きの家計レビューができる点が特徴です。

14. 消耗品の買い替えリマインド

「消耗品設定」シートに、商品名と購入サイクルを設定しておくと、一定期間購入していない消耗品をLINEで通知します。

例えば、以下のような使い方ができます。

商品目安日数

トイレットペーパー

30日

洗剤

45日

シャンプー

60日

レシートデータから最後に購入した日を確認し、設定した日数を超えていれば通知します。

日用品の買い忘れやストック切れ防止に役立ちます。

15. Web画面からも利用可能

LINEだけでなく、Google Apps ScriptのWebアプリとしても利用できる構成になっています。

Web画面側からは、以下のような操作が可能です。

  • 買い物リストの取得
  • 買い物リストへの追加
  • 買い物リストからの削除
  • 月別集計の取得
  • 商品検索
  • AI検索
  • レシート画像・PDFのアップロード

LINEが使えない場面でも、ブラウザから家計簿システムを操作できるようになっています。

16. 画像だけでなくPDFアップロードにも対応

Webアップロード機能では、画像ファイルだけでなくPDFにも対応しています。

対応している形式は以下です。

  • JPEG
  • PNG
  • WebP
  • HEIC
  • PDF

ファイルサイズにも制限を設けており、約10MBを超えるファイルは受け付けないようになっています。

アップロードされたファイルはGoogle Driveへ保存され、その後のレシート解析処理に回されます。

17. 重複登録の検出とハイライト

同じレシートや同じ商品が重複して登録される可能性に備えて、重複チェック機能も用意しています。

購入日、店舗名、商品名、金額をもとに署名を作成し、既存データと照合します。

重複の可能性がある行は、スプレッドシート上で背景色を変更してハイライトされるため、あとから確認しやすくなっています。

18. パフォーマンス対策

レシート解析では、1件ずつスプレッドシートへ書き込むのではなく、まとめてバッチ書き込みするようにしています。

また、重複行のハイライトにもRangeListを利用しており、複数行を効率よく処理できるようになっています。

Google Apps Scriptは実行時間やAPI呼び出し回数に制限があるため、こうしたバッチ処理は安定運用のために重要です。

19. Gemini APIの5段階フォールバック

Gemini APIの呼び出しでは、複数のモデルを順番に試すフォールバック処理を実装しています。

あるモデルが混雑していたりエラーになった場合でも、次のモデルへ切り替えて再試行します。

これにより、AI解析処理の失敗率を下げ、できるだけ安定してレシート解析やレポート作成が行えるようにしています。

20. セキュリティ対策

家計簿データは個人情報に近い内容を含むため、セキュリティ面も考慮しています。

主な対策は以下です。

  • LINE Webhookの署名検証
  • 不正なWebhookリクエストの拒否
  • Web画面APIの認証チェック
  • ユーザー登録数の上限設定
  • ファイル形式の制限
  • アップロードファイルサイズの制限
  • ページパラメータのサニタイズ
  • iframe埋め込み制限

LINE Bot経由でもWeb画面経由でも、最低限の認証・検証を通す構成になっています。

21. LINEメッセージの長文分割送信

AI分析レポートやレシピ提案は、文章が長くなることがあります。

LINEにはメッセージ文字数の制限があるため、このスクリプトでは長文を分割して送信する処理を入れています。

画像付きの底値比較グラフを送る場合も、テキストと画像を組み合わせて送信できるようになっています。

22. 古い一時データの自動削除

メモや非同期タスクなど、一時的に保存するデータは、一定時間を過ぎたら自動で削除します。

対象になる主なデータは以下です。

  • レシート画像に添える一時メモ
  • 底値比較などの非同期処理タスク

これにより、Script Propertiesに不要なデータが溜まり続けることを防いでいます。

まとめ

今回作成した家計簿管理スクリプトは、LINEにレシート画像を送るだけで、AIが内容を解析し、Googleスプレッドシートへ自動記録してくれるシステムです。

単なるレシート記録だけでなく、買い物リスト、数量連動の自動消し込み、月別集計、底値比較、給油記録、レシピ提案、消耗品リマインド、AI家計分析まで対応しています。

特に便利だと感じているポイントは、以下の3つです。

  1. レシートを撮るだけで家計簿入力が終わる
  2. 買い物リストとレシート解析が連動する
  3. 蓄積したデータをAIが分析・提案してくれる

家計簿は、続けることが一番難しいと思います。

しかし、LINEに写真を送るだけなら、日々の負担をかなり減らせます。

今後は、Web画面の見やすさ改善や、グラフ表示、予算管理、カテゴリ別の月次推移なども追加していきたいと思います。

コメント

まだコメントはありません。最初のコメントを書いてみませんか?

コメントを書く