見出し画像

OfficeScriptsで名言ボットを作ってみた⑦ 条件分岐をしたい🙂if文

こんにちは。aliceです。

OfficeScripts初心者が名言ボットを作ってみたシリーズ。はじめてのOfficeScripts。

OfficeScriptsでif文を使って条件分岐をします。for文とif文を使えれば何でも来いですね!(そうなのか?)

画像4

OfficeScriptsとPowerAutomateで名言ボットを作りました。(OfficeScriptsの使用にはweb版のExcelとライセンスが必要です。)

前回はfor文でループにしました。

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
 let range = sheet.getUsedRange();
 let rangeValues = range.getValues();
 let lastRow = range.getRowCount();
 for (let i = 1; i <= lastRow; i++) {
   console.log(i);
 }
}こ

今回はif文で条件分岐をします。

1 if文

D列が空欄だったら「TRUE」を入れるという処理をしていきます。

画像1


1 if文

○○だったら××をするというときはif文を使います。

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

D列が空欄だったら「TRUE」を入れるのですが、とりあえず変数iの値を出力してみます。

画像1

if (rangeValues[i][3] === "") {
     console.log(i);
}


まずは「rangeValues[i][3] === ""」のところ

先日のgetValueメソッド

指定した範囲の生の値を表します。 返されるデータの型は、文字列、数値、ブール値のいずれかになります。 エラーが含まれているセルは、エラー文字列を返します。 範囲に複数のセルが含まれている場合、最初のセルのデータ (行インデックス 0、列インデックス 0 で表されます) が返されます。

getValuesメソッドも配列を返しているので最初のセルのデータは行インデックス0、列インデックス0になります。

getvalues()[行番号][列番号]なので

行番号:i(ループカウンター)

列番号:3(A列:0、B列:1、C列:2、D列:3)になります。

rangeValues[i][3] === ""

これでD列の値(を順番にみていって)空欄だったらとなります。

===は等しいときの比較演算子です。


何で今更getValuesメソッドの話なの??というのは4行目の 

let rangeValues = range.getValues();

これです。

ここで rangeValuesにgetValuesメソッドを使って値を格納しています。


長くなりましたがここで実行。

画像4

出力結果を見ると1列目(D2セル)にはTRUEが入っているので「1」は出力されていないですね。

無事できた。良かった。

エラーが発生していますがとりあえず飛ばします。

ということでif文でした。

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
 let range = sheet.getUsedRange();
 let rangeValues = range.getValues();
 let lastRow = range.getRowCount();
 for (let i = 1; i <= lastRow; i++) {
   if (rangeValues[i][3] === "") {
     console.log(i);
   }
 }
}

2 今日のまとめ

・条件分岐にはif文を使う


3 おすすめリンク集

type scriptsの比較演算子


条件分岐をするif文の使い方の超基本(if文もGASと同じだと思います)


お疲れさまでした!

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