01 / 20
移動 / F 全画面
G-LABO
GAS 基礎入門ハンズオン

はじめてのGAS。

スプレッドシートを自動で動かそう。
kimura kimura  /  G-LABO  ·  2026年5月15日(金)21:00〜22:00
  1. 01そもそも、GAS って何?
  2. 02スプシを、動かす。
  3. 03勝手に、動かす。
  4. 04作って、動かす。
G-LABO COMMUNITY
今日のゴール

60分後、手元に「動くツール」が1本残る

用意するのは、Googleアカウントと空のスプレッドシート1つ。インストール不要。

完成形デモ

日時ログ記録ツール

▶ ボタンを押す
スプシに今日の日付・時刻が自動で記録される
⏰ トリガー設定
1分ごとに自動で記録される(ログが溜まっていく)

ここまでを今日60分で全員作ります。先にゴールを見せておくので、迷子になりません。動かなかった人もQ&A・救済タイムで必ず救済します。

PART 01

そもそも、
GAS って何?

スプレッドシート・JavaScript・Google Apps Script の関係を整理します。

SECTION 01  ·  14 MIN
Part 1 / GASとは

Google Apps Script(GAS)

Googleのクラウド上で動く、JavaScriptベースの
「開発プラットフォーム」。

JavaScript の文法でコードを書くと、スプシ・Gmail・カレンダー等を直接操作できる。
自分のパソコンには何もインストールしないし、サーバーも要らない。

インストール
不要
利用料金
無料
連携先
スプシ・Gmail・カレンダー・ドライブ・フォーム ほか
Part 1 / GASとは

JavaScriptって聞いて構えないでください

プログラミング言語 = 「コンピュータへの命令の書き方」。 GASは JavaScript を使って、その命令を書きます。

今日やること
  • 用意したコードを貼り付ける
  • ▶ ボタンを押す
  • 動いたら「なるほど」って言う
今日やらないこと
  • ゼロからコードを書く
  • JavaScriptの文法を覚える
  • エラーと格闘する

「動かす体験」だけ持って帰ってもらえれば、今日のゴールはクリア。

Part 1 / GASとは

なぜGASが強いか

普通のやり方GAS
手動でコピペ→ 自動で記録
メール手送り→ 自動で送信
毎日の集計を手作業→ ボタン1つで完了

「Googleをもっと賢く使う」ための裏ワザ。

Part 1 / GASとは

GASプロジェクトには2種類ある

コンテナバインド型

Googleアプリに紐付くGAS

  • スプシ・ドキュメント・スライド・フォーム等から開く
  • その親アプリと一緒に動く(スプシ専用ではない)
  • 親アプリを完全に失うと扱えなくなる

例:スプシ操作の自動化/フォーム送信時の処理/ドキュメントの定型生成

スタンドアロン型

単独で存在するGAS

  • script.google.com から新規作成
  • どのファイルにも紐付かず独立
  • 複数のスプシ・APIをまたいで操作

例:定期バッチ/Webアプリ/Slack連携

今日は コンテナバインド型 / スプシを操作するのが主役だから、スプシから直接開きます。

Part 1 / GASとは

スクリプトエディタを開く

  1. Googleスプレッドシートを開く
  2. 上メニュー 拡張機能 をクリック
  3. Apps Script をクリック

→ 新しいタブにエディタが開く。

SCREENSHOT
拡張機能 → Apps Script
Part 1 / GASとは

エディタの全体像

無題のプロジェクト
(ここにコードを書く)
▶ 実行 保存

画面の中央にコードを書いて、上の ▶ 実行 で動かす。基本はこれだけ。
実際のコードは次のスライドから登場します。

Part 1 / GASとは

エディタの見方

Apps Scriptエディタの画面
  • ① 左サイドメニュー
    エディタ/実行数/トリガー/ライブラリ等を切り替え
  • ② プロジェクト名
    最初は「無題のプロジェクト」。クリックして必ずリネーム
  • ③ 関数選択 + 実行/デバッグ
    複数関数があるとき、どれを動かすか選ぶ
  • ④ コードエディタ
    ここにコードを書く(中央のメイン領域)
  • ⑤ 実行ログ
    ▶実行すると画面下に自動で表示/Logger.log() の出力もここ
