MENU

GAS入門|はじめてのGoogle Apps Script【初心者向け完全ガイド】

GAS入門|はじめてのGoogle Apps Script【初心者向け完全ガイド】

GAS(Google Apps Script)は、Googleが提供する無料のプログラミング環境です。プログラミング未経験でも、この記事を読めば今日からGASを始められます。


目次

GAS(Google Apps Script)とは

概要

GAS(Google Apps Script)は、Googleが提供するクラウドベースのスクリプト言語・実行環境です。

JavaScriptをベースにしており、Googleのサービス(スプレッドシート、Gmail、カレンダーなど)を自動化・連携できます。

GASの特徴

特徴 説明
無料 Googleアカウントがあれば誰でも無料で使える
環境構築不要 ブラウザだけで開発できる(インストール不要)
クラウド実行 スクリプトはGoogleのサーバーで実行される
Google連携 スプレッドシート、Gmail、カレンダーなどと簡単に連携
JavaScript 世界で最も使われている言語がベース

GASとExcel VBAの違い

項目 GAS Excel VBA
動作環境 クラウド(ブラウザ) ローカル(PC)
対象 Googleサービス全般 Excel中心
言語 JavaScript VBA
料金 無料 Office購入が必要
共有 URLで簡単共有 ファイル共有が必要

GASでできること5選

1. スプレッドシートの自動化


・データの自動集計・整形
・条件に応じたセルの書式変更
・定期的なレポート自動生成
・フォーム回答の自動処理

2. メール業務の自動化


・定型メールの一括送信
・条件に応じた自動返信
・メールの自動振り分け・ラベル付け
・添付ファイルの自動保存

3. スケジュール・タスク管理


・Googleカレンダーへの予定自動登録
・リマインダーの自動送信
・会議室の空き状況チェック
・定期タスクの自動作成

4. 外部サービスとの連携


・Slack/LINE/Teamsへの通知
・ChatGPT APIとの連携
・外部APIからのデータ取得
・Webスクレイピング

5. Webアプリケーション作成


・簡単なWebフォームの作成
・ダッシュボードの構築
・社内ツールの開発
・APIエンドポイントの公開

開発環境の準備

必要なもの

  • Googleアカウント(無料)
  • ブラウザ(Chrome推奨)

これだけです。ソフトウェアのインストールは不要。

スクリプトエディタの開き方

GASを書くための「スクリプトエディタ」を開く方法は2つあります。

方法1: スプレッドシートから開く(推奨)

スプレッドシートと連携したスクリプトを作る場合はこちら。

手順:

  • Googleスプレッドシートを開く

– https://sheets.google.com にアクセス

– 新しいスプレッドシートを作成(または既存のものを開く)

  • メニューから Apps Script を選択

– 上部メニューの拡張機能をクリック

– 「Apps Script」をクリック

  • スクリプトエディタが開く

– 新しいタブでスクリプトエディタが表示される

– 初期状態では function myFunction() { } というコードが表示されている

方法2: 直接開く(スタンドアロン)

スプレッドシートに紐づけない独立したスクリプトを作る場合はこちら。

手順:

  • https://script.google.com にアクセス
  • 「新しいプロジェクト」をクリック
  • スクリプトエディタが開く

スクリプトエディタの画面構成


┌─────────────────────────────────────────────────┐
│ [プロジェクト名]        [実行▶] [デバッグ🐛]   │
├─────────────────────────────────────────────────┤
│ ファイル │                                      │
│ ─────── │  function myFunction() {             │
│ コード.gs │    // ここにコードを書く            │
│          │  }                                   │
│ + 新規   │                                      │
│          │                                      │
│ サービス │                                      │
│ ─────── │                                      │
│ + 追加   │                                      │
├─────────────────────────────────────────────────┤
│ 実行ログ:                                       │
│ > スクリプトを実行しました                      │
└─────────────────────────────────────────────────┘
要素 説明
プロジェクト名 クリックして変更可能
実行ボタン(▶) 選択した関数を実行
デバッグボタン(🐛) デバッグモードで実行
ファイル一覧 .gsファイルの管理
コードエディタ コードを書く場所
実行ログ 実行結果やエラーが表示


はじめてのスクリプト作成

Hello World

プログラミングの最初の一歩、「Hello World」を表示してみましょう。

コード:


function helloWorld() {
  // ログに「Hello World!」と表示
  console.log('Hello World!');

  // ダイアログで表示(スプレッドシートから開いた場合)
  Browser.msgBox('Hello World!');
}

