続・整理整頓大好き人間(Gemini Spark編)

Geminiを使ってスキャンしたプリント類を整理してもらうやり方を書いたところ、思っていた以上に反響をいただいて驚いた。たくさんの人に見てもらえたなあ、としみじみしていた。

ところが、読んでくれた人に詳しく聞いてみると、あることに気づいてしまった。あれ? 誰も実践していないのでは!?

「便利そうなのはわかったけど、大変そうなので……」

おいおいおい。整理整頓大好き人間としては、聞き捨てならないよ。確かに、GeminiのAPIキーを取得したり、Apps Scriptを書いたりと、意外にやることが多い。大変そうだと思ってしまう気持ちも、わからないでもない。でも! でもね! 一度設定すれば、あとは自動で動くようになる。試してみる価値はあるんじゃない?

しかし、世は大AI時代。そんなことを言っているうちに、ついにやってきましたよ。

Gemini Spark(ジェミニ・スパーク)が!

Gemini Spark って何?

Gemini Spark は、質問に答えるだけの受動的なアシスタントから、24時間いつでもタスクをこなし続けてくれる能動的な頼れるパートナーへと、AI の役割をガラリと変える画期的な機能です。
――「Gemini Spark」: 24 時間 365 日対応する自分だけの AI エージェントが日本のPro ユーザーにも拡大

Gemini Sparkは、クラウド上で24時間365日働き、複雑な作業を自律的にこなしてくれるAIエージェントということらしい。ってことは、Google AI StudioでGeminiのAPIを取得して、Apps Script書いて、スケジュール設定して、みたいにやっていたプリント振り分け設定をGeminiだけでできるってことじゃない?

複数のサイトを行き来しながら、何かを登録したり、編集したり、みたいな作業をせずに、Geminiだけで実現できてしまう。これなら簡単だ。Gemini Sparkを使って、もっと簡単にプリントの整理整頓ができるようにしてみせる。

もう「大変そう……」とは言わせない。「読んで満足。ためになったね。」で終わらせてはいけないのだ。

コストについて

前回は、GeminiのAPIを叩くので、従量課金でコストが発生していた。でも、今回はGeminiの機能として実行するため、APIの従量課金を気にする必要はない。つまり、Just Do Itってこと。

作り方

ステップ1:フォルダと分類ルールの準備(Googleドライブ)

まずは、Googleドライブ上に必要なフォルダと、分類ルール用のスプレッドシートを作る。ここまでは前回と一緒。でも、GeminiのAPIキーを取得しておく必要は無くなった。

  1. フォルダを作る
    投げ込み用の「Scan」フォルダと、分類先のフォルダ(「学校」「病院」など)、分類できない時用の「未分類」フォルダを作る。
  2. 分類ルールを作る
    スプレッドシートを新規作成し、1行目に「キーワード」「接頭辞」「移動先フォルダID」「追加のプロンプト」の列を作って、分類ルールを入力する。「追加のプロンプト」は任意の項目で、行の内容に対して、Geminiに追加指示をしたい場合に記入する。特にない場合は、空欄で構わない。記事の最後にテンプレートを用意しているので、それをコピーして利用するとよい。

ステップ2:スキル用プロンプトを登録する(Gemini Spark)

次に、やってほしい作業内容をまとめたスキルを設定する。今回はGoogle Apps Scriptを書く必要はない。Geminiだけで完結する。

  1. スキルを開く
    Gemini Sparkのスキルを開き、「手動で作成」ボタンを押す。
  2. スキル用プロンプトを貼る
    名前と説明は自由に設定。カスタム指示欄に後述のスキル用プロンプトを、そのまま全選択してコピペする。
  3. 設定用のIDを登録する
    スキル用プロンプトの ## Configuration にある以下の項目を、ステップ1で準備した要素に置き換える。

入力例

プロパティ
YOUR_INPUT_FOLDER_ID (Step 1のScanフォルダID)
YOUR_FALLBACK_FOLDER_ID (該当がない場合の移動先フォルダID )
YOUR_RULE_SPREADSHEET_ID (分類ルール用スプレッドシートID)
YOUR_CALENDAR_ID (予定登録するカレンダーID)
  • フォルダID: URLの folders/ の後ろにある文字列
  • スプレッドシートID: URLの d//edit の間に挟まれた文字列
  • 予定や期限のカレンダー登録提案を利用しない場合、 YOUR_CALENDAR_IDnone と入力する

