トップ / 記事一覧 / Google Apps Script(GAS)とは——業務自動化の第一歩

SHARE

Google Apps Script(GAS)とは——業務自動化の第一歩

Google Apps Script(GAS)とは——業務自動化の第一歩

パンハウスインサイト編集部
2026.07.11

「プログラミング」と聞くと身構えてしまう方は多いと思います。でも、スプレッドシートで=SUM(A1:A10)と書いたことがあるなら、あなたはすでにコンピュータへの「命令」を書いています。Google Apps Script(GAS)は、その延長線上にあります。

この記事では、関数とGASの関係から、GASで何ができるのかの全体像、そして実際に弊社の社内で毎日動いている自動化の実例までを紹介します。

「関数」はすでにプログラミングである

SUMは「A1からA10を合計せよ」という命令です。IFは「条件を満たせばA、満たさなければB」という命令です。どちらも、人間があらかじめ決めたルール通りに、毎回同じ結果を返します

この「同じ入力なら必ず同じ結果」という性質を持つ処理を、ルールベース処理と呼びます。今日実行しても明日実行しても、データが同じなら答えは同じ。この再現性こそが、業務を安心して任せられる自動化の土台です(ルールベース処理と生成AIの使い分けについては、あなたが「AI」と呼んでいるもの、本当にAIですか?で詳しく整理しています)。

つまり、関数を使いこなしている人は、ルールベース処理の考え方をすでに身につけています。あとは適用範囲を広げるだけです。

関数は「セルの中」までしか届かない

ただし、関数には決定的な限界があります。関数が動けるのは、スプレッドシートのセルの中だけなのです。

  • 集計した結果を、メールで送りたい
  • 管理表に1行追加されたら、Googleドライブにフォルダを作りたい
  • 期日が来たら、Slackに通知したい

どれも「計算」の部分は関数でできそうなのに、セルの外に出た瞬間、関数では手が届かなくなります

そこを担うのがGASです。GASは、関数と同じルールベースの原理を、スプレッドシートの外——Gmail、ドライブ、カレンダー、フォーム、さらには外部サービスまで——広げるための仕組みです。Googleアカウントがあれば無料で、環境構築も不要。スプレッドシートのメニューから「拡張機能」→「Apps Script」を開けば、今すぐ書き始められます。

GASで何ができるのか——全体マップ

GASが操作できる範囲をひと目でわかるように整理します。

操作できる対象できることの例
スプレッドシートセルの読み書き・集計・色付け・シートの新規作成
Gmailメールの検索・下書き作成・自動送信・添付ファイルの処理
ドライブフォルダの作成・ファイルの移動・雛形ファイルのコピー
カレンダー予定の取得・空き時間の抽出・予定の登録
フォームフォームそのものの自動生成・設問の設定・回答の取得
ドキュメント/スライド文書や資料の自動生成・差し込み
外部サービスSlack・Chatworkなどへの通知。API経由で生成AI(LLM)ともつなげる

そしてもうひとつ、GASを実用レベルに引き上げる横断機能がトリガーです。「毎朝9時に実行」「フォームが送信されたら実行」「1時間おきに実行」といった条件で、スクリプトを自動起動できます。つまり、人がボタンを押すことすら不要になる——ここが関数との一番大きな違いです。

ここからは、実際に弊社の社内で動いている仕組みを2つ、研修先の企業で構築された仕組みを1つ紹介します。

実例①:案件が起票されたら、フォルダとアンケート一式が自動で準備される

弊社では研修案件を受注すると、案件ごとにGoogleドライブへ資料フォルダを作り、受講者アンケート(全8回の振り返りシート)を毎回準備する必要があります。案件のたびに同じフォルダ構成を手で作り、雛形フォームを8枚コピーして、回答の集計先を設定して……これを手作業でやると、それだけで30分は消えますし、構成のばらつきや設定漏れも起きます。

そこで、受注管理表に新しい案件が追加されたら、準備一式を自動で終わらせるGASを動かしています。処理の流れはこうです。

  1. GASが受注管理表を定期的に読み取り、新しく追加された案件を自動で検知
  2. 検知したら、ドライブの案件フォルダ配下に「案件ID+社名」のフォルダを作成
  3. その中に「録画」「アンケート」「資料」などの定型サブフォルダを作成
  4. アンケートの雛形フォーム(事前・通常回・中間・最終の4種類)をコピーして、「第1回振り返りシート」〜「第8回振り返りシート」を生成
  5. 全フォームの回答が集約されるスプレッドシートを自動で作成

中核部分のコードは、これだけです。

// 「案件ID+社名」のフォルダを作り、定型のサブフォルダを掘る
const newFolder = parentFolder.createFolder(pjId + " " + companyName);
newFolder.createFolder("録画");
const formFolder = newFolder.createFolder("アンケート");

// ドライブ上の雛形フォーム(ファイル)をコピーして全8回分の振り返りシートを生成
copies.push(preFormFile.makeCopy("事前アンケート", formFolder));
copies.push(regularFormFile.makeCopy("第1回振り返りシート", formFolder));
// …第2回〜第8回も同様…

// コピーした各フォームを開き、回答が集計用スプレッドシートに集まるよう設定
const newForm = FormApp.openById(copiedFile.getId());
newForm.setDestination(FormApp.DestinationType.SPREADSHEET, summarySheetId);

