1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🚀 Google Apps Script 入門体験

Last updated at Posted at 2025-09-23

🔰 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送信を自動化
  • 実務でもよく使う応用サンプル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?