「Googleスプレッドシートで毎日同じ作業を繰り返している…」「Gmailの定型メール送信を自動化したい…」
そんな悩みを解決できるのが、Google Apps Script(GAS)です。
GASは、Googleが提供する無料のプログラミング環境で、スプレッドシート、Gmail、カレンダー、ドライブなど、様々なGoogleサービスを自動化できます。しかも、環境構築不要でブラウザだけですぐに始められます。
本記事では、プログラミング初心者の方でも理解できるよう、GASの基本構文を1から丁寧に解説します。変数の使い方から条件分岐、繰り返し処理まで、実際に動くサンプルコードを交えながらご紹介します。
業務効率化を実現したい方、プログラミングに興味がある方は、ぜひ最後まで読んでみてください。
Google Apps Script(GAS)とは

基本的な説明
Google Apps Script(通称:GAS、ガス)は、Googleが提供するクラウドベースのスクリプト言語です。
JavaScriptをベースにしており、Google Workspace(Gmail、スプレッドシート、ドキュメント、カレンダーなど)のサービスを操作・自動化できます。
GASの読み方
- 正式名称:Google Apps Script(グーグル アップス スクリプト)
- 略称:GAS(ガス、ジーエーエス)
GASの特徴
環境構築が不要
通常のプログラミング言語では、パソコンに開発環境をインストールする必要があります。しかし、GASはブラウザだけで開発できます。
完全無料で利用可能
個人でも企業でも、追加料金なしで利用できます。
Googleサービスとの連携が簡単
専用のAPIが用意されており、スプレッドシートやGmailなどのGoogleサービスを数行のコードで操作できます。
クラウドで実行
コードはGoogleのサーバー上で実行されるため、自分のパソコンの電源を切っていても動作します。
自動実行(トリガー)が設定可能
特定の時刻や曜日、イベント発生時に自動的にスクリプトを実行できます。
GASでできること
スプレッドシートの自動化
- データの自動集計やレポート作成
- セルの書式設定やデータ整理
- カスタム関数の作成
メール操作の自動化
- 定型メールの自動送信
- 条件に応じたメール振り分け
- 添付ファイルの自動保存
カレンダー操作
- イベントの一括登録
- リマインダーの自動送信
- 予定の自動調整
Googleドライブ操作
- フォルダやファイルの一括作成
- ファイル名の一括変更
- バックアップの自動化
外部サービスとの連携
- WebAPIを使った外部システムとの連携
- Slackやチャットワークへの通知
- Webスクレイピング
開発環境の準備
GASを始めるには、Googleアカウントさえあれば大丈夫です。
スプレッドシートから開く方法(推奨)
この方法が最も簡単で、初心者におすすめです。
手順1:スプレッドシートを開く
Googleスプレッドシートを新規作成します。
ブラウザのアドレスバーに sheets.new と入力すると、即座に新しいスプレッドシートが開きます。
手順2:スクリプトエディタを開く
メニューバーから「拡張機能」→「Apps Script」を選択します。
手順3:スクリプトエディタが表示される
新しいタブでスクリプトエディタが開きます。
最初は以下のような初期コードが表示されています。
function myFunction() {
}
このコードを削除または編集して、自分のスクリプトを書いていきます。
スタンドアロンスクリプトの作成方法
スプレッドシートに紐付けずに、独立したスクリプトを作成することもできます。
手順1:Googleドライブを開く
Googleドライブ(https://drive.google.com)にアクセスします。
手順2:新規作成
左上の「新規」ボタンをクリックします。
手順3:Google Apps Scriptを選択
「その他」→「Google Apps Script」を選択します。
スクリプトエディタが開きます。
スクリプトエディタの画面構成
コードエディタ
中央の大きなエリアがコードを書く場所です。
実行ボタン
上部にある「▶」ボタンで、書いたコードを実行できます。
関数選択
実行ボタンの隣のドロップダウンメニューで、実行する関数を選択できます。
ログ
「実行ログ」ボタンをクリックすると、実行結果やエラーメッセージが表示されます。
プロジェクト名
左上の「無題のプロジェクト」をクリックすると、プロジェクト名を変更できます。
基本構文1:変数と定数
変数は、データを一時的に保存する「箱」のようなものです。
変数の宣言方法
GASでは、3種類の方法で変数を宣言できます。
let name = "田中"; // 再代入可能な変数
const age = 30; // 再代入不可能な定数
var city = "東京"; // 古い書き方(非推奨)
let(レット)
最も一般的な変数宣言です。後から値を変更できます。
let score = 80;
score = 90; // 変更可能
const(コンスト)
値を変更しない定数を宣言します。
const TAX_RATE = 0.1; // 消費税率
// TAX_RATE = 0.08; // エラー!変更できません
var(バー)
古い書き方で、不具合が起きやすいため使用は推奨されません。基本的にletを使いましょう。
変数の命名規則
使える文字
- 英数字(a-z、A-Z、0-9)
- アンダースコア(_)
- ドルマーク($)
ルール
- 数字で始めることはできない
- 予約語(function、if、forなど)は使えない
- 大文字と小文字は区別される
良い例
let userName = "山田"; // キャメルケース(推奨)
let user_name = "佐藤"; // スネークケース
const MAX_COUNT = 100; // 定数は全て大文字
悪い例
let 1name = "田中"; // エラー:数字で始まっている
let user-name = "鈴木"; // エラー:ハイフンは使えない
let function = "test"; // エラー:予約語
基本構文2:データ型
JavaScriptには、様々なデータ型があります。
文字列(String)
文字列は、シングルクォート、ダブルクォート、バッククォートのいずれかで囲みます。
let name1 = 'tanaka'; // シングルクォート
let name2 = "yamada"; // ダブルクォート
let message = `こんにちは`; // バッククォート
文字列の結合
let firstName = "太郎";
let lastName = "山田";
let fullName = lastName + " " + firstName; // "山田 太郎"
テンプレートリテラル(バッククォート)
変数を文字列に埋め込む便利な方法です。
let name = "田中";
let age = 25;
let message = `私の名前は${name}で、${age}歳です。`;
// 結果: "私の名前は田中で、25歳です。"
数値(Number)
整数も小数も同じNumber型です。
let integer = 100; // 整数
let decimal = 3.14; // 小数
let negative = -50; // 負の数
算術演算
let sum = 10 + 5; // 15(加算)
let diff = 10 - 5; // 5(減算)
let product = 10 * 5; // 50(乗算)
let quotient = 10 / 5; // 2(除算)
let remainder = 10 % 3; // 1(剰余)
真偽値(Boolean)
trueまたはfalseの2つの値のみを持ちます。
let isOpen = true;
let isCompleted = false;
配列(Array)
複数の値を順番に格納できます。
let fruits = ["りんご", "バナナ", "オレンジ"];
let numbers = [1, 2, 3, 4, 5];
let mixed = ["文字列", 123, true]; // 異なる型も混在可能
配列の要素にアクセス
インデックス(位置)は0から始まります。
let fruits = ["りんご", "バナナ", "オレンジ"];
console.log(fruits[0]); // "りんご"
console.log(fruits[1]); // "バナナ"
console.log(fruits[2]); // "オレンジ"
配列の長さを取得
let fruits = ["りんご", "バナナ", "オレンジ"];
let length = fruits.length; // 3
オブジェクト(Object)
キーと値のペアでデータを管理します。
let person = {
name: "田中太郎",
age: 30,
email: "tanaka@example.com"
};
オブジェクトの値にアクセス
console.log(person.name); // "田中太郎"
console.log(person["age"]); // 30
基本構文3:演算子
算術演算子
let a = 10;
let b = 3;
console.log(a + b); // 13(加算)
console.log(a - b); // 7(減算)
console.log(a * b); // 30(乗算)
console.log(a / b); // 3.333...(除算)
console.log(a % b); // 1(剰余)
代入演算子
let x = 10;
x += 5; // x = x + 5 → 15
x -= 3; // x = x - 3 → 12
x *= 2; // x = x * 2 → 24
x /= 4; // x = x / 4 → 6
比較演算子
let a = 10;
let b = 20;
console.log(a == b); // false(等しい)
console.log(a != b); // true(等しくない)
console.log(a < b); // true(小さい)
console.log(a > b); // false(大きい)
console.log(a <= b); // true(以下)
console.log(a >= b); // false(以上)
console.log(a === b); // false(厳密に等しい)
==と===の違い
console.log(10 == "10"); // true(型変換してから比較)
console.log(10 === "10"); // false(型も含めて厳密に比較)
基本的には===を使うことを推奨します。
論理演算子
let a = true;
let b = false;
console.log(a && b); // false(AND:両方ともtrueの場合のみtrue)
console.log(a || b); // true(OR:どちらかがtrueならtrue)
console.log(!a); // false(NOT:反転)
基本構文4:条件分岐
条件によって処理を分岐させます。
if文
let score = 85;
if (score >= 80) {
console.log("合格です");
}
if-else文
let score = 65;
if (score >= 80) {
console.log("合格です");
} else {
console.log("不合格です");
}
if-else if-else文
let score = 75;
if (score >= 80) {
console.log("優");
} else if (score >= 70) {
console.log("良");
} else if (score >= 60) {
console.log("可");
} else {
console.log("不可");
}
複数条件の組み合わせ
let age = 25;
let hasLicense = true;
if (age >= 18 && hasLicense) {
console.log("運転できます");
} else {
console.log("運転できません");
}
switch文
多岐分岐の場合はswitch文も使えます。
let day = "月曜日";
switch (day) {
case "月曜日":
console.log("会議の日です");
break;
case "水曜日":
console.log("ノー残業デーです");
break;
case "金曜日":
console.log("週報提出日です");
break;
default:
console.log("通常業務です");
}
基本構文5:繰り返し処理
同じ処理を繰り返し実行します。
for文
指定した回数だけ繰り返します。
for (let i = 0; i < 5; i++) {
console.log(i); // 0, 1, 2, 3, 4
}
構文の説明
for (初期化; 条件式; 増減式) {
// 繰り返す処理
}
実用例
for (let i = 1; i <= 10; i++) {
console.log(`${i}番目の処理`);
}
配列のfor文
let fruits = ["りんご", "バナナ", "オレンジ"];
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
for…of文(配列用)
配列の要素を順番に取り出します。
let fruits = ["りんご", "バナナ", "オレンジ"];
for (let fruit of fruits) {
console.log(fruit);
}
// りんご
// バナナ
// オレンジ
for…in文(オブジェクト用)
オブジェクトのキーを順番に取り出します。
let person = {
name: "田中",
age: 30,
city: "東京"
};
for (let key in person) {
console.log(`${key}: ${person[key]}`);
}
// name: 田中
// age: 30
// city: 東京
while文
条件がtrueの間、繰り返します。
let count = 0;
while (count < 5) {
console.log(count);
count++;
}
// 0, 1, 2, 3, 4
break文とcontinue文
break:ループを抜ける
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // i=5の時点でループを終了
}
console.log(i);
}
// 0, 1, 2, 3, 4
continue:次のループへ
for (let i = 0; i < 5; i++) {
if (i === 2) {
continue; // i=2の時はスキップ
}
console.log(i);
}
// 0, 1, 3, 4
基本構文6:関数
関数は、処理をまとめて名前を付けたものです。
関数の基本
function greet() {
console.log("こんにちは!");
}
greet(); // 関数を実行
引数のある関数
function greet(name) {
console.log(`こんにちは、${name}さん!`);
}
greet("田中"); // "こんにちは、田中さん!"
greet("山田"); // "こんにちは、山田さん!"
複数の引数
function add(a, b) {
let sum = a + b;
console.log(`${a} + ${b} = ${sum}`);
}
add(5, 3); // "5 + 3 = 8"
add(10, 20); // "10 + 20 = 30"
戻り値のある関数
function add(a, b) {
return a + b;
}
let result = add(5, 3);
console.log(result); // 8
デフォルト引数
引数が省略された場合のデフォルト値を設定できます。
function greet(name = "ゲスト") {
console.log(`こんにちは、${name}さん!`);
}
greet("田中"); // "こんにちは、田中さん!"
greet(); // "こんにちは、ゲストさん!"
アロー関数
短く書ける関数の記法です。
// 通常の関数
function add(a, b) {
return a + b;
}
// アロー関数
const add = (a, b) => {
return a + b;
};
// さらに短く(1行の場合)
const add = (a, b) => a + b;
スプレッドシート操作の基本
GASの最も一般的な用途は、スプレッドシートの操作です。
スプレッドシートを取得
function getSpreadsheet() {
// アクティブなスプレッドシートを取得
let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
console.log(spreadsheet.getName());
}
シートを取得
function getSheet() {
let spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシートを取得
let sheet = spreadsheet.getActiveSheet();
// または、名前でシートを取得
let sheet2 = spreadsheet.getSheetByName("シート1");
console.log(sheet.getName());
}
セルの値を取得
function getCellValue() {
let sheet = SpreadsheetApp.getActiveSheet();
// A1セルの値を取得
let value = sheet.getRange("A1").getValue();
console.log(value);
// B2セルの値を取得
let value2 = sheet.getRange(2, 2).getValue(); // (行, 列)
console.log(value2);
}
セルに値を設定
function setCellValue() {
let sheet = SpreadsheetApp.getActiveSheet();
// A1セルに値を設定
sheet.getRange("A1").setValue("こんにちは");
// B2セルに数値を設定
sheet.getRange(2, 2).setValue(100);
}
範囲の値を取得
function getRangeValues() {
let sheet = SpreadsheetApp.getActiveSheet();
// A1:B3の範囲を取得
let values = sheet.getRange("A1:B3").getValues();
// valuesは二次元配列
console.log(values[0][0]); // A1の値
console.log(values[0][1]); // B1の値
console.log(values[1][0]); // A2の値
}
範囲に値を設定
function setRangeValues() {
let sheet = SpreadsheetApp.getActiveSheet();
// 二次元配列を作成
let data = [
["名前", "年齢"],
["田中", 30],
["山田", 25]
];
// A1から2列3行に値を設定
sheet.getRange(1, 1, 3, 2).setValues(data);
}
最終行を取得
function getLastRow() {
let sheet = SpreadsheetApp.getActiveSheet();
// データがある最終行を取得
let lastRow = sheet.getLastRow();
console.log(`最終行: ${lastRow}`);
// 最終行の次の行に追加
sheet.getRange(lastRow + 1, 1).setValue("新しいデータ");
}
Gmail操作の基本
メール送信
function sendEmail() {
let recipient = "example@gmail.com";
let subject = "テストメール";
let body = "これはGASから送信したテストメールです。";
GmailApp.sendEmail(recipient, subject, body);
}
HTMLメール送信
function sendHtmlEmail() {
let recipient = "example@gmail.com";
let subject = "HTMLメール";
let body = "プレーンテキスト版";
let htmlBody = "<h1>見出し</h1><p>これは<strong>HTML</strong>メールです。</p>";
GmailApp.sendEmail(recipient, subject, body, {
htmlBody: htmlBody
});
}
添付ファイル付きメール
function sendEmailWithAttachment() {
let recipient = "example@gmail.com";
let subject = "添付ファイル付きメール";
let body = "ファイルを添付しました。";
// Googleドライブからファイルを取得
let file = DriveApp.getFileById("ファイルID");
GmailApp.sendEmail(recipient, subject, body, {
attachments: [file.getAs(MimeType.PDF)]
});
}
受信メールの検索
function searchEmails() {
// "重要"ラベルの未読メールを検索
let threads = GmailApp.search("label:important is:unread", 0, 10);
for (let thread of threads) {
let messages = thread.getMessages();
for (let message of messages) {
console.log(message.getSubject());
console.log(message.getFrom());
}
}
}
ログとデバッグ
console.log()
最も基本的なログ出力方法です。
function testLog() {
let name = "田中";
console.log(name); // "田中"と表示
let age = 30;
console.log(`${name}さんは${age}歳です`);
}
実行後、「実行ログ」ボタンをクリックするとログが表示されます。
Logger.log()
GAS独自のログ出力方法です。
function testLogger() {
Logger.log("これはログです");
Logger.log(123);
Logger.log(true);
}
実行後、「ログ」→「実行ログ」で確認できます。
デバッグモード
ブレークポイントの設定
コードの行番号の左側をクリックすると、赤い丸(ブレークポイント)が表示されます。
デバッグ実行
上部の虫のアイコン(デバッグ)ボタンをクリックすると、ブレークポイントで処理が一時停止します。
変数の値を確認しながら、1行ずつ実行できます。
try-catch文(エラーハンドリング)
function errorHandling() {
try {
// エラーが発生する可能性のある処理
let sheet = SpreadsheetApp.getActiveSheet();
let value = sheet.getRange("A1").getValue();
if (value === "") {
throw new Error("A1セルが空です");
}
console.log(value);
} catch (error) {
// エラーが発生した時の処理
console.log(`エラーが発生しました: ${error.message}`);
}
}
トリガー設定
スクリプトを自動実行するための設定です。
トリガーの種類
時間主導型
特定の時刻や間隔で実行します。
イベント駆動型
スプレッドシートの編集時やフォーム送信時に実行します。
トリガーの設定方法
手順1:トリガー画面を開く
スクリプトエディタの左側メニューから「トリガー」(時計のアイコン)をクリックします。
手順2:トリガーを追加
右下の「トリガーを追加」ボタンをクリックします。
手順3:設定
- 実行する関数を選択
- イベントのソースを選択(時間主導型/スプレッドシートから など)
- 実行タイミングを設定
手順4:保存
「保存」をクリックします。初回は権限の承認が必要です。
時間主導型トリガーの例
// 毎日午前9時に実行される関数
function dailyReport() {
let sheet = SpreadsheetApp.getActiveSheet();
let lastRow = sheet.getLastRow();
// 昨日のデータを集計
let data = sheet.getRange(2, 1, lastRow - 1, 5).getValues();
// メールで送信
let message = "本日の集計結果:\n\n";
// ... 集計処理 ...
GmailApp.sendEmail("manager@example.com", "日次レポート", message);
}
トリガー設定で「毎日午前9時〜10時」を選択すれば、自動実行されます。
イベント駆動型トリガーの例
// スプレッドシート編集時に自動実行
function onEdit(e) {
let sheet = e.source.getActiveSheet();
let range = e.range;
// A列が編集された場合、B列に日時を記録
if (range.getColumn() === 1) {
let row = range.getRow();
sheet.getRange(row, 2).setValue(new Date());
}
}
この関数名 onEdit は特別な名前で、スプレッドシートが編集されると自動的に実行されます。
実践的なサンプルコード
サンプル1:データの自動集計
function calculateTotal() {
let sheet = SpreadsheetApp.getActiveSheet();
// B2:B10の範囲の合計を計算
let range = sheet.getRange("B2:B10");
let values = range.getValues();
let total = 0;
for (let row of values) {
total += row[0]; // 各行の最初の列(B列)を加算
}
// 合計をB11セルに出力
sheet.getRange("B11").setValue(total);
console.log(`合計: ${total}`);
}
サンプル2:定型メールの一括送信
function sendBulkEmails() {
let sheet = SpreadsheetApp.getActiveSheet();
let lastRow = sheet.getLastRow();
// A列にメールアドレス、B列に名前があると仮定
let data = sheet.getRange(2, 1, lastRow - 1, 2).getValues();
for (let row of data) {
let email = row[0];
let name = row[1];
if (email) { // メールアドレスが空でない場合
let subject = "重要なお知らせ";
let body = `${name}様\n\nお世話になっております。\n\n...`;
GmailApp.sendEmail(email, subject, body);
// 送信完了をログに記録
console.log(`${email}に送信完了`);
}
}
console.log("一括送信完了");
}
サンプル3:カスタム関数の作成
スプレッドシートのセルで使える独自の関数を作成できます。
/**
* 消費税込み価格を計算する
* @param {number} price 税抜価格
* @param {number} taxRate 税率(省略可、デフォルト0.1)
* @return {number} 税込価格
* @customfunction
*/
function TAX_INCLUDED(price, taxRate) {
taxRate = taxRate || 0.1; // 省略時は10%
return Math.round(price * (1 + taxRate));
}
スプレッドシートのセルで以下のように使用できます。
=TAX_INCLUDED(1000) // 1100
=TAX_INCLUDED(1000, 0.08) // 1080
サンプル4:Webスクレイピング
function scrapeWebsite() {
let url = "https://example.com";
let response = UrlFetchApp.fetch(url);
let content = response.getContentText();
// HTMLから特定の情報を抽出
// (実際には正規表現やHTMLパーサーを使用)
console.log(content);
}
サンプル5:データの並び替えと重複削除
function sortAndRemoveDuplicates() {
let sheet = SpreadsheetApp.getActiveSheet();
let lastRow = sheet.getLastRow();
// A列のデータを取得
let data = sheet.getRange(1, 1, lastRow, 1).getValues();
// 重複を削除(Setを使用)
let uniqueData = [...new Set(data.flat())];
// ソート
uniqueData.sort();
// B列に出力
for (let i = 0; i < uniqueData.length; i++) {
sheet.getRange(i + 1, 2).setValue(uniqueData[i]);
}
console.log(`${uniqueData.length}件のユニークなデータ`);
}
よくある質問と回答
Q1:プログラミング未経験でもGASを使えますか?
A:はい、使えます。
GASは初心者向けの言語で、サンプルコードも豊富です。本記事で紹介した基本構文から始めて、徐々に複雑な処理に挑戦していけば大丈夫です。
まずは簡単なスクリプトをコピー&ペーストして動かしてみることから始めましょう。
Q2:GASの実行時間に制限はありますか?
A:はい、あります。
- スクリプトの実行時間:1回あたり最大6分
- カスタム関数の実行時間:1処理あたり最大30秒
この制限は無料アカウントでも有料のGoogle Workspaceアカウントでも同じです。
6分を超える処理が必要な場合は、処理を分割する必要があります。
Q3:作成したスクリプトを他の人と共有できますか?
A:はい、できます。
方法1:スプレッドシートごと共有
スプレッドシートを共有すれば、紐付けられたスクリプトも一緒に共有されます。
方法2:スタンドアロンスクリプトの共有
Googleドライブ上のスクリプトファイルを共有します。
ただし、他の人が実行する際は、その人のアカウントで権限の承認が必要です。
Q4:GASで作成したスクリプトはどこに保存されますか?**
A:Googleドライブに自動的に保存されます。
コンテナバインド型
スプレッドシートやドキュメントに紐付けられたスクリプトは、そのファイルと一緒に保存されます。
スタンドアロン型
独立したスクリプトは、Googleドライブのルートまたは指定したフォルダーに保存されます。
Q5:スクリプトが動かない時はどうすればいいですか?
A:以下を確認してください。
実行ログを確認
「実行ログ」ボタンをクリックして、エラーメッセージを確認します。
権限の承認
初めて実行する際は、権限の承認が必要です。エラーメッセージの指示に従ってください。
構文エラー
コードに文法的な誤りがないか確認します。セミコロンや括弧の閉じ忘れなど。
関数名の確認
実行する関数名が正しく選択されているか確認します。
Q6:GASとExcel VBAの違いは何ですか?
A:主な違いは以下の通りです。
実行環境
- GAS:クラウド(Googleのサーバー)で実行
- VBA:ローカル(自分のパソコン)で実行
言語
- GAS:JavaScript
- VBA:Visual Basic
対象アプリ
- GAS:Googleスプレッドシート、Gmail、カレンダーなど
- VBA:Microsoft Excel、Word、Accessなど
自動実行
- GAS:パソコンの電源が切れていても実行可能
- VBA:パソコンが起動している必要がある
Q7:GASで外部APIを利用できますか?
A:はい、できます。
UrlFetchAppを使用して、外部のWeb APIにリクエストを送信できます。
function callExternalAPI() {
let url = "https://api.example.com/data";
let options = {
"method": "GET",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
};
let response = UrlFetchApp.fetch(url, options);
let data = JSON.parse(response.getContentText());
console.log(data);
}
Q8:スプレッドシートのセルの色を変更できますか?
A:はい、できます。
function changeColor() {
let sheet = SpreadsheetApp.getActiveSheet();
let range = sheet.getRange("A1");
// 背景色を変更
range.setBackground("#FF0000"); // 赤色
// 文字色を変更
range.setFontColor("#FFFFFF"); // 白色
}
Q9:作成したスクリプトを公開できますか?
A:はい、アドオンとして公開できます。
Google Workspace Marketplaceにアドオンを公開すれば、世界中の人が使用できます。
ただし、公開には審査があり、セキュリティやプライバシーの基準を満たす必要があります。
Q10:GASの学習リソースはどこで見つけられますか?
A:以下のリソースがおすすめです。
公式ドキュメント
Google Apps Script公式ドキュメント(英語)
https://developers.google.com/apps-script
日本語の学習サイト
- Qiita(キータ):日本語の技術記事が豊富
- Zenn:新しい技術記事プラットフォーム
- いつも隣にITのお仕事:初心者向けの丁寧な解説
YouTubeチャンネル
Google Workspace Developers公式チャンネルなど
オンラインコース
Udemy、Udemyなどの学習プラットフォームにGAS講座があります。
まとめ
Google Apps Script(GAS)の基本構文について、詳しく解説してきました。
本記事のポイント
- GASはGoogleサービスを自動化できる無料のツール
- ブラウザだけで開発できる(環境構築不要)
- JavaScriptベースで初心者にも学びやすい
- スプレッドシート、Gmail、カレンダーなど様々なサービスと連携可能
基本構文のまとめ
変数と定数
let name = "田中"; // 変数
const TAX = 0.1; // 定数
データ型
- 文字列:
"こんにちは" - 数値:
100 - 真偽値:
true/false - 配列:
["a", "b", "c"] - オブジェクト:
{name: "田中", age: 30}
条件分岐
if (条件) {
// 処理
} else {
// 処理
}
繰り返し
for (let i = 0; i < 5; i++) {
// 処理
}
関数
function myFunction() {
// 処理
}
スプレッドシート操作
let sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange("A1").setValue("こんにちは");
Gmail操作
GmailApp.sendEmail(recipient, subject, body);
学習の進め方
ステップ1:基本構文の理解
本記事で紹介した変数、条件分岐、繰り返し、関数の基本を理解しましょう。
ステップ2:サンプルコードを動かす
コピー&ペーストで良いので、実際にコードを動かしてみましょう。
ステップ3:少しずつ改造
サンプルコードの数値や文字列を変更して、動作を確認しましょう。
ステップ4:自分の課題を解決
実際の業務で困っていることを自動化してみましょう。
ステップ5:エラーに慣れる
エラーは学習のチャンスです。エラーメッセージを読んで、修正方法を学びましょう。
GASの活用例
- 日次レポートの自動作成と送信
- データの自動集計とグラフ化
- フォーム回答の自動処理
- 定型メールの自動送信
- カレンダーイベントの一括登録
- ファイルの自動整理とバックアップ
- 外部APIとの連携
最後に
GASは、プログラミング初心者でも実用的な自動化を実現できる強力なツールです。
最初は難しく感じるかもしれませんが、まずは簡単なコードから始めて、少しずつ複雑な処理に挑戦していけば、必ず使いこなせるようになります。
本記事で紹介した基本構文をマスターすれば、日々の業務を大幅に効率化できるでしょう。ぜひ実際に手を動かして、GASの便利さを体験してください!

コメント