★ 成功体験 ①

最初のコード

function myFunction() {
  Logger.log("hello!");
}
  1. Ctrl + S(または 💾 アイコン)で保存
  2. 上の ▶ 実行 ボタンを押す
  3. 画面下に「実行ログ」が開き hello! と表示されれば成功

動いた。 ここがスタート地点。

⚠ 初回だけ出る

認証ダイアログが出たら

GASを初めて実行すると、Googleが 「このスクリプトに権限を渡していい?」 と聞いてきます。
自分で書いたコードなのでOKを出せばOK。慣れない画面ですが手順通り進めれば大丈夫です。

  1. 権限を確認 をクリック
  2. 自分のGoogleアカウントを選ぶ
  3. 「このアプリは Google で確認されていません」と出たら 詳細(プロジェクト名)に移動(安全ではないページ)
  4. 権限一覧を確認して 許可

この警告は「Googleが事前審査していない、自作スクリプト」だから出るもの。
自分が書いたものを自分のアカウントに許可しているだけなので問題なし。

Part 1 / GASとは

関数(function)って何のため?

関数 = 「やりたいことを、ひとまとまりにして名前をつけたもの」

レシピと同じ感覚。「カレーを作る」という名前のついた、手順のかたまり。
一度書いておけば、何度でも呼び出せる/▶ボタンで動かせる/トリガーで自動実行できる。

function 関数名() {
  // ここに処理を書く
}
function
「処理のまとまり」の宣言
関数名
自由につけてOK(英数字)
{ } の中
実際にやること
PART 02

スプシを、
動かす。

SpreadsheetApp で、スプシにデータを書き込みます。

SECTION 02  ·  11 MIN
Part 2 / 前提知識

そもそも「スプレッドシート」とは

Googleが無料で配ってる、ブラウザで動くExcelみたいなもの。

場所
ブラウザだけでOK
インストール不要
料金
Googleアカウントがあれば
無料で使える
特徴
複数人で同時編集/
自動でクラウド保存

今日は、このスプレッドシートを「GASで自動で動かす」のがゴール。

Part 2 / スプレッドシートを動かす

スプシにアクセスする(今日の"おまじない")

const sheet = SpreadsheetApp.getActiveSheet();

今日はこの1行を 「おまじない」 として覚えればOK。
ざっくり訳すと「今開いてるシートを sheet という名前で呼ばせて」。

意味を完全に分かろうとしなくて大丈夫。このまま貼って動けば勝ち。
(興味ある人向けの図解:SpreadsheetApp = スプシ全体の玄関 → Spreadsheet = スプシ1つ → Sheet = シート1枚、と階層で入っていくイメージ)

★ 成功体験 ②

データを書き込む

function writeData() {
  const sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(["kimura", "テスト", "完了"]);
}

appendRow(["A", "B", "C"]) はシートの一番下の行に追加する。
実行 → スプシに行が追加される。

Part 2 / スプレッドシートを動かす

自由に書き換えてみる

sheet.appendRow(["自分の名前", "好きな食べ物", "今の気分"]);

配列 ["A", "B", "C"] の中身を、自由に書き換えるだけ。

2分タイム / それぞれ自分のデータを入れて実行してみてください。

参考

データを読む

const sheet = SpreadsheetApp.getActiveSheet();
const value = sheet.getRange("A1").getValue();
Logger.log(value);
getRange("A1")
A1セルを指定
getValue()
そのセルの値を読む

今日は「書く」がメイン。読むのは余裕があれば応用で。

PART 03

勝手に、
動かす。

トリガー設定で、自分が触らなくても動く仕組みを作ります。

SECTION 03  ·  10 MIN
Part 3 / 自動実行

トリガーとは

トリガー = 「このタイミングで自動で動かす」設定。

時間ベース
毎日 朝9時に実行
スプシ
スプシを開いた時に実行
フォーム
フォーム送信時に実行

コードを書いたら、あとは放っておける。

注意:設定した瞬間に動くわけじゃないです。Google側の都合で数分かかることもあるので、すぐ反映されなくても焦らないでください。

Part 3 / 自動実行

