見出し画像

OfficeScriptsで名言ボットを作ってみた⑬ ループを途中で抜ける🙂break文

こんにちは。aliceです。

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

今日はbreak文を使ってループを途中で抜けてみたいと思います。


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

前回のあらすじ

clearメソッドを使って、セル範囲の値を消してみました。

function main(workbook: ExcelScript.Workbook) {
let sheet = workbook.getActiveWorksheet();
let range = sheet.getUsedRange();
let rangeValues = range.getValues();
let word = "";
let lastRow = range.getRowCount();
for (let i = 1; i <= lastRow; i++) {
  if (rangeValues[i][3] === "") {
    word = "" + rangeValues[i][1];
    sheet.getCell(i, 3).setValue("True");
    if (i >= lastRow - 1) { 
      let address = "D2:D" + lastRow;
      sheet.getRange(address).clear(ExcelScript.ClearApplyTo.contents);
    };
  }
}
}

画像1

これだと一度にどさっとボットを作ってしまうので、1行送ったらループを抜けるという処理をしていきます。


1 break文でループを抜ける

break文を使うとループの途中で繰り返しを抜けることができます。

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
 let range = sheet.getUsedRange();
 let rangeValues = range.getValues();
 let word = "";
 let lastRow = range.getRowCount();
 for (let i = 1; i <= lastRow; i++) {
   if (rangeValues[i][3] === "") {
     word = "" + rangeValues[i][1];
     sheet.getCell(i, 3).setValue("True");
     if (i >= lastRow - 1) {
       let address = "D2:D" + lastRow;
       sheet.getRange(address).clear(ExcelScript.ClearApplyTo.contents);
     };
   break; //←ここに追加
   }
 }
}

実行してみます。

【実行前】

画像3

2つめ(D3セル)まで「TRUE」が入っているので3つめ(D4セル)に「TRUE」が入れば成功です。

【実行後】

画像3

3つめ(D4セル)に「TRUE」が入っています!

console.logでセリフを出力。

画像4

ちゃんと3つめのセリフが入っています。


2 今日のまとめ

・ループを途中で抜けるときはbreak文を使う


3 おすすめサイト

条件に応じてループを制御する2つの方法


お疲れさまでした。

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