OfficeScripts(オフィススクリプト)でif分を使って条件分岐を作成する方法を紹介します。
単一条件の条件分岐から複数条件の条件分岐やANDやORを用いた条件式作成についても解説しています。
ドノ説明用スクリプト内の値や変数名は例が入っていますので状況に応じて変更して使用してください。
if文による条件分岐
if文の使い方
if文による条件分岐は下記のように記述します。()の中には条件式を入力して、{}には条件に真(true)の場合の処理と偽(false)の場合の処理を記述します。
if (条件式) {条件が真の処理} else {条件が偽の処理}
if (条件式) {条件が真の処理} else {条件が偽の処理}if文の使用例
使用方法の例として下記の条件分岐を行うスクリプトは下記となります。
条件:値が100以上のときは”OK”、100未満のときは”NG”とする。(入力値の例は300)
function main(workbook: ExcelScript.Workbook) {
//判定する値を設定
let value = 300;
// if分による条件分岐
if (value >= 100) {
console.log('OK'); //trueの処理
} else {
console.log('NG'); //falseの処理
}
}上記を実行すると結果はこうなります。


条件:セルA1の値が100以上のときは”OK”、100未満のときは”NG”とセルB1に出力する。
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
let sheet = workbook.getActiveWorksheet();
// セルA1の値を取得
let value = sheet.getRange("A1").getValue() as number;
// if分による条件分岐
if (value >= 100) {
sheet.getRange("B1").setValue("OK"); //trueの処理
} else {
sheet.getRange("B1").setValue("NG"); //falseの処理
}
}上記を実行すると結果はこうなります。


複数条件の設定(AND・OR・入れ子)
複数条件の設定(AND条件, OR条件)
IF文の条件文は&&(and)と||(or) を使用することで複数条件を設定することができます。
&&(and):条件1と条件2の両方が真の場合、真となる||(or) :条件1か条件2のどちらかが真の場合、真となる
if (条件式1 && 条件式2) {条件が真の処理} else {条件が偽の処理}if (条件式1 || 条件式2) {条件が真の処理} else {条件が偽の処理}


条件式の中で and と or を組み合わせ使うこともできます
if文の入れ子・ネスト
if文の中にさらにif文を入れて複数回の条件分岐を行うことも可能です。
下記のようにif分の{}の中にif文をさらに記載することで条件分岐を増やすことができます。ここでは条件2までしか記載していませんがさらに追加することも可能です。
if (条件式1) {
if (条件式2) {
条件式1と条件式2のすべてがtrueの場合の処理
} else {
条件式1がtrue,条件式2がfalseの場合の処理
} else {
条件式1がfalseの場合の処理
}
}イメージとしては下図のようになります。


また、下記のようにelseのあとの{}の中にif文を追加することも可能です。これにより条件式がfalse(偽)だったときの条件を増やしていくことができます。
if (条件式1) {
条件式1がtrueの場合の処理
} else {
if (条件式2) {
条件式1がfalse,条件式2がtrueの場合の処理
} else {
条件式1と条件式2がfalseの場合の処理
}
}イメージとしては下図のようになります。


比較演算子・論理演算子
if文の条件式の中で等しい・等しくない・以上・以下など様々な比較演算子を利用すると思います。ざっと下記にまとめてますので参考にしてみてください。
| 比較演算子 | 意味 |
|---|---|
| == | 等しい |
| != | 等しくない |
| > | より大きい |
| < | 未満 |
| >= | 以上 |
| <= | 以下 |
| && | 論理積(AND) |
| || | 論理和(OR) |
| ! | 論理否定(NOT) |
if 空白の条件分岐(もしセルが空白なら)
if文の条件式で「セルが空白」または「セルが空白ではない」という条件を表現する場合もあると思います。その書き方を紹介します。
セルが空白の条件式
まずは「値がnull」という条件式についてですが、セルの値 == “” と記載すればOKです。
下記はセルA1が空白ならば’空白’と出力して、それ以外は’空白’ではないと出力する例です。
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
let sheet = workbook.getActiveWorksheet();
//指定セルが空白の条件
if (sheet.getRange("A1").getValue() == "") {
console.log('OK'); //trueの処理
} else {
console.log('NG'); //falseの処理
}
}セルが空白ではないの条件式
次に「セルが空白ではない」という条件を表現する場合についてですが、セルの値 <> “” と記載すればOKです。
下記はセルA1が空白ならば’空白’と出力して、それ以外は’空白’ではないと出力する例です。
function main(workbook: ExcelScript.Workbook) {
// アクティブなワークシートを取得
let sheet = workbook.getActiveWorksheet();
//指定セルが空白の条件
if (sheet.getRange("A1").getValue() != "") {
console.log('OK'); //trueの処理
} else {
console.log('NG'); //falseの処理
}
}オフィススクリプトを書籍で学習したいという方はコチラがオススメです。

コメント