【初心者向けGAS】条件分岐をするif文の使い方の超基本

★気に入ったらシェアをお願いします!


みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

初心者向けGoogle Apps Scriptのシリーズとして、Botを作りながらGASプログラミングの基礎の基礎についてお伝えしています。

前回の記事はこちら。

【初心者向けGAS】 for文を使ったスプレッドシートの繰り返しの超基本
初心者向けGoogle Apps Script超入門、GASプログラミングの基本を学んでいきます。今回は、for文を使った繰り返しの超基本。カウント変数、初期化式、条件式、増加式の意味と使い方です。

for文を使った繰り返し処理の基本についてお伝えしました。

さて、今回はもう一つの重要な制御構文についてです。

ということで、Google Apps Scriptで条件分岐をするif文の使い方の超基本、行ってみましょう!

前回のおさらいと今回のお題

題材としているスプレッドシートはこちらです。

スプレッドシートの名言リスト

これに対して、前回以下のようなスクリプトを作成しました。

実行すると以下のようなログ出力が得られます。

GASでスプレッドシートのリストを順番にログ出力

Botのアルゴリズム

ただ、作りたいのはBotなんですよね…。毎回の実行で、こんなに全部送ったら、大変です。

つまり、1回の実行で、1つの名言について、Botとして送りたいわけです。

それで、そのために以下のような方針でスクリプトを改善していきます。

  1. for文を使って上から順に走査していく
  2. 「印」がない名言があれば、送信して「印」をつける
  3. 全てに「印」がついているときは、全ての「印」を消去する

こんなアルゴリズムでBotを作っていきたいと思います。

「印」の付け方

それで、印の付け方なのですが、シートのD列を以下のようにしてみました。

スプレッドシートにif文に使うチェック用の列を追加

つまり、D列の「isSent」列は、基本的には「空文字」としておいて、一度Botとして送信した名言には「TRUE」と入力するようにするのです。

このようにすれば、実行のたびにfor文で2行目から走査して、D列が「空文字」の名言があったら、Botを送信すればよいということになりますよね。

if文の使い方

「D列の値が空文字であれば~する」というように、条件に応じて処理を分岐させたいときにはif文を使います。

書式はこちらです。

if(条件式) {
 // 条件式がtrueだったときの処理
}

んー、わかるような、わからないような…

条件式とは

条件式「成立している」または「成立していない」のどちらか一方の値をとる式です。

条件式は、以下のような比較演算子を使い、成立している場合はtrueという値を、そうでない場合はfalseという値をとります。

比較演算子 意味
=== 等しい
!== 等しくない
< 小さい
<= 以下
>= 以上
> 大きい

ですから、例えば「10 <= 100」はtrueになりますし、「5 === 10」はfalseになります。

文字列の判定と否定の論理演算子

さて、今回の場合ですが、for文で2行目から走査したとして、D列の値が「空文字でなかった」場合に、Botを送信したいということになります。

ですので、普通に書くのであれば

などという条件式になります。

ですが、空文字つまり長さゼロの文字列は暗黙的にfalseというルールがありますので、これを活用すると以下のように書けます。

「!」は条件式の結果を反転する論理演算子と呼ばれる記号です。「ではない」という意味ですね。

!条件式

なお、文字列で言えば、長さが1以上の文字列は暗黙的にtrueというルールもありますので、覚えておくと便利ですよ。

if文による条件分岐を使ったスクリプト

以上を踏まえて、以下のようなスクリプトを作成してみました。

D列を判定して、空文字であればA列の名言をログ出力するというものです。

結果はこちらです。

GASでif文による条件分岐を使ったスクリプトの結果

D列について「TRUE」ではない行についての名言がログ出力されました。

まとめ

以上、Google Apps Scriptで条件分岐をするif文の使い方の超基本についてお伝えしました。

if文の使い方、条件式、また空文字は暗黙的にfalseとなるという点がポイントですね。

次回は、セルに値を入力する方法についてお伝えします。

【初心者向けGAS】スプレッドシートのセルに値を入力する基礎の基礎
初心者向けGoogle App Scriptのシリーズとして、Botを作成していきます。今回は、setValueメソッドを使って、スプレッドシートのセルに値を入力する基本中の基本をお伝えします。

どうぞお楽しみに!

連載目次:超初心者向けGASでBotを作りながら基礎を学ぶ

Google Apps Script(GAS)をはじめるためのメリットは山程ありますが、何を作ったらいいの?と悩んでしまうこともありますよね。そんな時に、おすすめしたいのが「Bot」の作成です。このシリーズでは、超初心者向けにGASでBotを作る方法を題材としながら、GASプログラミングの一通りの流れと書き方について学んでいきます。
  1. 【初心者向けGAS】本当の最初の一歩!スクリプトエディタでプロジェクトを開く
  2. 【初心者向けGAS】はじめてのスクリプトを作成し、保存し、実行する
  3. 【初心者向けGAS】プログラミングに必須の変数の使い方とデータ型について
  4. 【初心者向けGAS】ログを表示するLogger.logの使い方
  5. 【初心者向けGAS】スクリプト実行時の「承認」でびっくりしないために
  6. 【初心者向けGAS】Spreadsheetサービスの「オブジェクト」の基礎の基礎を知ろう
  7. 【初心者向けGAS】スプレッドシートのシートを取得する2つの方法
  8. 【初心者向けGAS】スプレッドシートのセル・セル範囲とその値を取得する方法
  9. 【初心者向けGAS】 for文を使ったスプレッドシートの繰り返しの超基本
  10. 【初心者向けGAS】条件分岐をするif文の使い方の超基本
  11. 【初心者向けGAS】スプレッドシートのセルに値を入力する基礎の基礎
  12. 【初心者向けGAS】条件に応じてループを制御する2つの方法~break文とwhile文~
  13. 【初心者向けGAS】 スプレッドシートのセル範囲を行数・列数を使って取得する

The following two tabs change content below.
1976年こどもの日生まれ。東京板橋区在住。「ITで日本の『働く』の価値を上げる!」をテーマに、VBA&GASの開発、講師、コンサル、執筆本を中心に活動しています。→詳しいプロフィールはコチラ ★ご依頼・ご相談はお気軽にどうぞ!→お問い合わせはコチラ ★フォロー頂ければ嬉しいです。

コメント

  1. ペコ より:

    はじめまして。初心者です。
    【初心者向けGAS】条件分岐をするif文の使い方の超基本 の次の
    「次回は、セルに値を入力する方法についてお伝えします。」の記事はどこにありますでしょうか?