Skip to content
sumnail

GAS開発でよく使う基本のプログラミング文法

created at : 2025/01/29

GAS

基本文法

開発によく使う基本的なプログラミング文法を、サンプルコードを動かしながら確認出来ます。

ぜひ手元でコードを動かしながら確認してみてください!

変数と定数

はじめに、 開発する際によく使う変数について紹介します。

変数は、コード実行中のある値を、後で再利用するための収納箱でイメージ出来ます。 数値や文字列など様々な種類の値を代入することができます。

GAS で変数を宣言する際には、以下のキーワードを使います。

次にそれぞれの違いについて説明します。

変数 var

var は、変数であることをプログラムに教えるためのキーワードです。

varを使って宣言された変数は、どこでもその変数を参照、再代入することが出来ます。

ts
var value = 3;
Logger.log(value); // 3

function variable() {
  value = 1;
  Logger.log(value); // 1

  value = "Hello, GAS!";
  Logger.log(value); // Hello, GAS!
}

上記のコードは、value という変数に数値 13、文字列 Hello, GAS! を代入しています。 いずれも、代入後にLogger.log を使ってコンソールに出力しています。

TIP

実際に GAS を開発し始めるとvar よりもletconst というキーワードを使うことが多いです。
なぜvarではなくletconstを使うのか次セクション以降で説明します。

変数 let

let は、変数の使用範囲をブロックスコープ({})内に限定し、適用範囲を明確にすることが可能です。

また、同一スコープ内で同じ変数名を再宣言するとエラーが発生するため、誤った変数の再宣言を防ぐことができます。

ts
function letVariable() {
  let num = 1;
  Logger.log(num); // 1

  if (true) {
    // ブロックスコープ内で宣言しているので、このブロック内でのみ有効
    let num = 2;
    Logger.log(num); // 2
  }

  // let num = 2; // ここでnumを再宣言するとエラーが発生する(2行目と同じブロックで宣言している為)
  Logger.log(num); // 1 (同一ブロック内のnumが出力される)
}

TIP

varよりもletをお勧めする理由は、不具合が発生しそうな書き方をすると、エラーで教えてくれるため不具合が生じにくいためです。

定数 const

定数constは、変数と同じように値を格納することができますが、一度代入した値を変更することができません。

ts
function constant() {
  const value = 1;
  Logger.log(value);

  if (true) {
    // ブロックスコープ内で宣言しているので、このブロック内でのみ有効
    const value = 2;
    Logger.log(value);
  }

  value = 3; // 再代入が出来ないため、ここでエラーが発生する
  Logger.log(value);
}

TIP

基本はconstを使用し、再代入が必要な場合にletを使用すると、開発中の不具合が生じにくくお勧めです。

演算子

演算子は、数値や文字列などの値を計算するための記号です。

よく使う演算子を紹介します。

算術演算子

算術演算子は、数値の計算を行うための演算子です。

ts
function calculator() {
  const num1 = 1;
  const num2 = 2;

  Logger.log(num1 + num2); // 足し算
  Logger.log(num1 - num2); // 引き算
  Logger.log(num1 * num2); // 掛け算
  Logger.log(num1 / num2); // 割り算
  Logger.log(num1 % num2); // 剰余
}

上記のコードは、num1num2 に数値 12 を代入しています。 それぞれの数値を使って、足し算、引き算、掛け算、割り算、剰余を計算しています。

比較演算子

比較演算子は、値を比較するための演算子です。

ts
function comparisonOperator() {
  const num1 = 1;
  const num2 = 2;

  Logger.log(num1 === num2); // false
  Logger.log(num1 !== num2); // true
  Logger.log(num1 > num2); // false
  Logger.log(num1 < num2); // true
  Logger.log(num1 >= num2); // false
  Logger.log(num1 <= num2); // true
}

上記のコードは、num1num2 に数値 12 を代入しています。 それぞれの数値を使って、等しい、等しくない、より大きい、より小さい、以上、以下の比較をしています。

TIP

===!== は、値と型が一致しているかどうかを比較する演算子です。
==!= は、値のみを比較する演算子です。

条件分岐

条件分岐は、ある条件が成立する場合のみ処理を実行するための文法です。

ts
function ifStatement() {
  const num = 1;

  if (num < 5) {
    Logger.log("5より小さい");
  } else if (num >= 5 && num < 10) {
    Logger.log("5以上10未満");
  } else {
    Logger.log("10以上");
  }
}

上記のコードをnum の値を変えて実行すると、値に応じて表示するメッセージが変わります。

繰り返し処理

繰り返し処理は、同じ処理を繰り返し実行するための文法です。

ts
function loop() {
  for (let step = 0; step < 5; step++) {
    // stepが 0 から 4 まで実行される
    Logger.log(step + "回目");
  }
}

for 文を使って、step の値が 5 以上になるまで順番に Logger.log で出力しています。

配列

配列は、複数の値をまとめて保持できるデータ型で、[] を使って定義します。

0 から始まるインデックスで要素の順番と値を管理します。
インデックスを指定して配列から要素を取り出すことができます。

ts
function array() {
  const users = ["user1", "user2", "user3"];
  Logger.log(users[0]); // user1
  Logger.log(users[1]); // user2
  Logger.log(users[2]); // user3
}

上記のコードでは、users という配列に user1user2user3 という値を格納しています。 users の要素をインデックスを指定して取り出して Logger.log で出力しています。

配列の操作

配列には、要素を追加したり削除したりするためのメソッドが用意されています。

要素の追加

配列に要素を追加するには、push メソッドを使います。

ts
function arrayPush() {
  const users = ["user1", "user2"];
  users.push("user3");
  Logger.log(users); // ["user1", "user2", "user3"]
}

上記のコードでは、users という配列に user1user2 という値を格納しています。 push メソッドを使って user3 を追加しています。

要素の削除

配列から要素を削除するには、filter メソッドが便利です。
(位置が既知ならsplice メソッドでも削除可能です。)

filter メソッドは、指定した条件に一致する要素だけを残して新しい配列を作成します。

ts
function filter() {
  const users = ["user1", "user2", "user3"];
  const newUsers = users.filter((user) => user !== "user2");
  Logger.log(newUsers); // ["user1", "user3"]
}

splice メソッドは、指定したインデックスから指定した数の要素を削除します。

ts
function deleteValue() {
  const users = ["user1", "user2", "user3"];
  users.splice(1, 1);
  Logger.log(users); // ["user1", "user3"]
}

上記のコードでは、users という配列に user1user2user3 という値を格納しています。 splice メソッドを使って、インデックス 1 から 1 つの要素を削除しています。

連想配列

連想配列は、キーと値をペアで保持することが出来るデータ型で、{}で定義します。

ts
function associativeArray() {
  const user = {
    name: "user1",
    age: 20,
  };
  Logger.log(user.name); // user1
  Logger.log(user.age); // 20
}

上記のコードでは、user という連想配列に nameage というキーと値が格納されています。 user のキーを指定して値を取り出しています。

関数

関数は、処理をまとめて再利用することが出来ます。
入力値(引数)を受け取り、関数で定義した処理の結果を返すことができます。

ts
function add(a, b) {
  return a + b;
}

function function() {
  const result = add(1, 2);
  Logger.log(result); // 3
}

上記のコードでは、add という関数を定義しています。 add 関数は、引数 ab を受け取り、それらの足した結果を返します。

まとめ

GAS の開発でよく使うプログラミングの基本的な文法を紹介しました。

サンプルコードのような処理は多くの場面で活用できるため、ぜひ実行しながらコードの挙動を確認してみましょう!