紙の予定表、もう打ち直さない。撮るだけでスプレッドシートに|“コードを書かない”自動化【作り方シリーズ第1回】

紙の予定表をスマホで撮るだけで、日付・予定・時刻のスプレッドシートになる――作り方シリーズ第1回のアイキャッチ つまずき帳

紙の予定表を、毎月パソコンに「手で打ち直す」あの作業

紙で配られた来月の予定表を、自分のカレンダーやスプレッドシートに手で打ち直す。ホワイトボードの当番表も、手帳の走り書きも、結局おなじ。

考えなくていい作業のはずなのに、終わるころにはなぜか疲れていて、ちょっと報われない気持ちになる。1件ずつ目で追って、打ち間違えていないか見直して。急いだ日にかぎって日付を1日ずらして入れていて、あとからヒヤッとする。

正直に打ち明けると、これはずっと、わたし自身のことでした。毎月、紙の予定表を見ながらポチポチ打ち直して、「この時間、何に使ってるんだろう」と思っていた側です。

結果から言います(撮って送るだけで、表になる)

いまは、その打ち直しがまるごと消えました。やることはひとつだけ。

紙の予定表を、スマホで撮ってLINEに送る。

それだけで、数秒から十数秒で「日付・予定・時刻」が並んだ表になって、いつものスプレッドシートに追記されます。手で入力するという主作業は、まるごと無くなりました。

紙の予定表をスマホで撮ってLINEに送ると、AIが読み取って日付・予定・時刻の一覧にして返す様子(内容は架空のサンプル)
紙の予定表をLINEに送るだけで、数秒で「日付・予定・時刻」の一覧になって返ってくる(内容は架空のサンプル)

今日の話は、この一点だけ = 写真の文字をAIに読み取らせて表にする

「写真を読んで、表にする」。今日はここだけに絞ります。むずかしい仕組みは何も使っていません。

やったのは、AIに一言こう頼んだだけ。「この写真を読んで、日付と予定と時刻の表にして」。読み取りはぜんぶAIの担当です。

正直に言うと、わたしはコードを一行も書いていません。書いたのはAIで、わたしがやったのは、できあがったものを貼り付けて、許可しただけです。

同じものを作りたい人へ(コードは書きません)

コードは自分で書きません。ChatGPTやGeminiのような対話AIに、こう頼むだけです。

LINEに送った写真をAIに読ませて、紙の予定表から「日付・予定・時刻」を読み取り、Googleスプレッドシートに自動で追記する仕組みを、Google Apps Scriptで作ってください。写真の読み取りにはGeminiを使ってください。

読み取れなかった行や、日付が確定できない行は、推測で埋めずに登録を見送り、「ここが読めませんでした」と知らせてください。読み取れた行も、登録したあとに一覧で確認・修正・削除できるようにしてください。

あとは、AIが書いてくれたものを言われたとおりに貼り付けて、初回の許可をするだけ。「貼って、許可しただけ」——これが、このブログのいつものやり方です。

補足:Geminiは、個人がひとりで使うくらいなら無料枠で足ります。ただ、最初のAPIキーの取り方や、初めての許可画面で気後れしないコツは、それだけで一記事ぶんの話。作り方シリーズの別の回でゆっくり案内します。今日は「撮って送るだけで表になる」入り口だけにします。

(おまけ)中身が気になる人へ:写真→表だけの最小サンプル

※本筋は「コードを書かず、上のプロンプトでAIに作らせる」です。ここから下は、仕組みを見てみたい人向けのおまけ。これは“ぽけっと手帳”本体ではなく、写真→表の部分だけを取り出して単体で動く最小サンプルです(自分のGemini APIキーが必要)。

// 【最小サンプル】写真(予定表)をAIに読ませて、日付・予定・時刻をシートに書き出す
//  ※「ぽけっと手帳」本体ではなく、"写真→表" の部分だけを取り出した単体サンプルです
//  ※Gemini APIキーは無料で取れます(Google AI Studio)。キーは秘密に

const GEMINI_API_KEY = 'ここにあなたのAPIキー';
const MODEL = 'gemini-2.5-flash';