ステップ3:動作テストと定期実行の設定

見慣れない設定画面からトリガーをセットする必要はない。動作テストから定期実行の設定まで、チャット上で完結する。

  1. 初回テスト
    Gemini Sparkのタスク入力欄に、先ほど登録したスキル名を /scan-file-organizer のようにスラッシュ付きで入力すると、スキルを実行できる。初回のみ、Googleへのアクセス許可が出るので「OK」を押す。
  2. 自動実行をセット
    動作に問題がなければ、そのままチャットでスケジュールの設定を依頼すると、Geminiが定期実行するスケジュールを設定してくれる。毎時、毎日、毎週、など、実行タイミングや頻度は、自分が好きなものを指定すればよい。登録したスケジュールは、スケジュール画面で一元管理できる。この画面から直接追加することも可能だ。

完成!

あとは、日常で紙のプリントをもらったら、スキャンしたり、スマホで撮ったりして、「Scan」フォルダに放り込むだけ。設定した実行時刻になると、Geminiがファイル名を整え、指定したフォルダに片付けておいてくれる。

ちなみに、PDFでなくても、写真やスクショを「Scan」フォルダに入れても処理できる。学校からの連絡は、紙のプリントだけでなく、アプリやメールなど、さまざまな経路でやってくる。形式を気にせず、スクリーンショットやPDFを丸ごと放り込んでおけばよい。

途中でわからないことがあったり、設定をカスタマイズしたいときは、その場でGeminiに相談できるのも便利だ。

今回はカレンダー登録もやってくれるぞ!

せっかくなので、おまけ機能をつけてみた。整理したドキュメントに、行事の日程や期限などがあれば、それをカレンダーに登録しないか、尋ねてくれるようにした。登録する場合は、そのまま指示すれば、Googleカレンダーに登録してくれる。プリントに書かれている行事の予定をわざわざ手入力しなくてよい。

付録

分類ルール用スプレッドシート

以下のサンプルスプレッドシートを自分のGoogleドライブにコピーし、内容を書き換えて使用するとよい。検索キーワードはカンマ区切りで入力。自分で入力してもよいけど、あらかじめスキャンしておいたプリントを何枚かAIに読んでもらって、いい感じのキーワードを提案してもらうと簡単。

📥 ファイル分類ルール(サンプル)_v2

スキル用プロンプト

「ステップ2」でGemini Sparkのカスタム指示欄に貼り付けるプロンプト全文。 ## Configuration 内の各IDを自分の環境に合わせて書き換えて使用する。5つ目の **Filename Standard** はファイル名の命名ルールなので、そのままにしておいて構わない。

# Scan File Organizer

Inspect scanned documents in a specified Input Folder ID in Google Drive, dynamically read classification rules, target Folder IDs, and row-specific custom instructions from a Google Sheet, systematically rename and move files, and extract schedules or deadlines to register on Google Calendar.

## Configuration (Sheet & Folder IDs)

Users should customize the following settings based on their Google Drive & Calendar environment:

- **Input Folder ID**: `[YOUR_INPUT_FOLDER_ID]` (e.g. Scan folder ID)
- **Fallback / Unclassified Folder ID**: `[YOUR_FALLBACK_FOLDER_ID]`
- **Rule Definition Spreadsheet ID**: `[YOUR_RULE_SPREADSHEET_ID]`
- **Target Calendar ID**: primary or specific shared calendar ID (e.g. `[YOUR_CALENDAR_ID]`)
- **Filename Standard**: `YYYYMMDD_[Prefix]_[Document_Type]_[Period_or_Edition].[ext]`

## Execution Steps

1. **Find Unorganized Files**:
   Search the configured Input Folder ID for unorganized files.

2. **Check for Files (Error Avoidance)**:
   If NO unorganized files are found: Output a single concise line: "指定フォルダに未整理ファイルはありませんでした。" and complete the run gracefully to avoid system errors.