実行方法:

  • 上記のコードをスクリプトエディタに貼り付け
  • 関数選択で helloWorld を選択
  • 「実行」ボタン(▶)をクリック
  • 初回は権限の承認が必要

– 権限を確認をクリック

– Googleアカウントを選択

– 「詳細」→「(プロジェクト名)に移動」

– 許可をクリック

  • 実行ログに「Hello World!」と表示される

スプレッドシートにデータを書き込む

次は、スプレッドシートのセルに値を書き込んでみましょう。

コード:


function writeToCell() {
  // アクティブなスプレッドシートを取得
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // A1セルに「こんにちは」と書き込む
  sheet.getRange('A1').setValue('こんにちは!');

  // B1セルに数値を書き込む
  sheet.getRange('B1').setValue(12345);

  // C1セルに今日の日付を書き込む
  sheet.getRange('C1').setValue(new Date());

  console.log('書き込み完了!');
}

実行結果:

A B C
こんにちは! 12345 2026/02/02

スプレッドシートからデータを読み込む

今度は、セルの値を読み取ってみましょう。

コード:


function readFromCell() {
  // アクティブなスプレッドシートを取得
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // A1セルの値を取得
  const value = sheet.getRange('A1').getValue();

  // ログに表示
  console.log('A1の値: ' + value);

  // 複数セルを一括取得(A1:C3の範囲)
  const values = sheet.getRange('A1:C3').getValues();
  console.log('A1:C3の値:');
  console.log(values);
}

基本構文チートシート

変数の宣言


// 再代入可能な変数
let name = '山田太郎';
name = '鈴木一郎';  // OK

// 再代入不可の定数
const TAX_RATE = 0.1;
// TAX_RATE = 0.08;  // エラー!

// 古い書き方(非推奨)
var oldStyle = '古い';

データ型


// 文字列(String)
const text = 'こんにちは';

// 数値(Number)
const number = 100;
const decimal = 3.14;

// 真偽値(Boolean)
const isActive = true;
const isComplete = false;

// 配列(Array)
const fruits = ['りんご', 'みかん', 'バナナ'];

// オブジェクト(Object)
const person = {
  name: '山田太郎',
  age: 30,
  email: 'yamada@example.com'
};

条件分岐(if文)


function checkScore(score) {
  if (score >= 80) {
    console.log('合格!優秀です');
  } else if (score >= 60) {
    console.log('合格です');
  } else {
    console.log('不合格...');
  }
}

checkScore(85);  // → 合格!優秀です
checkScore(65);  // → 合格です
checkScore(40);  // → 不合格...

ループ(繰り返し)


// for文(回数が決まっている場合)
for (let i = 0; i < 5; i++) {
  console.log(i + '回目');
}
// → 0回目, 1回目, 2回目, 3回目, 4回目

// 配列のループ
const fruits = ['りんご', 'みかん', 'バナナ'];
for (const fruit of fruits) {
  console.log(fruit);
}
// → りんご, みかん, バナナ

// while文(条件が満たされる間)
let count = 0;
while (count < 3) {
  console.log(count);
  count++;
}
// → 0, 1, 2

関数


// 基本的な関数
function greet(name) {
  return 'こんにちは、' + name + 'さん!';
}

const message = greet('山田');
console.log(message);  // → こんにちは、山田さん!

// アロー関数(短い書き方)
const add = (a, b) => a + b;
console.log(add(3, 5));  // → 8

// 複数行のアロー関数
const calculate = (price, quantity) => {
  const subtotal = price * quantity;
  const tax = subtotal * 0.1;
  return subtotal + tax;
};

スプレッドシートとの連携基礎

基本オブジェクト


// スプレッドシートを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();

// シートを取得
const sheet = ss.getActiveSheet();        // アクティブなシート
const sheet2 = ss.getSheetByName('シート2');  // 名前で指定

// セル範囲を取得
const cell = sheet.getRange('A1');        // 単一セル
const range = sheet.getRange('A1:C10');   // 範囲
const range2 = sheet.getRange(1, 1, 10, 3);  // 行, 列, 行数, 列数

よく使う操作


