GASで経費申請フォームを作ってみた(1/6)ー入力・画像保存・記録・メールをつなぐー

このブログでは、Google Apps Script(GAS)で作ったツールや、作る途中で気づいたことを紹介しています。「こんな使い方もできるんだ」と、普段の作業を見直すヒントになればうれしいです。

今回は、GASで作った経費申請フォームを紹介します。全6本に分けて、第1回は全体像、続く5本では使った機能をひとつずつ取り上げます。

第2回以降には、各機能を紹介するための短いコード例を載せています。各回のコード例は独立しています。順番に追加して、経費申請フォーム全体を完成させるものではありません。

経費申請フォームを自作した理由

もともとは、Googleフォームで経費申請を受け付けていました。ただ、使い方に合わせて改善したいことが増え、フォームの設定だけでは対応しきれなくなってきました。

まず、利用者がスマートフォンのカメラでレシートを撮影し、そのまま申請できるようにしたいと考えました。撮影から入力、送信までをひとつの流れで進められる画面を目指しました。

また、それまでのフォームは、レシート1枚につき1回回答する運用でした。複数枚あると同じ操作を繰り返すため、必要な分だけ入力欄を追加し、まとめて申請できるようにしたいと思いました。

もうひとつの課題は、金額などの入力ミスです。申請金額と内訳の合計が合っているか、8%・10%の消費税が税抜金額と整合しているかなど、送信する前に確認できる仕組みが必要でした。こうした項目をまたぐ細かなチェックは、Googleフォームの標準設定だけでは今回必要な形にできませんでした。

そこで、GASのWebアプリとして入力画面を作ることにしました。スマホでのレシート撮影、複数経費のまとめ申請、金額のチェックを、実際の申請の流れに合わせて組み込むためです。

申請の入力から、その後の処理までをつなぐ

経費申請では、購入日や金額を受け付けるだけでなく、レシート画像を保存したり、申請内容を一覧に残したりする必要があります。

今回まとめたかったのは、こうした一連の処理です。

申請者がフォームに入力して送信すると、レシート画像はGoogle Driveへ、申請内容はスプレッドシートへ保存します。申請後には、入力したメールアドレスへ確認メールを送ります。

画面で受け付けた情報を、その後の保存や連絡につなげる。GASの機能を組み合わせて、こうした流れを作りました。

ブラウザから使える入力画面を作る

申請画面は、GASのWebアプリとして用意しました。申請者情報と経費の入力欄を分け、複数の経費をまとめて申請できます。

HTML・CSS・JavaScriptで画面を作り、保存処理をGASへつなげています。

詳しくは第2回で紹介します。

複数経費の入力とレシート画像の添付を示す説明用画面
経費の入力欄を追加し、申請内容とレシート画像をまとめて送信する画面例。
※説明用のイメージです。実際の画面から項目名・配置などを一部変更し、架空のデータを使用しています。

入力内容をスプレッドシートに記録する

申請内容は、経費1件につき1行でスプレッドシートへ記録します。レシート画像のURLも同じ行に残し、内容と画像をたどれるようにしています。

申請者は入力画面を使い、管理する側は一覧から確認する形です。

詳しくは第3回で紹介します。

レシート画像をDriveに保存する

添付されたレシート画像はGoogle Driveへ保存し、そのURLを経費の記録に残します。

画像と申請内容を結び付け、確認する人が一覧から対応するレシートを開けるようにしています。

詳しくは第4回で紹介します。

年月に合わせて保存先を用意する

レシートの保存先は、申請日ではなく購入した年月で分けています。対象年月の保存先が未登録なら、指定した親フォルダの中で保存先を探し、なければ「2026年08月」のようなフォルダを作成します。

用意したフォルダのURLもシートへ記録し、次の申請で再利用できるようにしています。

詳しくは第5回で紹介します。

申請一覧と購入年月別のレシート保存先を示す説明用画面
申請内容と画像リンクを一覧に記録し、レシート画像を購入年月別のフォルダに保存する例。
※説明用のイメージです。実際の画面から項目名・配置などを一部変更し、架空のデータを使用しています。

申請後に確認メールを送る

申請後には、入力した内容を見返せるように、申請者へ確認メールを送ります。

送信先にはフォームに入力されたメールアドレスを使い、画面に表示するGoogleアカウントの情報とは別に扱っています。

詳しくは第6回で紹介します。

Googleのサービスを、作業の流れに合わせて組み合わせる

今回のフォームでは、Webアプリを入口にして、スプレッドシートへの記録、Driveへの画像保存、メールでの連絡をつなげました。

利用時には、指定したスプレッドシートへアクセスできるかを確認する処理も入れています。画面を作ることに加えて、誰が使うか、どこへ保存するかも、運用に合わせて考える必要がありました。

GASでは、こうしたGoogleのサービスを組み合わせて、作業に合う仕組みを作れます。

入力するところから、その後の整理や連絡まで。普段は別々に行っている作業も、つなげられる部分がないか考えてみると、活用のアイデアが見つかるかもしれません。

自分の業務に自動化機能を追加したい方へ

経費申請や画像保存、申請後の連絡など、今の業務に自動化機能を追加したい方はご相談ください。現在の作業と希望する自動化を伺い、対応できる範囲をご案内します。

トップページへ戻る