反復処理(ループ処理)
ここではオフィススクリプトを使って、ループ処理を実装する方法をサンプルコードと併せて解説します。
for-of 文を使ったループ処理
Section titled “for-of 文を使ったループ処理”反復可能なオブジェクトの各要素について処理を実装する場合は、for...of文を使用します。
配列内の各要素を変数として受け取ることができます。
const fruits = ['リンゴ', 'ミカン', 'バナナ'];
// 各要素に対して反復処理for (const one of fruits) { console.log(one);}リンゴミカンバナナfor-in 文を使ったループ処理
Section titled “for-in 文を使ったループ処理”次にfor...in文を使ったループ処理です。
for...ofとは違い、要素ではなくインデックス(オブジェクトのプロパティ名)を変数として受け取ります。
const sports = ['サッカー', '野球', 'バスケ'];
// インデックスを使って反復処理for (const i in sports) { console.log(sports[i]);}サッカー野球バスケ通常の for 文を使ったループ処理
Section titled “通常の for 文を使ったループ処理”最後に他言語でもよく利用される、通常のfor文を使ったループ処理です。
const fruits = ['リンゴ', 'ミカン', 'バナナ'];
// 配列の長さを使って反復処理for (let i = 0; i < fruits.length; i++) { console.log(fruits[i]);}リンゴミカンバナナcontinue と break
Section titled “continue と break”for文の処理中に、強制的に次のループに移行したい場合は、continueを使用します。
また、forループを中断する場合はbreakを使用します。
const sports = ['野球', 'サッカー', 'バスケ', '卓球', 'バレー'];
for (let i = 0; i < sports.length; i++) { if (i < 2) { console.log('スキップしました'); continue; } if (i > 3) { break; } console.log(sports[i]);}スキップしましたスキップしましたバスケ卓球forEach メソッド
Section titled “forEach メソッド”配列(Array)はforEachメソッドを持ちます。
forEachを使って、各要素に対して処理を実行することができます。コールバック関数の 1 番目の引数に要素、2 番目の引数にインデックスが渡されます。
Office スクリプトでは、配列のメソッドに渡すコールバック関数にはアロー関数(() => {})のみ使用できます。
const fruits = ['リンゴ', 'ミカン', 'バナナ'];
// 各要素に対して反復処理fruits.forEach((fruit, i) => { console.log(`${i + 1}個目のフルーツは${fruit}です`);});1個目のフルーツはリンゴです2個目のフルーツはミカンです3個目のフルーツはバナナですコールバック関数の 2 番目の引数は省略可能です。
なお、forEachの処理中にbreakやcontinueは使えません。途中でループを中断したい場合は、for...ofや通常のfor文を使用してください。
while 文
Section titled “while 文”while文を使ったループ処理の実装方法を解説します。
for文は配列などの反復可能なオブジェクトに対して使用することが多いのに対し、while 文は条件を満たしている間、ループ処理を繰り返す場合に適しています。 繰り返す回数があらかじめ決まっていない処理に便利です。
let count = 0;while (count < 1000) { count++;}console.log(count);1000