1そもそもGAS(Google Apps Script)とは?
Google Apps Script(GAS、ガス) は、Googleが提供している「Googleサービスを自動操作するためのプログラミング環境」です。 スプレッドシート・Gmail・カレンダー・Googleドライブ・スライド・フォームなど、私たちが普段使っているサービスを、 コードで自動的に動かすことができます。
業務での具体的な使われ方
- 毎朝、特定のスプレッドシートを集計して、結果を関係者にメール送信する
- フォームの回答を受け取ったら、自動的にカレンダーに予定を登録する
- 毎週金曜の17時に、週次レポートを自動生成して PDF にしてDriveに保存する
- スプレッドシートの顧客リストから、宛名を差し込んだメールを一斉送信する
Excel VBA との大きな違いは「クラウドで動く」こと。パソコンを開いていなくても、Googleのサーバー上で時間どおりに動いてくれます。マクロが入った Excelファイルを開いておく必要もありません。
2GASでできることの全体像
GASでできることは膨大ですが、まずは「自分の業務にどう効くか」を3つの軸で押さえます。
定型作業の自動化
毎日/毎週/毎月の決まった作業を、人の手を介さずに実行できる。集計、メール送信、レポート出力など。
データの連携
スプレッドシートと Gmail、フォームとカレンダーなど、複数のサービスをまたいだワークフローを構築できる。
外部システムとの接続
外部APIを呼び出して、社外のデータベースやWebサービス(翻訳、決済、SNSなど)と連携できる。
本研修で扱う「3つのレイヤー」
本研修では、以下の3つのレイヤーで業務を自動化する力を段階的に身につけていきます。
| レイヤー | 主な技術 | 例 |
|---|---|---|
| ① 単体作業の自動化 | GAS / VBA |
スプレッドシートの集計、メール一括送信 |
| ② 分析・可視化 | GAS + Python |
データを集めてグラフ化、ダッシュボード作成 |
| ③ AIとの統合 | ChatGPT + GAS |
AIに文章生成・コード生成させて資料を自動作成 |
3GASは「どこに」書くのか?
「プログラミング」と聞くと専用のソフトを入れる必要があるイメージがありますが、GAS は ブラウザだけで完結します。インストール不要、Googleアカウントがあればすぐに始められます。
スプレッドシートからスクリプトエディタを開く
スクリプトエディタの画面構成
- A:コード入力エリア ここに JavaScript 風の文法でコードを書きます。拡張子は
.gs - B:実行ログエリア
Logger.log()の結果や、実行時のメッセージが表示されます - C:実行・デバッグボタン ▷ボタンでコードを実行できます。隣の関数名選択で、どの関数を実行するか決められます
初回実行時は権限の承認が必要です。「このアプリは Google で確認されていません」と表示されたら、「詳細」→「(プロジェクト名)に移動」→「許可」の順にクリックしてください。これは自分が自分のアカウントに対してスクリプトを動かす許可を出している、という意味です。
4初めての「Hello World」
プログラミング学習の伝統「Hello World」を、GASでもやってみましょう。スクリプトエディタを開くと、最初から以下のような関数のひな形が用意されています。
function myFunction() {
}
この myFunction の中に、次の1行を書き加えてください。
function myFunction() {
// 実行ログに文字列を出力する
Logger.log("Hello, GAS!");
}
実行手順
- コードを書き終えたら、上部の 💾 保存 アイコンをクリック(または
Ctrl + S/⌘ + S) - 関数名の選択ボックスが
myFunctionになっていることを確認 - ▷ 実行 ボタンをクリック
- 初回は「承認が必要です」のダイアログが出るので、自分のGoogleアカウントで許可
- 画面下部の「実行ログ」に
Hello, GAS!と表示されればOK!
これだけで、あなたはもう「コードを書いて動かせる人」になりました。あとはこの土台に、できることを一つずつ積み上げていくだけです。
5スプレッドシートのセルに書き込む
次は、開いているスプレッドシートの A1セル に「こんにちは」と書き込んでみましょう。GASの真骨頂です。
登場する命令の構造
つまり、「Googleの全スプレッドシート」 → 「今開いているファイル」 → 「今開いているシート」 → 「A1セル」と、入れ子の階層を順に降りていくイメージです。最後に setValue("こんにちは") で値を書き込みます。
function writeHello() {
// 1. 今開いているスプレッドシートの、現在のシートを取得
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 2. A1セルを指定して、値を書き込む
sheet.getRange("A1").setValue("こんにちは");
}
実行と確認
- 関数名選択を
writeHelloに切り替えて ▷ 実行 - スプレッドシートのタブに戻って A1セルを見る
- 「こんにちは」と表示されていれば成功!
応用:複数のセルにまとめて書き込む
function writeMulti() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange("A1").setValue("商品名");
sheet.getRange("A2").setValue("りんご");
sheet.getRange("A3").setValue("みかん");
}
getRange の引数は、"A1" のような文字列でも、getRange(行, 列) のように行番号・列番号でも指定できます。たとえば getRange(1, 1) は A1セル、getRange(2, 3) は C2セルを指します。
6変数と四則演算の基礎
「セルに固定の値を書く」のは、ただのコピペとあまり変わりません。プログラミングの真の威力は 計算結果を書き込めること にあります。
変数 ── 値に名前をつけて取っておく
変数は、値を入れておく「箱」のようなものです。GASでは const(定数)または let(再代入可)を使って宣言します。
function variableDemo() {
const name = "佐藤"; // 文字列を入れる
const age = 35; // 数値を入れる
const isStaff = true; // 真偽値(true / false)
Logger.log(name); // → 佐藤
Logger.log(age); // → 35
Logger.log(isStaff); // → true
}
四則演算 ── プログラムで計算する
これらを組み合わせて、たとえば「税込価格を計算してセルに書き込む」プログラムを書いてみましょう。
function calcTax() {
// 商品の単価と数量
const price = 1200;
const quantity = 3;
const taxRate = 0.1; // 消費税 10%
// 小計と税込合計を計算
const subtotal = price * quantity;
const total = subtotal * (1 + taxRate);
// シートに結果を書き込む
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange("A1").setValue("小計");
sheet.getRange("B1").setValue(subtotal);
sheet.getRange("A2").setValue("税込合計");
sheet.getRange("B2").setValue(total);
Logger.log("小計: " + subtotal);
Logger.log("税込: " + total);
}
実行すると、A1〜B2 に「小計」「税込合計」と計算結果が書き込まれます。これがプログラムの威力です。単価や数量を変えるだけで、何百件・何千件の計算も一瞬で終わります。
文字列と数値の足し算に注意。"小計: " + subtotal のように、文字列と数値を + でつなぐと、自動的に文字列として連結されます。これはGAS(JavaScript)の便利な機能です。
7AIにコードを書かせる
ここまで、自分の手でコードを書いてきました。しかし2026年の現在、「自分で書く」と「AIに書いてもらう」は半々で運用するのが現実的なスタイルです。本研修でも、第2回からこのスタイルを徹底していきます。
AI × GAS の学習サイクル
良いプロンプトの3要素
| 要素 | 内容 | 例 |
|---|---|---|
| ① ロール | AIに役割を与える | 「あなたはGASの専門家です」 |
| ② 目的 | 何をしたいかを書く | 「スプレッドシートのA列の合計をB1に書き込みたい」 |
| ③ 制約 | 条件・前提を明示する | 「初心者向けに、コメントを多めに書いてください」 |
そのまま使えるプロンプト例
下のプロンプトをそのままChatGPTに貼り付けて、出力されたコードをスクリプトエディタに貼り付けて実行してみてください。
動作確認のチェックポイント:① 関数名が createPriceTable になっているか/② 実行時にエラーが出ないか/③ A1〜D4 に期待通りのデータが入っているか/④ D列の値がきちんと「単価 × 数量 × 1.1」になっているか。
うまく動かなかった時のプロンプト
AIが出したコードがエラーを返した時は、エラーメッセージを そのままコピーして AIに伝えるのが鉄則です。
AIの出力をそのまま信じすぎないこと。AIは時々、存在しない関数名や、古いAPIの呼び出し方を提示することがあります(ハルシネーション)。必ず 実行して動作を確認 し、おかしければ「動きませんでした」と伝えて修正してもらいましょう。
第1回の宿題
教材のコードを実際に動かしてみる
本ページの ①Hello World/②A1セル書き込み/③複数セル書き込み/⑤税込計算 の4つのコードを、自分のスプレッドシートに貼り付けて実行してください。実行ログとスプレッドシートの両方で、結果が想定通りになっているか確認しましょう。
ChatGPTにプロンプトを投げてGASコードを生成させる
本ページの 「そのまま使えるプロンプト例(createPriceTable)」 を ChatGPT に貼り付けて、出力されたコードをスクリプトエディタに貼り付け、実行してみてください。期待通りの表ができたか、自分の目で確認します。
自分でプロンプトをアレンジして、別の表を作らせる
上記のプロンプトを参考に、自分の業務に近い表(例:来客数 × 客単価 × 営業日数で売上を計算する、社員リストに勤続年数を計算するなど)を ChatGPT に生成させ、GASで動くところまで持っていってください。うまくいかなかった場合は、エラーメッセージを ChatGPT に伝えて修正してもらう 体験までやってみましょう。次回の冒頭で、3名ほどに「どんな表を作ったか」を共有してもらいます。
提出方法:宿題③で作成したスプレッドシートのURL、ChatGPTに送ったプロンプト、最終的に動いたGASコードの3点を、研修事務局へメールでご提出ください。提出期限:次回研修の前日17:00まで。