6. 条件分岐

プログラミングにおいて条件分岐処理とは、「もし●●のときは〇〇をする」というように、条件によって処理を分けたいときに使用する命令のことです。

通常一般的なプログラミング言語では、条件分岐の命令は以下のように「if(イフ)」から記述するため、「if文」と呼ばれています。if文には、条件式条件が一致したときの処理を記述します。

 if (条件式) {
   条件が一致したときの処理
  }

if文の条件式について

一般的にif文の条件式には、左辺と右辺の値を比較する式を記述します。
左辺と右辺が「等しい場合」や「等しくない場合」などが比較できるように「比較演算子」と呼ばれる記号を使用して条件を記述します。

たとえば、左辺aと右辺bが等しいかを比較したい場合は、以下のように記述します。

■代表的な比較演算子の例

比較演算子の例 説明
== 左辺と右辺が等しい場合
!= 左辺と右辺が等しくない場合
<= 左辺が右辺以下の場合
>= 左辺が右辺以上の場合
< 左辺が右辺未満の場合
> 左辺が右辺を超える場合

※計算に使う記号(演算子)は、「3.演算」を参照してください。

複数の条件分岐(if else文)

「もし●●の時は〇〇をする、そうでなければ△△をする」のように条件が一致しないときにも処理を実行させたいことがあります。
その場合通常のプログラミングでは、if else文という命令文を使用します。以下のようにif文のあとに「それ以外」という意味のelseを追加して、条件が一致しないときの処理内容を記述します。

 if (条件式) {
    条件が一致するときの処理内容
   } else {
    条件が一致しないときの処理内容
   }

たとえば、planAが0のときは「完売」と表示、0以外の場合は「カートに入れる」と表示させたい場合は以下のように記述します。

 if (planA == 0) {
   output = "完売"
  } else {
   output = "カートに入れる"
  }

Coopelの条件分岐

Coopelの場合、if文は[条件分岐1]アクション、if else文は[条件分岐2]アクションを使用します。
それぞれのシナリオ作成について見てみましょう。

条件分岐1(if文)のシナリオ作成のしかた

たとえば、シナリオ実行時の日付と以下のスプレッドシートのB2の日付を比較して、期限を過ぎていればC2セルに「期限切れ」と入力するシナリオを作成してみます。

以下のように[当日を取得]アクション~[セルをコピー]アクション(①)の下に、[条件分岐1]アクション(②)を配置します。
※[条件分岐1]アクションのプロパティにある[A]はif文の左辺にあたり、[B]は右辺にあたります。[判定内容]プロパティは条件に該当します。

[条件分岐1]アクションのプロパティを設定していきます。
[A](①)に[日付の書式を変換する]アクションを参照設定し、[B](②)に[セルをコピー]アクションを参照設定します。[判定内容]プロパティ(③)は「超の場合」を指定します。

これで条件式は設定できました。

次に、条件が一致するときの処理内容を設定します。
[条件分岐1]アクションの中に[セルをペースト]アクション(①)を配置し、[入力値]プロパティ(②)に「期限切れ」と入力し、[ペースト対象のセル]プロパティ(③)に「C2」と入力します。

こうすることで、「もしシナリオ実行時の日付が期限を過ぎていたら、C2セルに「期限切れ」と入力する」というシナリオができます。

このシナリオを実行すると、シナリオ実行時の日付がB2セルの日付を超えているときは、スプレッドシートのC2セルに「期限切れ」と入力されます。

条件分岐2(if else文)のシナリオ作成のしかた

if文の条件が一致するとき、または一致しないときに処理を実行するためのシナリオを作成します。

たとえば、シナリオ実行時の日付と以下のスプレッドシートのB2セルの日付を比較して、期限未満の場合はC2セルに「処理待ち」と入力します。期限を過ぎている場合はメールを送信するシナリオを作成してみます。

以下のように[当日を取得]アクション~[セルをコピー]アクション(①)の下に、[条件分岐2]アクション(②)を配置します。

[A](①)に[日付の書式を変換する]アクションを参照設定し、[B](②)に[セルをコピー]アクションを参照設定します。[判定内容]プロパティ(③)は「未満の場合」を指定します。

これで条件式は設定できました。

次に、条件が一致するときの処理内容を設定します。
[条件分岐2]アクションの直下に[セルをペースト]アクション(①)を配置し、[入力値]プロパティ(③)に「処理待ち」と入力し、[ペースト対象のセル]プロパティ(④)に「C2」と入力します。

最後に条件が一致しないときの処理内容を設定します。
[でなければ]の中に[gmailからメールを送信]アクション(①)を配置し、[シナリオアカウント]プロパティ(②)でシナリオアカウントを指定し、送信内容を設定します(③)。

こうすることで、「もしシナリオ実行時の日付が期限未満であれば、C2セルに「処理待ち」と入力する、そうでなければメールを送信する」というシナリオができます。

このシナリオを実行すると、以下のようになります。

■シナリオ実行時の日付がB2セルの日付未満の場合
 スプレッドシートのC2セルに「処理待ち」と入力されます。

■シナリオ実行時の日付がB2セルの日付を超えている場合
 以下のようなメールが送信されます。

このように条件分岐は処理したい内容によって使い分けていきます。

実務では条件を増やしたい状況がよくあります。
その場合は以下のように、複数の条件分岐を組み合わせると複雑な処理を行うことができます。