ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
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: スクリプトを編集してスコープが追加されたタイミングで再承認が必要になります。最初に全機能を一度実行して承認しておくとスムーズです。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- 導入手順
- GETリクエストする方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?