kimura / G-LABO · 2026年5月15日(金)21:00〜22:00
用意するのは、Googleアカウントと空のスプレッドシート1つ。インストール不要。
ここまでを今日60分で全員作ります。先にゴールを見せておくので、迷子になりません。動かなかった人もQ&A・救済タイムで必ず救済します。
スプレッドシート・JavaScript・Google Apps Script の関係を整理します。
Googleのクラウド上で動く、JavaScriptベースの
「開発プラットフォーム」。
JavaScript の文法でコードを書くと、スプシ・Gmail・カレンダー等を直接操作できる。
自分のパソコンには何もインストールしないし、サーバーも要らない。
プログラミング言語 = 「コンピュータへの命令の書き方」。 GASは JavaScript を使って、その命令を書きます。
「動かす体験」だけ持って帰ってもらえれば、今日のゴールはクリア。
| 普通のやり方 | GAS |
|---|---|
| 手動でコピペ | → 自動で記録 |
| メール手送り | → 自動で送信 |
| 毎日の集計を手作業 | → ボタン1つで完了 |
「Googleをもっと賢く使う」ための裏ワザ。
例:スプシ操作の自動化/フォーム送信時の処理/ドキュメントの定型生成
例:定期バッチ/Webアプリ/Slack連携
今日は コンテナバインド型 / スプシを操作するのが主役だから、スプシから直接開きます。
拡張機能 をクリックApps Script をクリック→ 新しいタブにエディタが開く。
画面の中央にコードを書いて、上の ▶ 実行 で動かす。基本はこれだけ。
実際のコードは次のスライドから登場します。
Logger.log() の出力もここ
function myFunction() { Logger.log("hello!"); }
▶ 実行 ボタンを押すhello! と表示されれば成功動いた。 ここがスタート地点。
GASを初めて実行すると、Googleが 「このスクリプトに権限を渡していい?」 と聞いてきます。
自分で書いたコードなのでOKを出せばOK。慣れない画面ですが手順通り進めれば大丈夫です。
権限を確認 をクリック詳細 → (プロジェクト名)に移動(安全ではないページ)許可
この警告は「Googleが事前審査していない、自作スクリプト」だから出るもの。
自分が書いたものを自分のアカウントに許可しているだけなので問題なし。
関数 = 「やりたいことを、ひとまとまりにして名前をつけたもの」。
レシピと同じ感覚。「カレーを作る」という名前のついた、手順のかたまり。
一度書いておけば、何度でも呼び出せる/▶ボタンで動かせる/トリガーで自動実行できる。
function 関数名() { // ここに処理を書く }
SpreadsheetApp で、スプシにデータを書き込みます。
Googleが無料で配ってる、ブラウザで動くExcelみたいなもの。
今日は、このスプレッドシートを「GASで自動で動かす」のがゴール。
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"]) はシートの一番下の行に追加する。
実行 → スプシに行が追加される。
sheet.appendRow(["自分の名前", "好きな食べ物", "今の気分"]);
配列 ["A", "B", "C"] の中身を、自由に書き換えるだけ。
2分タイム / それぞれ自分のデータを入れて実行してみてください。
const sheet = SpreadsheetApp.getActiveSheet(); const value = sheet.getRange("A1").getValue(); Logger.log(value);
今日は「書く」がメイン。読むのは余裕があれば応用で。
トリガー設定で、自分が触らなくても動く仕組みを作ります。
トリガー = 「このタイミングで自動で動かす」設定。
コードを書いたら、あとは放っておける。
注意:設定した瞬間に動くわけじゃないです。Google側の都合で数分かかることもあるので、すぐ反映されなくても焦らないでください。
⏰(トリガー)アイコン+ トリガーを追加時間主導型分ベースのタイマー → 1分おき(動作確認用)保存 → 認証ダイアログが出たら同じ要領で許可まず 「1分おき」で動くことを確認してから、最後に 「時間ベースのタイマー → 毎時」に変更するのが安心。
保存ボタンを押せた瞬間に、あなたはGASに「予約」を入れた。
このあと1〜数分以内に、設定した間隔で
スプシに自動でデータが追加されていく(はず)。
自分では何もしていないのに動いている。
注意:Google側の都合で数分遅れることがあります。焦らずQ&Aタイムまで待ってください。動かなかった人はZoomチャットのスライドURLから完成コードをコピーして貼り直してください。
今日触るのは「スプシに書き込み + トリガー」だけ。
でもGASは、Googleの他のサービスや外部APIとも全部つながります。
全部、今日と同じ function 〜 () { ... } の形で書ける。
日時ログ記録ツールを、ここから10分で完成させます。
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'), '自動記録' ]); }
このまま貼れば動きます。"なぜ動くか"より"動かす"を優先。
▶ 実行 → スプシに記録されることを確認(初回は認証)
'自動記録' の部分を、自分のメモに書き換えてみよう。
★ 動かなかった人へ:Zoomチャットのスライドから完成コードをコピーして貼り直してみてください。それでも動かなければQ&Aで個別救済します。完成体験は必ず持って帰ってもらいます。
このツールに「メール通知」も足せます。
→ kimuraの画面で1分だけお見せします(皆さんは実行しません)。
今日は理解しなくてOK。"こういうことが今日の延長でできるんだ" だけ持ち帰ってください。
※ Gmail通知は追加承認画面が出るので、皆さんが本番中に踏むとQ&Aがそっちに食われちゃうため見るだけで。
こういう実験を、毎週シェアしています。
note.com/cozy_auklet6005/membership