【GAS入門】if文の使い方と複数条件の実装テクニック
GASを使い始めたんですが、if文で複数条件を使いたいんですが、うまくいかなくて…

猫男

catman
それなら、catmanの出番さ。GASでのif文の使い方と複数条件について詳しく解説しよう。
GASにおける基本的なif文の書き方
GASで条件分岐をするならif文だ。
以下の構文が基本形さ。
if (条件) {
// 条件が真のときに実行される処理
}
()の中の条件の真偽を判定して処理をわけられるんだ。
条件が「真」なら{} 内の処理を実行。そうでない「偽」の場合は何もしないぞ。
たとえば、以下のスクリプトを見てくれ。
let fruit = "りんご";
if (fruit === "りんご") {
Logger.log("これはりんごです");
}
この場合、
fruit === “りんご”
が条件だ。fruit が “りんご” という文字列と同じなら、Logger.log(…) の中身が実行される。
で、今回はfruit が “りんご” という文字列だから、条件は真。よって、
これはりんごです
とログが表示されるはずだ。
条件の書き方がわからない!
ってなったら「GASの比較演算子」を復習しよう。
GASのif文で複数条件を扱う方法
次はお待ちかねの複数条件のif文だ。
ひとつの条件だけで足りないときは、複数条件を使えるのさ。
たとえば、
- &&(AND)を使って全ての条件が真なら実行。
- ||(OR)を使ってどれかひとつでも真なら実行。
という条件の記述方法がある。
以下のスクリプトは1つめの「&&(AND)」を用いた方法だ。
if (条件1 && 条件2) {
// 両方の条件が真のときに実行される処理
}
具体例を見てみよう。
let fruit = "パイナップル";
let weight = 1.2; // kg
if (fruit === "パイナップル" && weight >= 1) {
Logger.log("大きなパイナップルです!");
}
fruit === "パイナップル"
weight >= 1
という複数条件を同時に満たした場合、{} 内の処理が実行される。
今回はその2つを満たしているから、Logger.log("大きなパイナップルです!");
が実行されて、
大きなパイナップルです!
とログが表示されるはずさ。
なるほど!条件を組み合わせるにはANDとかORを使うんですね。では、条件が通らない場合には何もしない場合は?

猫男

catman
特に何もしないなら、あえてelseを使わず、if文だけで書くとすっきりするぞ。
GAでよく出てくるif文の具体例
それじゃあ、GASでよく出てくる実践的なif文の具体例を紹介するぞ。
空白やnullをチェックする:
データが空白か、nullか判定したいとき。
if (value === null || value === '') {
Logger.log("値が空かnullだ。");
}
特定の文字列が含まれているか:
文字列をチェックしたいときに使える。
if (text.includes("チェック")) {
Logger.log("チェックが含まれている。");
}
条件の否定:
もし条件を満たさない場合を判定したいとき。
if (!条件) {
Logger.log("条件を満たしていない。");
}
状況に応じて色んな条件が設定できるんですね。でも、時々スクリプトが止まっちゃうようなことがあるんです…

猫男

catman
それは多分break文が関係している。ループの中で使うもので、条件によってループを抜けることができるんだが、使う場所には気をつけよう。
練習問題:GASでif文の基本的な活用方法を身につけよう
次のGASスクリプトを、変数statusが”succeeded”の場合にログを出力するように修正しよう。
function checkStatus() {
let status = "succeeded";
// ここに条件を追加
Logger.log("処理が成功しました。");
}
練習問題の解答と解説
function checkStatus() {
let status = "succeeded";
if (status === "succeeded") {
Logger.log("処理が成功しました。");
}
}
- letは変数を宣言するためのキーワード。
- if (status === “succeeded”)の部分で、変数statusが想定した文字列と一致するかの条件分岐を行っています。この条件が真であれば、次の行のLogger.log()が実行されます。
ちゃんと動いた!いろんな条件を設定する方法がつかめた気がします!

猫男

catman
良かったな。これでGASのif文による条件分岐もバッチリだ。またいつでも聞いてくれ。