この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:6
ページ更新者:T
更新日時:2026-06-11 07:29:05

タイトル: 導入手順
SEOタイトル: Google Apps Script (GAS) 導入手順完全ガイド

この記事の要点
  • GAS (Google Apps Script) は Google アカウントさえあれば無料・サーバ不要で動く JavaScript ベースのスクリプト環境
  • 導入は script.google.com にアクセスして「新しいプロジェクト」だけ。インストール不要
  • 現行の V8 ランタイムでは ES2015+ (let/const/アロー関数/分割代入) が利用可能
  • 初回実行時に OAuth 同意画面が出る → 「詳細」→「安全ではないページに移動」で承認
  • Spreadsheet / Gmail / Calendar / Drive と簡単に連携でき、トリガーで定期実行も可能

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 段階認証を有効化しておくことを強く推奨します。

GAS 導入手順 - Google アカウントログイン

STEP2: script.google.com にアクセス

ブラウザで https://script.google.com/ を開きます。初回はログイン画面が出るので、利用したい Google アカウントでログインしてください。

ログイン後、左上の 「+ 新しいプロジェクト」 をクリックすると、空のプロジェクトが作成されます。

GAS 導入手順 - script.google.com のトップ画面

STEP3: コードエディタの構成

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

GAS 導入手順 - コードエディタの構成

エリア役割
左サイドバーファイル一覧 / プロジェクト設定 / トリガー / 実行ログ
中央エディタ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 を選択 → 「実行」をクリック。

GAS 導入手順 - コード実行

STEP5: 初回の OAuth 承認フロー

初回実行時、Google から「承認が必要です」というダイアログが表示されます。これは GAS がユーザーのデータ(Spreadsheet / Gmail 等)にアクセスする際に必要な仕組みです。

  1. 「権限を確認」ボタンをクリック
  2. 使用する Google アカウントを選択
  3. 「このアプリは Google で確認されていません」と警告が出る場合は 「詳細」 をクリック
  4. 「<プロジェクト名> (安全ではないページ) に移動」をクリック
  5. 必要な権限スコープを確認して 「許可」

GAS 導入手順 - OAuth 承認画面

承認後、関数が実行され、画面下部の「実行ログ」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: トリガー(定期実行)の設定

左サイドバーの時計アイコン(トリガー)から、特定の関数を毎日 / 毎時間 / フォーム送信時 / シート編集時などに自動実行できます。

  1. 左サイドバー → トリガー → 「+ トリガーを追加」
  2. 実行する関数: myFunction
  3. イベントのソース: 時間主導型 / Calendar / Spreadsheet など
  4. 時間ベースのトリガータイプ: 分タイマー / 時タイマー / 日タイマー
  5. 保存

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);
}

デプロイ手順:

  1. 右上の 「デプロイ」「新しいデプロイ」
  2. 種類: ウェブアプリ
  3. 次のユーザーとして実行: 自分 / アクセスしたユーザー
  4. アクセスできるユーザー: 自分のみ / Google アカウントを持つ全員 / 全員(匿名)
  5. 「デプロイ」 → ウェブアプリ URL が発行される

主要メソッドの早見表

サービスサンプル
SpreadsheetSpreadsheetApp.openById('シートID').getSheetByName('Sheet1')
GmailGmailApp.sendEmail('to@example.com', '件名', '本文')
CalendarCalendarApp.getDefaultCalendar().createEvent('予定', start, end)
DriveDriveApp.getFileById('ID').getName()
UrlFetchUrlFetchApp.fetch('https://example.com/api')
PropertiesPropertiesService.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: スクリプトを編集してスコープが追加されたタイミングで再承認が必要になります。最初に全機能を一度実行して承認しておくとスムーズです。