3. **Fetch Classification Rules from Spreadsheet**:
   Read the configured Rule Definition Spreadsheet.
   Extract the mapping table containing:
   - Keywords / Context (A列: カンマ区切りのキーワード)
   - Prefix (B列: ファイル名の先頭につける接頭辞)
   - Destination Folder ID (C列: 移動先フォルダID)
   - Custom Instructions / Additional Prompts (D列: 行ごとの個別追加指示プロンプト)

4. **Analyze, Match & Organize**:
   For each unorganized file in the Input Folder:
   - Read the text content of the file.
   - Compare file text against the Keywords / Context retrieved from the spreadsheet to determine the matching Category, Prefix, Destination Folder ID, and Custom Instructions (Column D).
   - Identify document date (YYYYMMDD) and generic Document_Type (e.g. お知らせ, 案内, 明細, 通知書, 領収書). Fallback to file creation date if no explicit date is in text.
   - **MANDATORY: Extract Target Period, Fiscal Year, or Edition/Volume Label (Period_or_Edition)**:
     Dynamically scan text for explicit timeframe, target period, fiscal year, issue month, or edition/volume expressions:
     - Fiscal Year Terms: YYYY年度, 令和X年度
     - Target Period / Payment Terms: MM月分, MM月DD日支給分, YYYY年第X四半期
     - Edition / Issue / Volume Terms: MM月号, 第X号, 第X回
     - **FORMATTING RULE**: Use the exact expression and format as written in the document text whenever possible (e.g., preserve original text formatting such as "2026年5月分", "5月分", "令和8年度", "第3号" rather than arbitrarily normalizing or reformatting them).
     - **CRITICAL STRUCTURAL RULE**: Even though the filename begins with YYYYMMDD (issue/creation date), you MUST STILL append any detected Period_or_Edition label to Document_Type (format: `[Document_Type]_[Period_or_Edition]`). Do NOT omit or merge period expressions into the date prefix.
   - **Apply Custom Instructions**: If Column D contains row-specific instructions (e.g., "Extract items to bring into memo", "Include employee ID in filename"), strictly execute them during text analysis, file renaming, or memo generation.
   - Format filename as `YYYYMMDD_[Prefix]_[Document_Type]_[Period_or_Edition].[ext]` (unless modified by Custom Instructions).
   - **Handle Duplicate Filenames**: Check if a file with the target filename already exists in the Destination Folder. If a duplicate exists, append a sequence/index suffix (e.g., `_1`, `_2`, or `_(1)`) to ensure the filename is unique before moving/renaming.
   - Rename the file in Google Drive and move it directly to its corresponding Destination Folder ID (or Fallback / Unclassified Folder ID if unclassifiable/unmatched).

5. **Extract Schedule & Calendar Sync**:
   - Identify explicit dates, times, deadlines, or event details from document text (incorporating any specific instructions from Column D).
   - **Exclusion of Past Dates**: Do NOT propose calendar entries for dates or schedules that are in the past relative to current execution time. Only propose entries for current or future dates/deadlines.
   - Attach the processed file's Google Drive URL (e.g., https://drive.google.com/file/d/{file_id}/view) to the description/memo of each extracted schedule item.
   - Present a formatted list of proposed calendar entries in the chat response and ask for confirmation to add them to the configured Target Calendar ID.

ガイド用プロンプト

ここまで紹介した方法で、Apps ScriptやAPIキーは必要なくなって、セットアップが簡単になった。ただし、フォルダを作り、IDを調べ、スキル用プロンプトを書き換えて登録する作業は、まだ自分で行う必要がある。

そこで、これらの設定作業までGeminiに任せるための「ガイド用プロンプト」も用意した。実は、Gemini Sparkの真価はここにあるんじゃないだろうか。

前回も設定をサポートするプロンプトを用意した。作業の進捗状況に合わせて、次は何をすべきかをガイドしてくれるものだったが、今回は案内だけでは終わらない。やり方を説明するだけでなく、必要な設定情報のヒアリングから、スキルの作成・登録、動作テスト、スケジュール設定まで、自動で作業を進めてくれる。

お願いしただけなのに、気づいたら全部できていた、みたいなやつ。これはちょっと感動するレベルの体験なので、ぜひ、試してみてほしい。

この続きはcodocで購入