Advanced 1: Google Apps Script入門 🚀
🎯 今日の目標
Google Apps Script(GAS)をGitHubで管理できるようになり、バージョン管理の恩恵を受けられるようになります!
📚 Google Apps Scriptとは?
Google Apps Script(GAS)は、Googleのサービスを自動化できるプログラミング環境です。
GASでできること
- 📊 スプレッドシートの自動化 - 成績集計、データ処理
- 📧 Gmail連携 - 自動メール送信、フィルタリング
- 📅 カレンダー連携 - イベント自動作成、リマインダー
- 📝 フォーム連携 - 回答の自動処理、通知
- 🌐 Webアプリ作成 - 簡単なWebサービス
なぜGitHubで管理するの?
- ✅ バージョン管理 - 変更履歴を追跡
- ✅ バックアップ - コードの消失を防ぐ
- ✅ 共同作業 - チームでの開発が容易
- ✅ コードレビュー - 品質向上
🛠️ 事前準備
1. Googleアカウント
- Gmailアドレスがあれば大丈夫!
2. Node.jsのインストール
# Windowsの場合
# https://nodejs.org/ からダウンロード
# Macの場合(Homebrewを使用)
brew install node
# インストール確認
node --version
npm --version
3. claspのインストール
# claspをグローバルインストール
npm install -g @google/clasp
# インストール確認
clasp --version
📝 実践:初めてのGASプロジェクト
Step 1: Google Apps Scriptプロジェクト作成
- Google Apps Script にアクセス
- 「新しいプロジェクト」をクリック
- プロジェクト名を「My First GAS Project」に変更
- 以下のコードを入力:
// コード.gs
function myFunction() {
console.log('Hello from Google Apps Script!');
// スプレッドシートを作成
const spreadsheet = SpreadsheetApp.create('GASで作ったスプレッドシート');
const sheet = spreadsheet.getActiveSheet();
// データを書き込み
sheet.getRange('A1').setValue('こんにちは!');
sheet.getRange('A2').setValue('GASから書き込みました');
sheet.getRange('A3').setValue(new Date());
// URLをログに出力
console.log('スプレッドシートURL: ' + spreadsheet.getUrl());
}
// 毎日実行する関数の例
function dailyTask() {
const today = new Date();
const message = `今日は${today.getMonth() + 1}月${today.getDate()}日です`;
// 自分にメールを送信
GmailApp.sendEmail(
Session.getActiveUser().getEmail(),
'今日の日付',
message
);
}
- 「保存」(Ctrl+S または Cmd+S)
- 「実行」ボタンをクリック
- 権限を承認(初回のみ)
Step 2: claspでローカル環境と連携
2-1. Google Apps Script APIを有効化
- Google Apps Script API設定
- 「Google Apps Script API」をONに切り替え
2-2. claspでログイン
# Googleアカウントでログイン
clasp login
# ブラウザが開いて認証画面が表示される
# 「許可」をクリック
2-3. プロジェクトをクローン
-
GASエディタでプロジェクトIDを確認
- 「プロジェクトの設定」→「スクリプト ID」をコピー
-
ローカルにクローン
# プロジェクト用フォルダを作成
mkdir my-gas-project
cd my-gas-project
# GASプロジェクトをクローン
clasp clone [スクリプトID]
Step 3: GitHubリポジトリの作成
-
GitHubで新しいリポジトリ作成
- リポジトリ名:
my-gas-project
- Public/Privateどちらでも可
- READMEは追加しない
- リポジトリ名:
-
ローカルでGit初期化
# Git初期化
git init
# .gitignoreを作成
echo "node_modules/" > .gitignore
echo ".clasp.json" >> .gitignore
# ファイルを追加
git add .
git commit -m "初めてのGASプロジェクト"
# GitHubリポジトリと連携
git remote add origin https://github.com/[あなたのユーザー名]/my-gas-project.git
git branch -M main
git push -u origin main
Step 4: ローカルで編集してデプロイ
- VSCodeでプロジェクトを開く
code .
- 新しい関数を追加(
コード.js
を編集)
// スプレッドシートに成績を記録する関数
function recordGrades() {
const spreadsheet = SpreadsheetApp.openById('YOUR_SPREADSHEET_ID');
const sheet = spreadsheet.getSheetByName('成績');
// ヘッダーを設定
const headers = ['名前', '国語', '数学', '英語', '合計', '平均'];
sheet.getRange(1, 1, 1, headers.length).setValues([headers]);
// サンプルデータ
const students = [
['田中太郎', 85, 90, 78],
['鈴木花子', 92, 88, 95],
['佐藤次郎', 78, 85, 82]
];
// データを書き込み
students.forEach((student, index) => {
const row = index + 2;
const total = student[1] + student[2] + student[3];
const average = total / 3;
sheet.getRange(row, 1, 1, 6).setValues([[
student[0], student[1], student[2], student[3],
total, Math.round(average * 10) / 10
]]);
});
console.log('成績を記録しました');
}
- GASにアップロード
# 変更をGASにプッシュ
clasp push
# ブラウザでGASエディタを開く
clasp open