function 写真を表にする() {
  // 1) Driveの画像を1枚読む(ファイル名は自分の画像に合わせる)
  const blob = DriveApp.getFilesByName('予定表.jpg').next().getBlob();

  // 2) AIに「読み取って表にして」と頼む
  const prompt = 'この画像は予定表です。日付・予定・時刻を読み取り、'
    + 'JSON配列 [{"date":"YYYY-MM-DD","title":"予定名","time":"HH:mm"}] だけで返してください。'
    + '読めない項目は空文字に。説明文は不要です。';
  const res = UrlFetchApp.fetch(
    'https://generativelanguage.googleapis.com/v1beta/models/' + MODEL + ':generateContent',
    {
      method: 'post',
      contentType: 'application/json',
      headers: { 'x-goog-api-key': GEMINI_API_KEY },
      muteHttpExceptions: true,
      payload: JSON.stringify({
        contents: [{ parts: [
          { text: prompt },
          { inline_data: { mime_type: blob.getContentType(), data: Utilities.base64Encode(blob.getBytes()) } }
        ] }]
      })
    }
  );

  // 3) 返ってきたJSONをスプレッドシートに書き込む
  const answer = JSON.parse(res.getContentText()).candidates[0].content.parts[0].text;
  const rows = JSON.parse(answer.replace(/```json|```/g, '').trim());
  const sheet = SpreadsheetApp.getActiveSheet();
  rows.forEach(function (r) { sheet.appendRow([r.date, r.title, r.time]); });
}

正直なところ、手書き文字の読み間違いはあります(だから、あとから直せる)

写真の読み取りは、完璧ではありません。とくに手書きの崩れた字は、AIでもたまに間違えます。

だから、いちばん大事にしたのは「間違えても、あとから気づいて直せる」ことでした。

  • あやしい行は、推測で埋めずに登録を見送る
  • 同じ予定がすでにあれば、登録前に「これ、入れますか?」と確認してくれる
  • 取り込んだあとも、一覧から消せる・直せる

正直に言うと、わたしも一度やらかしました。別の予定表を間違えて送ってしまって、変な行がいくつか入り込んだことがあります。読み取りが少し化けて、そのまま登録されてしまった。でも、一覧から消せたので事なきを得ました。

だから、いちばん大事にしているのは「賢く完璧に読むこと」より、「間違えたときに、後から取り返せること」。任せて安心できる線は、たぶんそこでした。雑に撮って送って、送ったあとに一覧をさっと見ておく。それくらいの付き合い方が、ちょうどいいと思っています。

お金と、正直な実感

費用は、わたしの使い方では0円でした(Geminiの無料枠)。ただし、無料枠には上限があります。あくまで「個人がひとりで、毎月の予定表を数枚読ませる」くらいの範囲の話として読んでください。たくさんの人が一斉に使う前提だと、話は変わります。これで稼いでいるわけでもありません。

毎月の打ち直し——時間にすれば毎回10分ちょっと——が無くなってみて、気づいたことがあります。

消えたのは10分だけじゃなくて、机に向かう前の「また、これをやるのか」という、あの小さな気の重さごと、だったんです。

次回予告:撮った写真を、LINEとつなぐ回(第2回)

撮って送るだけで、紙とデジタルの「打ち直し」の溝が、ひとつ埋まりました。AI秘書「ぽけっと手帳」は、こういう小さな部品の積み重ねでできています。

次回・第2回は、この「撮った写真を、どうやってLINEとつなぐのか」を一つずつ分解していきます。コードが書けなくても、AIに任せて同じところへたどり着けます。


このシリーズのこれまで:AI秘書「ぽけっと手帳」(全体像)第1回:紙の予定表を撮って送るだけ(写真→表)(この記事)第2回:LINEに話しかけて予定を登録・一括削除第3回:許可画面で気後れしないために第4回:毎朝・前夜・週1の自動通知第5回:カレンダー/フォトと連携(完結回)応用編その3:受発注・請求 秘書(受注が来たら、選ぶだけで見積書・請求書のPDFに)受発注 育てる編①:入金消込・督促・領収書PDF受発注 育てる編②:受注した瞬間に在庫を押さえる受発注 育てる編③:発注点アラートと発注書PDF受発注 育てる編④:月次集計・売上グラフ・会計CSV(最終回)基礎編:URLひとつで“自分の申込ページ”を作る(Webアプリ)基礎編:申し込まれた瞬間に、確認メールが自動で返る基礎編:申し込んだら、控えのPDFが自動で届く基礎編:申込の控えが、勝手にドライブへ積み上がっていく基礎編:申込のひとことを、届いた瞬間にAIが仕分ける基礎編:誰も画面を開いていないのに、毎朝まとめが届く基礎編:申込が来た瞬間、ポケットのLINEが鳴る(最終回)応用編その4:申込・予約 秘書(満席の瞬間、ページが自分から閉まる)申込・予約 育てる編①:キャンセル待ちと自動繰り上げ申込・予約 育てる編②:承認制とお断り下書き申込・予約 育てる編③:前日リマインダーと毎朝まとめ申込・予約 育てる編④:管理ページ(最終回)

#AI秘書 #ぽけっと手帳

コメント

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