見出し画像

【Google Apps Script】条件分岐をするif文


forと同じく、重要な制御構文はifになります。
for文の参考はこちらから閲覧ができます。


if文の使い方


「○○列の値が空文字であれば処理をする」

条件に応じて処理を分岐させたいときにはif文を使います。


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

条件式とは

条件式は「正しいか?」または「正しくないか?」の分岐させる処理です。

====   等しい
!==    等しくない
<      小さい
<=     以下
>=     以上
>      大きい

なので、例えば「 1 <= 100」はtrueになります。
「100 === 10000」ならばfalseになります。

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

○○列の値が「空文字」の場合に、通知したいという場合に使います。

if(sheet.getRange(i,4).getValue() === '') {
      console.log(sheet.getRange(i,1).getValue());
}

空文字、つまり長さがゼロの文字は暗黙的にfalseというルールがあります。

if(!sheet.getRange(i,4).getValue()) {
     console.log(sheet.getRange(i,1).getValue());
}


注意点

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


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

for文と組み合わせて以下のスクリプトを作成を作成します。



サンプルプログラム

function myFunction() {
  //スプレッドシートのID設定
  const spId = '[スプレッドシートID]';
  //スプレッドシートを取得
  let ss = SpreadsheetApp.openById(spId);

  sheet = ss.getSheetByName("シート1");
  const lastRow = sheet.getLastRow();
  for(let i = 1 ; i <= lastRow; i++ ) {
    if(!sheet.getRange(i,4).getValue()) {
      console.log(sheet.getRange(i,1).getValue());
    }
  }
}

スプレッドシートのA列にデータを入れてみます

無題のスプレッドシート-Google-スプレッドシート

実行を押したあとに、下部の実行ログ「1,2,3,4」が表示されます


スプレッドシートA列の値を「+5」してC列に反映するプログラム


サンプルプログラム

function myFunction() {
  //スプレッドシートのID設定
  const spId = '[スプレッドシートID]';
  //スプレッドシートを取得
  let ss = SpreadsheetApp.openById(spId);

  sheet = ss.getSheetByName("シート1");
  const lastRow = sheet.getLastRow();
  for(let i = 1 ; i <= lastRow; i++ ) {
    if(!sheet.getRange(i,4).getValue()) {
      sheet.getRange(i,3).setValue(sheet.getRange(i,1).getValue()+5);
    }
  }
}


実行された後のスプレッドシートの値


もっとGoogleAppsScriptを学びたい人はこの本をおすすめします!





この記事が気に入ったらサポートをしてみませんか?