コンテンツにスキップ

反復処理(ループ処理)

ここではオフィススクリプトを使って、ループ処理を実装する方法をサンプルコードと併せて解説します。

反復可能なオブジェクトの各要素について処理を実装する場合は、for...of文を使用します。

配列内の各要素を変数として受け取ることができます。

for...ofを使ったサンプル
const fruits = ['リンゴ', 'ミカン', 'バナナ'];
// 各要素に対して反復処理
for (const one of fruits) {
console.log(one);
}
実行結果
リンゴ
ミカン
バナナ

次にfor...in文を使ったループ処理です。

for...ofとは違い、要素ではなくインデックス(オブジェクトのプロパティ名)を変数として受け取ります。

for...inを使ったサンプル
const sports = ['サッカー', '野球', 'バスケ'];
// インデックスを使って反復処理
for (const i in sports) {
console.log(sports[i]);
}
実行結果
サッカー
野球
バスケ

通常の for 文を使ったループ処理

Section titled “通常の for 文を使ったループ処理”

最後に他言語でもよく利用される、通常のfor文を使ったループ処理です。

forを使ったサンプル
const fruits = ['リンゴ', 'ミカン', 'バナナ'];
// 配列の長さを使って反復処理
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
実行結果
リンゴ
ミカン
バナナ

for文の処理中に、強制的に次のループに移行したい場合は、continueを使用します。

また、forループを中断する場合はbreakを使用します。

continueと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]);
}
実行結果
スキップしました
スキップしました
バスケ
卓球

配列(Array)はforEachメソッドを持ちます。

forEachを使って、各要素に対して処理を実行することができます。コールバック関数の 1 番目の引数に要素、2 番目の引数にインデックスが渡されます。

Office スクリプトでは、配列のメソッドに渡すコールバック関数にはアロー関数(() => {})のみ使用できます。

forEachを使ったサンプル
const fruits = ['リンゴ', 'ミカン', 'バナナ'];
// 各要素に対して反復処理
fruits.forEach((fruit, i) => {
console.log(`${i + 1}個目のフルーツは${fruit}です`);
});
実行結果
1個目のフルーツはリンゴです
2個目のフルーツはミカンです
3個目のフルーツはバナナです

コールバック関数の 2 番目の引数は省略可能です。

なお、forEachの処理中にbreakやcontinueは使えません。途中でループを中断したい場合は、for...ofや通常のfor文を使用してください。

while文を使ったループ処理の実装方法を解説します。

for文は配列などの反復可能なオブジェクトに対して使用することが多いのに対し、while 文は条件を満たしている間、ループ処理を繰り返す場合に適しています。 繰り返す回数があらかじめ決まっていない処理に便利です。

whileを使ったサンプル
let count = 0;
while (count < 1000) {
count++;
}
console.log(count);
実行結果
1000