GASでループを極める
GAS基礎と繰り返し処理の概要
Google Apps Script(GAS)は、Google Workspace のサービスを自動化するための JavaScript ベースのスクリプト言語です。GAS での繰り返し処理は、データの集計やメール送信、スプレッドシートのセル操作など、日常的なタスクを効率化する際に不可欠です。繰り返し処理は主に for文、while文、do-while の3種類で実装され、ループやイテレーションの概念を理解することで、柔軟かつ高速なスクリプトを書くことができます。
GAS でのループは、配列やオブジェクトのプロパティを順に処理する際に頻繁に使われます。例えば、スプレッドシートの行を一行ずつ読み込んで処理する場合、for文が最も直感的です。while文は条件が真である限りループを継続するため、データの終端が不明な場合に便利です。do-while は少なくとも一度は処理を実行したいときに使用します。
for文でのイテレーション
for文は、初期化、条件判定、更新の3つの要素を持つ構文です。GAS で配列を走査する典型的な例を示します。
const numbers = [1, 2, 3, 4, 5];
for (let i = 0; i < numbers.length; i++) {
Logger.log(numbers[i]); // 1 2 3 4 5 が順に出力される
}
上記のコードでは、i をインデックスとして使用し、配列の長さを条件にしています。for文はインデックスが必要な場合に最適で、ループの回数が事前に分かっているときに効率的です。
配列の要素を直接取得したい場合は、ES6 の for...of も利用できます。
for (const value of numbers) {
Logger.log(value); // 1 2 3 4 5 が順に出力される
}
この構文は可読性が高く、インデックスを意識せずにイテレーションできます。
while文とdo-while文の使い分け
while文は「条件が真である限りループを継続する」構文です。データの終端が不明な場合や、外部からの入力を待つ処理に適しています。
let count = 0;
while (count < 5) {
Logger.log(count);
count++;
}
do-while 文は「少なくとも一度はループを実行し、その後条件判定を行う」構文です。ユーザー入力を促すダイアログを表示し、入力が有効になるまで繰り返すケースなどに使われます。
let input;
do {
input = Browser.inputBox('数字を入力してください');
} while (!input || isNaN(input));
while と do-while の主な違いは、条件判定のタイミングです。ループの開始時に条件を確認したい場合は while、ループ本体を必ず実行したい場合は do-while を選択します。
breakとcontinueでループ制御
ループ内で特定の条件を満たしたときに、ループ全体を終了させるには break を使用します。逆に、現在の反復をスキップして次の反復へ移るには continue を使います。
for (let i = 0; i < 10; i++) {
if (i === 3) {
continue; // 3 はスキップ
}
if (i === 8) {
break; // 8 でループ終了
}
Logger.log(i);
}
上記の例では、3 は出力されず、8 でループが終了します。break と continue は、複雑な条件分岐を簡潔に書く際に非常に便利です。
GAS での繰り返し処理は、ループの種類と制御フローを正しく使い分けることで、スクリプトの可読性とパフォーマンスを大幅に向上させます。今回紹介した for文、while文、do-while 文、break、continue を組み合わせて、実際の業務に合わせた自動化スクリプトを作成してみてください。
コメント
コメントを投稿