function spreadsheetBasics() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

  // 値の取得・設定
  const value = sheet.getRange('A1').getValue();      // 単一セル
  const values = sheet.getRange('A1:C3').getValues(); // 複数セル(2次元配列)

  sheet.getRange('A1').setValue('Hello');             // 単一セル
  sheet.getRange('A1:C1').setValues([['A', 'B', 'C']]); // 複数セル

  // 最終行・最終列を取得
  const lastRow = sheet.getLastRow();
  const lastCol = sheet.getLastColumn();

  // 行の追加
  sheet.appendRow(['新しい', 'データ', '追加']);

  // セルの書式設定
  sheet.getRange('A1').setFontWeight('bold');         // 太字
  sheet.getRange('A1').setBackground('#ffff00');      // 背景色
  sheet.getRange('A1').setFontColor('#ff0000');       // 文字色

  // 行・列の操作
  sheet.insertRowAfter(1);   // 1行目の後に行を挿入
  sheet.deleteRow(5);        // 5行目を削除
}

実践サンプル:データを一括処理


/**
 * A列の数値をすべて2倍にしてB列に出力
 */
function doubleValues() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const lastRow = sheet.getLastRow();

  // A列のデータを取得(2行目から最終行まで、1行目はヘッダー想定)
  const values = sheet.getRange(2, 1, lastRow - 1, 1).getValues();

  // 2倍にした結果を格納する配列
  const results = [];

  for (const row of values) {
    const originalValue = row[0];
    const doubledValue = originalValue * 2;
    results.push([doubledValue]);
  }

  // B列に結果を出力
  sheet.getRange(2, 2, results.length, 1).setValues(results);

  console.log('処理完了!');
}

実行とデバッグの方法

実行方法

  • スクリプトエディタから実行

– 関数を選択 → 実行ボタン(▶)

  • スプレッドシートのメニューから実行

– カスタムメニューを作成して追加可能

  • トリガーで自動実行

– 時間ベース(毎日、毎時など)

– イベントベース(フォーム送信時など)

デバッグ方法


function debugExample() {
  const data = ['りんご', 'みかん', 'バナナ'];

  // console.log でデータを確認
  console.log('データの内容:', data);
  console.log('データの長さ:', data.length);

  for (let i = 0; i < data.length; i++) {
    console.log(`${i}番目: ${data[i]}`);
  }
}

よくあるエラーと対処法

エラー 原因 対処法
TypeError: Cannot read property 存在しない値にアクセス null/undefinedチェックを追加
ReferenceError: xxx is not defined 変数が未定義 スペルミスを確認、宣言を確認
Authorization required 権限が未承認 再度実行して承認
Exceeded maximum execution time 実行時間超過(6分) 処理を分割

エラーハンドリング


function safeExecution() {
  try {
    // エラーが発生する可能性のある処理
    const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    const value = sheet.getRange('A1').getValue();
    console.log('成功:', value);
  } catch (error) {
    // エラー発生時の処理
    console.log('エラーが発生しました:', error.message);
  }
}

次のステップ(おすすめ学習順)

ステップ1: スプレッドシート操作をマスター


□ セルの読み書き
□ 範囲操作(getRange, getValues, setValues)
□ 行・列の追加・削除
□ 書式設定

ステップ2: 自動実行を覚える


□ 時間トリガー(毎日、毎時)
□ イベントトリガー(フォーム送信時、編集時)
□ カスタムメニューの作成

ステップ3: 外部サービス連携


□ Gmail連携(メール送信)
□ Googleカレンダー連携
□ Slack/LINE通知
□ 外部API呼び出し

ステップ4: 応用


□ ChatGPT API連携
□ Webアプリケーション作成
□ ライブラリの活用


まとめ

今回のポイント

項目 内容
GASとは Googleの無料プログラミング環境、JavaScriptベース
できること スプレッドシート自動化、メール、カレンダー、外部連携など
始め方 スプレッドシート → 拡張機能 → Apps Script
基本構文 変数、条件分岐、ループ、関数
スプレッドシート getRange, getValue, setValue が基本

初心者がつまずきやすいポイント

つまずきポイント 解決策
権限の承認が怖い 自分のスクリプトなので安全。手順通り承認してOK
エラーが出て止まる console.logでデータを確認、エラーメッセージをGoogle検索
何から作ればいいかわからない まずはHello World → セル読み書き → 小さな自動化

次に読むべき記事

GASの基礎がわかったら、次は実践的な自動化に挑戦してみましょう。

  • GASでスプレッドシートを自動化する方法
  • GASとChatGPTを連携させる方法
  • GASでGmailを自動送信する方法

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次