トリガーの設定手順

  1. 左メニューの (トリガー)アイコン
  2. 右下の + トリガーを追加
  3. 実行する関数を選ぶ
  4. イベントのソース:時間主導型
  5. タイプ:分ベースのタイマー1分おき(動作確認用)
  6. 保存 → 認証ダイアログが出たら同じ要領で許可

まず 「1分おき」で動くことを確認してから、最後に 「時間ベースのタイマー → 毎時」に変更するのが安心。

★ 成功体験 ③

予約できた

保存ボタンを押せた瞬間に、あなたはGASに「予約」を入れた。

このあと1〜数分以内に、設定した間隔で
スプシに自動でデータが追加されていく(はず)。
自分では何もしていないのに動いている。

注意:Google側の都合で数分遅れることがあります。焦らずQ&Aタイムまで待ってください。動かなかった人はZoomチャットのスライドURLから完成コードをコピーして貼り直してください。

Part 3 / 自動実行

GASでこんなこともできる

今日触るのは「スプシに書き込み + トリガー」だけ。
でもGASは、Googleの他のサービスや外部APIとも全部つながります。

📧 Gmail
条件に合うメールを
自動振り分け/自動返信
📅 カレンダー
スプシの予定一覧から
カレンダーに一括登録
📝 フォーム
送信されたら自動で
Slackに通知&DM配信
🤖 AI連携
Gemini / ChatGPT APIで
文章を自動生成
🌐 Webアプリ
URLを発行して、誰でも
ブラウザで使えるツール化
💬 LINE / Slack
外部サービスと双方向で
メッセージのやり取り

全部、今日と同じ function 〜 () { ... } の形で書ける。

PART 04

作って、
動かす。

日時ログ記録ツールを、ここから10分で完成させます。

SECTION 04  ·  10 MIN
Part 4 / ハンズオン

今日作るもの:日時ログ記録ツール

機能
  • 実行ごとに日付・時刻をスプシに記録
  • トリガーで毎時自動実行 → 自動日誌
用途例
  • 作業ログ
  • 体調記録
  • 「日時付きで残したいもの」全部
Part 4 / ハンズオン

完成コード

function recordLog() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const now = new Date();

  sheet.appendRow([
    Utilities.formatDate(now, 'Asia/Tokyo', 'yyyy/MM/dd'),
    Utilities.formatDate(now, 'Asia/Tokyo', 'HH:mm:ss'),
    '自動記録'
  ]);
}
Utilities.formatDate()
「日付をきれいにする部品」
今日は中身を理解しなくてOK
'Asia/Tokyo'
日本時間で出すための指定

このまま貼れば動きます。"なぜ動くか"より"動かす"を優先。

Part 4 / ハンズオン

一緒に入力 → 実行 → トリガー

  1. コードを入力(またはZoomチャットのスライドURLからコピー)
  2. ▶ 実行 → スプシに記録されることを確認(初回は認証)
  3. トリガー設定(1分おき で動作確認)
  4. 1〜数分待って自動追加されたら完成。本番運用は後で毎時に変更してOK
カスタマイズ

'自動記録' の部分を、自分のメモに書き換えてみよう。

★ 動かなかった人へ:Zoomチャットのスライドから完成コードをコピーして貼り直してみてください。それでも動かなければQ&Aで個別救済します。完成体験は必ず持って帰ってもらいます。

未来チラ見せ

AIで拡張するとこうなる

このツールに「メール通知」も足せます。
→ kimuraの画面で1分だけお見せします(皆さんは実行しません)。

AIに頼むこと
「このコードに、記録するたびにGmail通知を追加して」と頼むだけ
結果
3行追加されて、Gmailに通知が届くようになる

今日は理解しなくてOK。"こういうことが今日の延長でできるんだ" だけ持ち帰ってください。
※ Gmail通知は追加承認画面が出るので、皆さんが本番中に踏むとQ&Aがそっちに食われちゃうため見るだけで。

まとめ

今日できたこと、次の一手

今日できたこと

  • GASを初めて動かした
  • スプシにデータを自動書き込みした
  • トリガーで「勝手に動く」仕組みを作った

次のステップ

  • Gmailの自動送信
  • Googleフォーム連携
  • AI(Gemini API)との組み合わせ
  • Webアプリ化
kimura
kimuraのGAS部

こういう実験を、毎週シェアしています。
note.com/cozy_auklet6005/membership