「Google Drive」へのPDF保存は各社のスキャナーでもできそうなので、手始めに『スキャンしたPDFの整理と通知』に着手することにしました。今までは私個人の「OneDrive」の指定フォルダーに全てアップロードしていたのですが、家族全員がGmailアカウントを持っていますし、なんなら家族共用のGmailアカウントもあります(自治会との連絡などに使っています)。また、一般のご家庭ならあたりまえのように家族全員で使うDiscordサーバーがあるとおもいます。え?ない? 「LINE」や「Slack」はありませんか? ともかく、“家庭内Discord”は家族の円滑で円満なコミュニケーションに重要ですので一刻も早くサーバーを立ち上げましょう。
さて一方で、スキャナ各社のソフトウェアはGoogle Driveへのファイル保存はできても、SlackやDiscordへの通知機能は実装されていません。ないならつくるしかない!
「Claude 4」を使ってプロンプト一発でつくります
書類をスキャンするとDiscordで通知される
作りたいものは、こんなふうに、書類をスキャンすると家族で共有しているGoogle Driveに保存され、Discrodでファイル名やサイズの通知が来ます。設定が間違っていた場合のエラー通知などもきちんと表示されるようにします。
実は今回のスクリプトは「Claude 4」の無料アカウントで作りました。
以下のようなプロンプトを入力して「ほぼ一発」でできました。そのまま「Claude 4」に貼り付けてみていただいても構いません。
・Scansnapで特定のディレクトリに新規PDFが保存されるので
・時間トリガーで起動した関数WatchNewFile()を起動して
・新しいファイルIDがきたら(Spreadsheet/Scansnap/シート[PDF]に記載)
・そのファイル名とGoogleDriveのURLを、DiscordのWebhookで伝えるGoogle Apps Script
シート名は[PDF](存在しない場合は新規作成)、WEBHOOK, FOLDER_IDはスクリプトプロパティで取得(ない場合は取得方法をダイアログ表示)、 SpreadsheetIDは自動取得でお願いします。
Scansnapの生成するPDFは「YYYYMMDD_(タイトル).pdf」という形式になります
シート[PDF]のヘッダは
書類日付,作成日時,追加日時,ファイル名,GoogleDriveURL,ファイルID
という順で、書類日付はファイル名の冒頭YYYYMMDD_から取得して「2025/05/31」形式でお願いします。GoogleDriveURLはテキスト形式。
・ユーザーが操作する関数はスプレッドシートのメニュー「Scanner管理」から利用可能にします。
・Discord通知はよりスタイリッシュにemoji満載で
・ユーザがシートを改造・拡張しやすくするため、できるだけセルの列番号をハードコードしない(ヘッダ名称で扱う)。
このプロンプトに対し、「Claude 4」は以下のような回答を返してきました。
スプレッドシートのメニューから操作できるように改良したScanSnap PDF管理システムを作成しました!
🎯 主な機能
📋 スプレッドシートメニュー
スプレッドシートを開くと「ScanSnap管理」メニューが自動で追加されます:
📋 設定: Discord WebhookとGoogle DriveフォルダIDを設定⚙️ トリガー設定: WatchNewFile()の自動実行を5分間隔で設定🔍 手動チェック: 即座にファイルチェックを実行🧪 設定テスト: 設定確認とテスト通知を送信📊 統計情報: 登録ファイル数や月別統計を表示❌ トリガー削除: 自動実行を停止
🔧 自動機能
自動監視: 5分間隔でPDFファイルを監視重複回避: ファイルIDによる重複チェックエラー通知: エラーもDiscordに自動通知統計管理: 月別の登録統計を自動計算
📊 PDFシート機能
自動作成: 「PDF」シートが存在しない場合は自動作成整理された記録: 書類日付、作成日時、追加日時など詳細情報を記録リンク機能: GoogleDriveURLをクリック可能なリンクに設定視覚的な整理: ヘッダー行の色分けと列幅の自動調整
🚀 使用開始手順
スプレッドシートにスクリプトを設定
Google Apps Scriptエディタに上記コードを貼り付け保存して実行権限を付与初期設定
スプレッドシートの「ScanSnap管理」→「設定」を選択Discord Webhook URLとGoogle DriveフォルダIDを入力動作確認
「設定テスト」でDiscord通知を確認「手動チェック」でファイル検出を確認自動実行開始
「トリガー設定」で5分間隔の自動監視を開始
これで、ScanSnapで新しいPDFが保存されるたびに、自動的に「Google スプレッドシート」へ記録され、Discordに通知されます!
動作確認
「Google スプレッドシート」に[Scanner管理]というメニューが現れました。いい感じのemojiもついて映え映えです。
追加された[Scanner管理]メニューはemojiも使われて映え映え
こんなふうに、書類をスキャンすると家族で共有している「Google Drive」に保存され、Discrodでファイル名やサイズの通知が来ます。ファイル名の文字起こしはScansnapによるものです。
スキャンした書類を家族みんなで共有できるように!家族の感想なにこれ超便利じゃんお父さんが占有していたスキャナーをみんなで使えるのいいねリンクをクリックするとPDFが見れるの助かる郵便受けで受け取ったDMをとりあえずスキャンして通知できるのいいねスキャンしてすぐに確認してリサイクルにできるのいいねDiscordのチャンネルで後から見ればいいのいいねDiscordでもGoogle Driveでも検索できるのうれしい過去のPDFも含めてGoogle Drive上でフォルダで整理する前段として嬉しい
といった評価をいただいております。これでお父さんの株は爆上がりですね。
インストールの詳細な手順についてはこちらで解説しました。
だいたいここまで1時間かからないぐらい! 興味のある人は、表示形式やアイコンを変えたり……凝り始めるといくらでも凝れますが……。AIコーディングを使った日曜DIYとしてはこれくらいが適切なライフハックではないでしょうか。
「ChatGPT」などのAPIと連動して、中身の分析やフォルダーの分類、ファイル名の変更通知などを自動化してみてもいいと思います。
その場合はこのコードを拡張するというよりは、新規でGoogleAppsScript (.gs)を作って、該当のフォルダーIDを監視して処理をするようなスクリプトにするといいと思います。Google Apps Scriptには一度に処理できる時間の上限がありますので、AIエージェントとしていい感じに動作するような仕掛けを考えてみてください。
フィードバックは、しらいはかせ(X@o_ob)か、Githubリポジトリまでどうぞ。
以上、ストリーム感のあるAIライフハックでした!
