タイトル: 導入手順
SEOタイトル: Google Apps Script (GAS) 導入手順完全ガイド
| この記事の要点 |
|
GAS とは
Google Apps Script(略して GAS)は、Google が提供するクラウド型のスクリプト実行環境です。JavaScript ベースの構文で書け、Google アカウントさえあれば無料で利用できます。サーバを用意する必要も、ローカルに何かをインストールする必要もありません。
| 項目 | 内容 |
|---|---|
| 言語 | JavaScript(V8 ランタイム、ES2015+ 対応) |
| 実行環境 | Google のクラウドサーバ(ローカル不要) |
| 料金 | 無料(実行時間・API 呼び出し回数に上限あり) |
| 必要なもの | Google アカウント(個人 / Workspace どちらも可) |
| 主な用途 | Spreadsheet 自動化 / Gmail 自動送信 / Web API / Slack 連携 |
STEP1: Google アカウントを準備
個人の Gmail アカウントでも、Workspace(旧 G Suite)アカウントでも構いません。2 段階認証を有効化しておくことを強く推奨します。

STEP2: script.google.com にアクセス
ブラウザで https://script.google.com/ を開きます。初回はログイン画面が出るので、利用したい Google アカウントでログインしてください。
ログイン後、左上の 「+ 新しいプロジェクト」 をクリックすると、空のプロジェクトが作成されます。

STEP3: コードエディタの構成
プロジェクトを開くと、左サイドバーに コード.gs(または Code.gs)というファイルが作られています。中央のエディタが JavaScript を書く場所です。

| エリア | 役割 |
|---|---|
| 左サイドバー | ファイル一覧 / プロジェクト設定 / トリガー / 実行ログ |
| 中央エディタ | JavaScript コードを記述 |
| 上部ツールバー | 保存 / 実行 / デバッグ / 関数選択 |
| 下部 / 別タブ | 実行ログ表示 |
STEP4: Hello World を書いて実行
デフォルトの空関数を以下の内容に置き換えます:
function myFunction() {
console.log('Hello, GAS!');
Logger.log('旧式のログ出力');
// 現行の V8 ランタイムでは ES2015+ が使える
const today = new Date();
const greeting = `今日は ${today.toLocaleDateString('ja-JP')} です`;
console.log(greeting);
// アロー関数 / 分割代入も使える
const users = [{name: '太郎', age: 20}, {name: '花子', age: 25}];
users.forEach(({name, age}) => console.log(`${name} さん (${age} 歳)`));
}
保存(Ctrl + S または上部のフロッピーディスクアイコン)→ ツールバーから関数名 myFunction を選択 → 「実行」をクリック。

STEP5: 初回の OAuth 承認フロー
初回実行時、Google から「承認が必要です」というダイアログが表示されます。これは GAS がユーザーのデータ(Spreadsheet / Gmail 等)にアクセスする際に必要な仕組みです。
- 「権限を確認」ボタンをクリック
- 使用する Google アカウントを選択
- 「このアプリは Google で確認されていません」と警告が出る場合は 「詳細」 をクリック
- 「<プロジェクト名> (安全ではないページ) に移動」をクリック
- 必要な権限スコープを確認して 「許可」

承認後、関数が実行され、画面下部の「実行ログ」に Hello, GAS! 等が表示されれば成功です。
STEP6: Spreadsheet と連携してみる
GAS の真価は Google サービスとの連携にあります。スプレッドシートを操作する最小サンプル:
function writeToSheet() {
// アクティブなスプレッドシートを取得
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// A1 セルに値を書き込み
sheet.getRange('A1').setValue('GAS から書き込み');
// 2 行目に複数値
sheet.getRange('A2:C2').setValues([['名前', '年齢', '都市']]);
// 既存セルから読み取り
const value = sheet.getRange('A1').getValue();
console.log('A1 の値: ' + value);
}
// スプレッドシートをトリガーで Spreadsheet メニューから実行する場合
function onOpen() {
SpreadsheetApp.getUi()
.createMenu('カスタムメニュー')
.addItem('データ更新', 'writeToSheet')
.addToUi();
}
STEP7: トリガー(定期実行)の設定
左サイドバーの時計アイコン(トリガー)から、特定の関数を毎日 / 毎時間 / フォーム送信時 / シート編集時などに自動実行できます。
- 左サイドバー → トリガー → 「+ トリガーを追加」
- 実行する関数:
myFunction - イベントのソース: 時間主導型 / Calendar / Spreadsheet など
- 時間ベースのトリガータイプ: 分タイマー / 時タイマー / 日タイマー
- 保存
STEP8: Web アプリとしてデプロイ
GAS はHTTP エンドポイントとしても公開できます。Slack や外部システムからの Webhook 受け口に最適です。
// HTTP GET リクエストを処理
function doGet(e) {
const name = e.parameter.name || 'ゲスト';
return ContentService
.createTextOutput(JSON.stringify({message: `こんにちは、${name}さん`}))
.setMimeType(ContentService.MimeType.JSON);
}
// HTTP POST リクエストを処理
function doPost(e) {
const data = JSON.parse(e.postData.contents);
console.log(data);
return ContentService
.createTextOutput(JSON.stringify({status: 'ok'}))
.setMimeType(ContentService.MimeType.JSON);
}
デプロイ手順:
- 右上の 「デプロイ」 → 「新しいデプロイ」
- 種類: ウェブアプリ
- 次のユーザーとして実行: 自分 / アクセスしたユーザー
- アクセスできるユーザー: 自分のみ / Google アカウントを持つ全員 / 全員(匿名)
- 「デプロイ」 → ウェブアプリ URL が発行される
主要メソッドの早見表
| サービス | サンプル |
|---|---|
| Spreadsheet | SpreadsheetApp.openById('シートID').getSheetByName('Sheet1') |
| Gmail | GmailApp.sendEmail('to@example.com', '件名', '本文') |
| Calendar | CalendarApp.getDefaultCalendar().createEvent('予定', start, end) |
| Drive | DriveApp.getFileById('ID').getName() |
| UrlFetch | UrlFetchApp.fetch('https://example.com/api') |
| Properties | PropertiesService.getScriptProperties().setProperty('KEY', 'value') |
FAQ
Q: 旧 IDE と新 IDE の違いは?
A: 2020 年末に新しい IDE がリリースされました。現在は新 IDE のみ。V8 ランタイムもデフォルト有効です。
Q: ローカル開発したい
A: clasp(コマンドラインツール)を使うと VS Code 等で開発し、GAS にプッシュできます。npm install -g @google/clasp でインストール。
Q: 実行時間の制限は?
A: 1 回の実行で最大 6 分(個人)/ 30 分(Workspace 等)。長時間処理は分割して連続実行する設計が必要です。
Q: 「承認が必要です」が毎回出る
A: スクリプトを編集してスコープが追加されたタイミングで再承認が必要になります。最初に全機能を一度実行して承認しておくとスムーズです。