OfficeScriptsで名言ボットを作ってみた⑦ 条件分岐をしたい🙂if文
こんにちは。aliceです。
OfficeScripts初心者が名言ボットを作ってみたシリーズ。はじめてのOfficeScripts。
OfficeScriptsでif文を使って条件分岐をします。for文とif文を使えれば何でも来いですね!(そうなのか?)
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 if文
○○だったら××をするというときはif文を使います。
if(条件式){
// 条件式がtrueだったときの処理
}
D列が空欄だったら「TRUE」を入れるのですが、とりあえず変数iの値を出力してみます。
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メソッドを使って値を格納しています。
長くなりましたがここで実行。
出力結果を見ると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と同じだと思います)
お疲れさまでした!