🔰 GASを始める前に覚えておきたい基本用語
- 変数 → データを入れて使うための箱
- 条件分岐 → 条件によって処理を分けるしくみ
- ループ → 同じ処理を繰り返すしくみ
- 配列 → 複数のデータをまとめて扱うしくみ
- 関数 → 手順をひとまとめにしたもの
👉 プログラミングは「処理を部品化して組み合わせる」イメージで理解するとスムーズです。
📊 スプレッドシート関連の用語
- スプレッドシート → 表形式でデータを扱うアプリ
- セル(Cell) → 1つのマス(A1など)
- 行(Row) → 横方向の並び(1行, 2行…)
- 列(Column) → 縦方向の並び(A列, B列…)
- シート(Sheet) → 複数のセル・行・列をまとめた表
👉 GASでは SpreadsheetApp
を使って、これらを操作できます。
🛠 実行・確認関連
ログ(Logger)
Logger.log("テスト中…");
👉 エディタの 表示 → 実行ログ で確認できます。
try-catch(エラー処理)
try {
let x = 10 / 0;
} catch (e) {
Logger.log("エラー: " + e);
}
👉 エラーが出ても処理を止めずにログに残せる「安全ネット」。
💻 プログラミングの考え方
オブジェクト(Object)
- データと機能をまとめたもの
- 例:シートオブジェクトには「名前(データ)」と「getRange, clear などの機能」が入っている
API(Application Programming Interface)
- 外部サービスの機能を利用するための窓口
👉 「注文口」のように、お願いすれば結果が返ってくる。
JavaScriptはオブジェクト指向?
→ はい。JavaScriptでは文字列・配列・関数までもオブジェクト。
👉 「何でもオブジェクト」と考えると理解が早いです。
📮 サービス操作の例
Gmailを自動送信する
function sendMailSample() {
GmailApp.sendEmail(
"test@example.com",
"テスト件名",
"こんにちは!これは自動送信です。"
);
}
👉 引数は 宛先・件名・本文 の3つ。
スプレッドシートにあるアドレス一覧を使って一斉送信も可能になります。
1. Hello, World!(最初の一歩)
function helloWorld_log() {
Logger.log("Hello, Google Apps Script!");
}
👉 最小のサンプルコード。関数を定義し、Logger.log()
でログに文字を出力します。
📌 ポイント: Logger.log
の結果は メニューの「表示 → ログ」 で確認できます。
2. 変数と計算
function basicCalc() {
let x = 5;
let y = 3;
let result = x + y;
Logger.log("合計: " + result);
}
👉 変数を使って計算結果を出力。
📌 ポイント:
-
let
→ 値を再代入できる変数 -
const
→ 値を変えない定数
3. 条件分岐(if文)
function conditionSample() {
let score = Math.floor(Math.random() * 100); // 0〜99の乱数
if (score >= 80) {
Logger.log(score + "点 → 合格!🎉");
} else {
Logger.log(score + "点 → 不合格…😢");
}
}
👉 if...else
で条件によって処理を分けます。
📌 ポイント: 条件分岐は「正常な流れを分ける」ときに使用。
4. ループと配列
function loopArray() {
let animals = ["犬", "猫", "鳥", "うさぎ"];
for (let i = 0; i < animals.length; i++) {
Logger.log("動物: " + animals[i]);
}
}
👉 配列の要素を順番に処理。
📌 ポイント: animals.length
で配列の要素数を取得。
5. 関数の作成と呼び出し
function functionDemo() {
Logger.log(greet("花子"));
}
function greet(name) {
return "こんにちは、" + name + "さん!";
}
👉 自作関数を別の関数から呼び出し。
📌 ポイント: 処理を部品化して再利用性を高める。
6. スプレッドシート操作
function writeSheetDemo() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
sheet.getRange(1, 1).setValue("GASでセルを書き込み!");
}
👉 アクティブなシートの A1セル に文字を入力。
📌 ポイント: SpreadsheetApp
は GAS の代表的な組み込みサービス。
7. エラーを体験してみる
function errorTrial() {
let data;
Logger.log(data.length); // dataが未定義なのでエラー
}
👉 わざとエラーを起こす例。
📌 ポイント: エラーを体験して「try...catch
の必要性」を理解する準備。
8. try-catchでエラー処理
function tryCatchDemo() {
try {
let x;
Logger.log(x.length);
} catch (e) {
Logger.log("エラー発生: " + e.message);
}
}
👉 エラーが発生しそうな処理を try
に書き、問題が起きたら catch
で安全に処理。
📌 ポイント:
-
if...else
→ 正常系の条件分岐 -
try...catch
→ 異常系(エラー)に備える保険
9. 外部データを呼び出す(API)
function fetchApi() {
const res = UrlFetchApp.fetch("https://jsonplaceholder.typicode.com/todos/1");
Logger.log(res.getContentText());
}
👉 UrlFetchApp.fetch()
で外部APIからデータを取得。
📌 ポイント: 返り値は JSON形式。JSON.parse()
でオブジェクト化して活用できる。
10. 【応用課題】PDFをメールで送る
function sendPdfMail() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const pdf = DriveApp.getFileById(ss.getId()).getAs("application/pdf");
GmailApp.sendEmail("yourmail@example.com", "PDF送信テスト", "添付をご確認ください", {
attachments: [pdf]
});
}
👉 スプレッドシートを PDF に変換し、Gmailで送信。
📌 ポイント:
-
DriveApp
→ Googleドライブのファイル操作 -
GmailApp
→ Gmail送信を自動化 - 実務でもよく使う応用サンプル