Excel VBAしか知らない私が、Excel Scriptを独学(2)
VBAしか知らない私でも Excel Scriptを習得できるのか。Microsoftの Office スクリプト ドキュメント や チュートリアル を参考にしながら Excel Script について書いていきます。
今回は、条件分岐をやりたいんだけど、Excel Script 以外の内容は 本当によくわかるJavaScriptの教科書 を参考に書いていこうと思います。
四則演算子
条件分岐の前に四則演算について書いておきます。四則演算とは、足し算、引き算、掛け算、割り算のこと。Excel Script では次のように書いて計算します。
「A + B」 足し算(加算)
「A - B」 引き算(減算)
「A * B」 掛け算(乗算)
「A / B」 割り算(除算)
「A % B」 割り算の余り
function main(workbook: ExcelScript.Workbook)
{
let WS = workbook.getActiveWorksheet();
let a = 10; let b = 3;
let c = "ABC";
WS.getRange("A1").setValue(a + b); //足し算
WS.getRange("B1").setValue(a + c); //文字列の連結
}
セル A1 に「13」、セル B1 に「10ABC」を記入します
Excel Scriptでは文字列を繋ぐ場合も「+」を使うんだね。
条件分岐(if)
if ( 条件 ) { 条件がtrueのときの処理 } else { 条件がfalseのときの処理 }
function main(workbook: ExcelScript.Workbook)
{
let WS = workbook.getActiveWorksheet();
let a = WS.getRange("A1").getValue();
let b = WS.getRange("B1").getValue();
if (a === b) {
WS.getRange("A2").setValue("セルA1もB1も " + a + " です");
} else {
WS.getRange("A2").setValue("セルA1とB1は同じではありません");
}
}
セル A1 と B1 が等しければ「セルA1もB1も(セル A1 の値)です」、等しくなければ「セルA1とB1は同じではありません」をセル A2 に記入します
VBAの If ように Then や End If の記述は不要で処理は { } 内に書くんだね。条件式の === は比較演算子だ。VBAのように a = b にしちゃうと変数 a に b の値が入るだけで比較してくれないし、エラーにもならないから注意が必要だよ。
比較演算子
「A > B」 AはBより大きい
「A < B」 AよりBは小さい
「A >= B」 AはB以上
「A <= B」 AはB以下
「A === B」 AとBは等しい
「A !== B」 AとBは等しくない
function main(workbook: ExcelScript.Workbook)
{
let WS = workbook.getActiveWorksheet();
let a = WS.getRange("A1").getValue();
let b = ""
if (a % 2 === 0){
b = "偶数";
} else {
b = "奇数";
}
WS.getRange("A2").setValue(a + "は" + b + "です");
}
セル A1 の数値を2で割って余りが 0 なら「偶数」、そうでなければ「奇数」を変数 b にセットし、セル A2 に結果を記入します
VBAにはない演算子「%」の使い方の一例だね。
論理演算子
条件1と条件2の両方が真(true)とか、条件1または条件2が真のように、複数条件で評価することを論理評価と言い、Excel Script では次のような論理演算子で書きます。
「A && B」 A かつ B
「A || B」 A または B
function main(workbook: ExcelScript.Workbook)
{
let WS = workbook.getActiveWorksheet();
let a = WS.getRange("A1").getValue();
let RB1 = WS.getRange("B1");
if ((a >= 50) && (a < 100)) {
RB1.setValue("'=50以上100未満");
} else {
RB1.setValue("")
}
}
セル A1 の値が50以上かつ100未満の場合に、セル B1 に「=50以上100未満」を記入する
VBA の「And」が「&&」、「Or」が「||」ですね。「|」はなんて読むのでしょか?キーボード Shift +「¥」で入力できるよ。
次回は...
条件分岐ときたら、次は繰り返し処理だな。
この記事が気に入ったらサポートをしてみませんか?