ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子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
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- 【django】ログイン 認証機能 2026-09-08 03:22:09
- MySQL ERROR 1063 Incorrect column specifier for column|原因と直し方 2026-09-08 03:11:09
- 【PHPエラー】Object of class stdClass could not be converted to string 2026-09-07 07:46:04
- Julia Genie ローカル開発サーバ起動完全ガイド 2026-09-07 07:46:04
- Wi-Fi とは|規格と世代(Wi-Fi 4〜7)・周波数帯・CSMA/CA・WPA3 NEW 2026-09-07 07:45:13
- set コマンドでシェルオプションと位置パラメータを操作 | bash 2026-09-07 07:45:13
- JPEG(.jpg/.jpeg)画像形式の完全ガイド — 仕様・マジックナンバー・他形式との比較・EXIF 2026-09-07 07:45:13
- UE5 Get Overlapping Actorsで特定クラスだけ処理|Class Filter・Cast To 2026-09-07 07:45:13
- Linuxで特定拡張子のファイルを再帰削除|find -deleteの安全手順 2026-09-07 07:45:13
- Django CBVでテンプレートに値を渡す|get_context_data・extra_context 2026-09-07 07:45:13
- Linuxで複数ファイルの文字列を一括置換|find・sed・xargsの安全手順 2026-09-07 07:45:13
- Laravelルートグループ|prefix・middleware・nameで一括管理 2026-09-07 07:45:13
- Linux whichコマンドの使い方|絶対パス取得とtype・command -vの違い 2026-09-07 07:45:13
- Linux catコマンドの使い方|行番号表示・複数ファイル連結 2026-09-07 07:45:13
- unable to execute 'gcc': No such file or directory 2026-09-07 07:45:13
コメントを削除してもよろしいでしょうか?