createFolderでフォルダを作り、makeCopyで雛形を複製し、setDestinationで回答の集まる先を決める。1行1行は「命令」であって、SUMと本質的に変わりません。それでも組み合わせれば、スプレッドシート・ドライブ・フォームという3つのサービスをまたいだ業務フローが丸ごと自動化されます。

実例②:問い合わせが来たら、日程候補入りの返信下書きができている

次は、弊社の研修を受講いただいた企業で実際に構築された仕組みです。

Webフォームから問い合わせが入るたびに、担当者が自分のカレンダーを開いて空き時間を探し、候補日を書き並べた返信メールを作る——多くの会社で毎日発生している、典型的な「セルの外」の作業です。

これをGASで自動化しました。フォームの送信をトリガーに、Googleカレンダーから1時間以上の空き枠を4つ自動で抽出し、候補日時を差し込んだ返信メールの下書きをGmailに自動作成するという流れです。

人間がやるのは、下書きの内容を確認して送信ボタンを押すことだけ。「フォーム→カレンダー→Gmail」と、これも3つのサービスを横断しています。日程調整という、単純なようで意外と時間を食う業務が、確認作業だけになります。

実例③:入金期日をSlackが教えてくれる「入金リマインドくん」

最後も弊社の社内で毎日動いている仕組みです。社内では「入金リマインドくん」と呼ばれています。

請求書を発行したら、入金期日にきちんと入金されたかを確認するのは経理の重要な仕事です。ただ、売上管理表を毎日開いて期日を目視でチェックするのは、地味に負担がかかるうえに見落としのリスクがあります。

前提として弊社では、入金を確認したら売上管理表のステータスを「入金済」に変更する運用にしています。そこで、売上管理表から「今日が入金期日で、まだ入金済みになっていない案件」を毎朝自動で抽出し、Slackの経理チャンネルに担当者へのメンション付きで通知するGASを動かしています。

判定のロジックは、たったこれだけです。

// 今日が入金期日で、ステータスが「入金済」でない案件を抽出
if (paymentDayStr === todayStr && status !== "入金済") {
  messages.push(`• ${companyName}、金額: ${amount}円`);
}

「期日が今日」かつ「未入金」なら通知対象にする——IF関数の条件式と同じ発想です。抽出した案件は、SlackのIncoming Webhookという仕組みを使って通知します。

// Slackに通知を送る(WEBHOOK_URLはSlack側で発行される通知用URL)
UrlFetchApp.fetch(WEBHOOK_URL, {
  method: "post",
  contentType: "application/json",
  payload: JSON.stringify({ text: message }),
});

これを毎朝のトリガーで動かしておけば、人間は何もしなくても、確認すべき案件がある日だけSlackが教えてくれます。「毎日チェックする」仕事が、「通知が来た日だけ対応する」仕事に変わる——見落としのリスクは大きく下がり、督促の初動も早くなりました。GASはGoogleのサービスだけでなく、Slackのような外部サービスにもこうして手が届きます。

今日から始める3ステップ

GASの始め方はシンプルです。

  1. スプレッドシートを開き、「拡張機能」→「Apps Script」を選ぶ——これだけでコードエディタが開きます。インストールも設定も不要です
  2. まず小さく試す——いきなり業務を自動化しようとせず、「セルに値を書き込む」「自分宛てにメールを送る」といった小さな動作から始めます
  3. トリガーを設定する——動くものができたら、時計アイコンの「トリガー」メニューから自動実行の条件を設定します

つまずきやすいポイントも2つだけ挙げておきます。初回実行時には「このスクリプトにアカウントへのアクセスを許可しますか」という承認画面が出ますが、これは自分が書いたスクリプトに自分のGmailやドライブを触る許可を与えるという意味で、正常な手順です。また、スプレッドシートのIDや通知用URLのような値は、コードに直接書かず、スクリプトプロパティという専用の保存場所に入れておくと、コードを人に共有するときも安全です。

まとめ——「セルの外に出たい瞬間」を探そう

GASは、関数で身につけたルールベースの考え方を、Googleサービス全体と外部サービスにまで広げる道具です。紹介した3つの実例は、どれも特別な技術ではなく、「フォルダを作る」「空き時間を探す」「条件に合う行を通知する」という単純な命令の組み合わせでした。

自動化の種を探すコツは、「関数で困っていないか?」ではなく、「セルの外に出たい瞬間はないか?」と問うことです。集計結果をメールしたい、起票されたらフォルダを作りたい、期日が来たら通知したい——その瞬間こそ、GASの出番です。

そして「やりたいことはあるが、コードが書けない」という方へ。その壁の越え方は、続編のコードが書けなくても業務は自動化できる——生成AIにGASを書かせるという方法で解説しています。

自社の業務、どこから自動化すればいいか迷っていませんか?

パンハウスの生成AI研修では、GASによる業務自動化から生成AIとの連携まで、実務に直結する内容をハンズオン形式で扱っています。この記事で紹介した仕組みのような「自社で動く自動化」を、社内で作れる人材を育てます。まずはお気軽にご相談ください。

お役立ち資料 AI導入を前に進める
推進担当者の教科書
導入前に整理しておきたい考え方、ルール設計、ツール選定、社内定着の進め方をまとめた資料です。 無料でダウンロードする

この記事を書いた人