GASとVision AIで手書き日報の情報をスプレッドシートに自動記述する(2)

おはようございます!マネジメントオフィスいまむらの今村敦剛です。

手書きの日報から情報を自動で読み取り、データ化してくれたらすごく便利だと思いません?これをGoogle Apps Script (GAS) と Google Cloud Vision AI を連携させて実現してみました。

Loading table of contents...

前回の記事はこちら

GASのcode.gs作成

前回はGoogle Cloudの設定とGAS・Googleスプレッドシートの準備をしました。今回はその続きで、GASのコード作成からです。

コードはGemini 2.5 Proに作ってもらったのですが、そのコードを参考までに貼っておきます。

このGASスクリプトの主な特徴を簡単に示しておきます。

  • Google Cloud Vision APIとの連携
  • 大規模ファイルに対応する非同期処理の実装(一旦APIに処理をリクエスト(asyncBatchAnnotate)し、完了するまで待機する「非同期処理」モデルを採用)
  • Google Cloud Storage (GCS) の活用(GoogleドライブのPDFをGCSへアップロードし、OCR結果(JSON形式)をGCSからダウンロードし、処理後にこれらの一時ファイルを削除する、という一連の流れを自動で行う)
  • 正規表現による柔軟なデータ抽出(OCRで読み取った長文テキストの中から、「日付」「担当者名」「良品数」「不良品数」といった必要な情報だけを正規表現(RegExp)を使って抜き出し)
  • 再利用性と安全性を高めるスクリプトプロパティ(APIキーやフォルダIDなどの設定値をコード内に直接書き込む(ハードコーディングする)のではなく、「スクリプトプロパティ」という別の場所で管理)
  • Googleドライブ上のファイル自動整理機能(処理が完了したPDFファイルを、指定された「処理済みフォルダ」へ自動的に移動させます)

いよいよ実行!

これで設定は全て完了です。

いよいよ実行ですが、初めてスクリプト(関数)を実行すると、必ず権限の承認を求められます。「詳細」→「(安全でないページ)に移動」をクリックし、権限を承認します。

こんな感じの手書き日報をPDFにして、設定をしたGoogleドライブのフォルダへ格納します。

すると、所定のGoogleスプレッドシートに、確かに保存されます。

この状態になったら、読み込んだPDFは「処理済み」のフォルダへ移動することになります。

 今後の課題

今回は、たった4つの情報をOCRで読み取り、データ化する試みでした。しかし実際に企業で使われている手書き日報は、もっと情報量が多く、されにはフォーマットも複雑な場合が一般的です。

これを正しく読み取るのは至難の業です。解決の方向性としては、Googleの「Document AI」を活用するという方法があります。これは、単なるOCRではなく、あらかじめ日報のフォーマットをAIに学習させておく認識の方法です。ある程度のファインチューニングが必要です。ちょっと試してみたのですが、小さい文字や狭い入力欄などでは読み取りに難がありそうです。

それ以前の問題として、設定やAIのトレーニングが非常に難しいです。ある程度の専門知識が必要で、解読するのに精一杯です。(こんなことなら、人間が手書き日報を見て、一つ一つ手入力したほうが早いと、たぶんほとんどの人が思うはずです)

もうちょっといろいろ試してみて、良い方法があればまた皆さんに共有しますね。

この記事を書いた人
代表取締役 今村 敦剛

中小企業診断士/審査員(ISO9001, 14001, 45001)/日本心理学会認定心理士