Google Apps Script(GAS)でプログラミングを始めるとき、最初にマスターしたいのが**「制御構文」です。
これは、「こういうときにはこう動く」「条件に応じてこう処理する」といったプログラムの流れ**を決めるルールのこと。
たとえば、
- 条件に応じて処理を分けたい(
if文やswitch文) - 繰り返し処理をしたい(
for文やwhile文)
といったときに使われます。
この記事では、すべての制御構文をテストできるサンプルコード付きで、動作のイメージまでわかるように解説していきます。
1. 条件分岐:if文
✅ どんなときに使う?
ある条件に応じて処理を変えたいとき。
🔍 具体例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
let x = 5;
if (x > 10) {
console.log('xは10より大きい');
} else if (x > 0) {
console.log('xは0より大きく、10以下'); // このパターンで出力される
} else {
console.log('xは0以下');
} 💡 解説
このように、if → else if → else の順に条件をチェックして、最初に合致したところだけ実行されます。
x が 5 なので、「0より大きく、10以下」に該当して、そこだけが出力されます。
2. 条件分岐:switch文
✅ どんなときに使う?
特定の値に応じて分岐したいとき(曜日、メニュー、番号など)。
🔍 具体例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
let day = 3;
switch (day) {
case 1:
console.log('月曜日');
break;
case 2:
console.log('火曜日');
break;
case 3:
console.log('水曜日'); // ここが実行される
break;
default:
console.log('その他の日');
} 💡 解説
switchはdayの値に応じて一致するcaseを探します。
最後にbreak;がないと、次のケースまで処理が落ちていくので注意!
3. 繰り返し処理:for文(カウンター型)
✅ どんなときに使う?
「決まった回数だけ繰り返す」処理に最適。
🔍 具体例
- 1
- 2
- 3
for (let i = 0; i < 5; i++) {
console.log(i); // 0〜4まで出力
} 💡 解説
i = 0からスタートして、i < 5の間だけループ。毎回i++(1ずつ増える)します。
つまり「0から4まで5回繰り返す」処理になります。
4. for...in文(オブジェクトのプロパティを列挙)
✅ どんなときに使う?
オブジェクトの中身をすべて取り出したいとき。
🔍 具体例
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
let person = { name: 'John', age: 30, city: 'Tokyo' };
for (let prop in person) {
console.log(prop + ': ' + person[prop]);
}
// 出力例:
// name: John
// age: 30
// city: Tokyo 💡 解説
for...inは、キー(プロパティ名)を1つずつ取り出して処理できます。
5. for...of文(配列の要素を列挙)
✅ どんなときに使う?
配列から値(要素)を1つずつ取り出して処理したいとき。
🔍 具体例
- 1
- 2
- 3
- 4
- 5
- 6
let fruits = ['Apple', 'Banana', 'Cherry'];
for (let fruit of fruits) {
console.log(fruit);
}
// 出力:Apple, Banana, Cherry 💡 解説
配列専用の構文で、ofは「配列の中身そのもの」を取り出すのに使います。
6. while文(条件がtrueの間、繰り返す)
✅ どんなときに使う?
「いつ終わるかわからないけど、条件を満たしている間は繰り返したい」処理。
🔍 具体例
- 1
- 2
- 3
- 4
- 5
- 6
let i = 0;
while (i < 5) {
console.log(i); // 0〜4まで出力
i++;
} 💡 解説
i < 5がtrueの間、何度でも繰り返します。
ただし、i++を忘れると永遠にループするので注意!
7. do...while文(1回は必ず実行するループ)
✅ どんなときに使う?
「まず1回やってから、条件をチェックしたい」場面。
🔍 具体例
- 1
- 2
- 3
- 4
- 5
- 6
let j = 0;
do {
console.log(j); // 0だけ出力
j++;
} while (j < 0); 💡 解説
do...whileは、条件にかかわらず最初の1回は必ず実行されます。
上記では、条件がfalseですが、0は1回出力されます。
📘 総まとめ:全構文を確認できるテストコード
Google Apps Script でまとめて動作を確認したい場合は、次のコードを使ってみてください。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
function testControlStructures() {
console.log('--- if文 ---');
let x = 5;
if (x > 10) {
console.log('xは10より大きい');
} else if (x > 0) {
console.log('xは0より大きく、10以下');
} else {
console.log('xは0以下');
}
console.log('--- switch文 ---');
let day = 3;
switch (day) {
case 1:
console.log('月曜日');
break;
case 2:
console.log('火曜日');
break;
case 3:
console.log('水曜日');
break;
default:
console.log('その他の日');
}
console.log('--- for文 ---');
for (let i = 0; i < 5; i++) {
console.log(i);
}
console.log('--- for...in文 ---');
let person = { name: 'John', age: 30, city: 'Tokyo' };
for (let prop in person) {
console.log(prop + ': ' + person[prop]);
}
console.log('--- for...of文 ---');
let fruits = ['Apple', 'Banana', 'Cherry'];
for (let fruit of fruits) {
console.log(fruit);
}
console.log('--- while文 ---');
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
console.log('--- do...while文 ---');
let j = 0;
do {
console.log(j);
j++;
} while (j < 0);
} 🪄 さいごに:覚える順番のおすすめ
初心者の方は、まず次の順に理解していくのがオススメです。
-
if文(条件に応じた処理) -
for文(決まった回数の繰り返し) -
while文(条件によるループ) -
for...in/for...of(オブジェクトや配列の中身を取り出す) -
switch文(分岐が多いときに便利) -
do...while文(あまり使わないけど知っておくと◎)
✏️ 一歩進んだ学び方
プロンプトエンジニアからのひとこと:制御構文の挙動を確認するときは、**エディタ上の「ログ」や「デバッグ出力」**を見ながら試すのが理解の近道。
例えば、
Logger.log()やconsole.log()を使って、処理の流れを「目で追える」ようにしましょう。また、GASは Googleスプレッドシート と組み合わせると真価を発揮します。
例えば「A列の値が"完了"だったらB列に日付を書く」といったスクリプトを書く際に、今回の
if文やfor文がとても役に立ちますよ。
GoogleAppsScriptをAIのチカラを使ってブーストさせるための情報が体系的にまとまっていました。GASのレベルをあげたい人は、下記のKindle書籍をチェックしてみてください。AI時代の効率的なプログラミング方法が学べます。Kindle Unlimitedに入っている人は無料で読めますよ。
https://www.amazon.co.jp/dp/B0FPFSVSJP