forEachの使い方をGASでマスター!初心者のための徹底解説


GASのforEachの使い方
GAS(Google Apps Script)のforEachは、配列を便利に操作するためのメソッドだ。
基本的なforEachの使い方
まずは基本から。
forEachは配列の各要素に対して、指定した処理を一つ一つ順番に実行するんだ。
const numbers = [1, 2, 3, 4, 5];
numbers.forEach(function(number) {
Logger.log(number);
});
このコードでは、numbersという配列の各要素をログに出力している。
実行すると、次のようなログが出るはずさ。
1
2
3
4
5
indexやアロー関数を使ったforEach
GASのforEachでは、インデックスも利用できる。
const fruits = ['apple', 'banana', 'cherry'];
fruits.forEach((fruit, index) => {
Logger.log(index + ': ' + fruit);
});
ここでは、アロー関数と一緒に使ってインデックスを出力している。
実行すると、次のようなログが出るはずさ。
0: apple
1: banana
2: cherry

GASのforEachのループからスキップ・抜ける方法
たまにさ、GASのforEachのループでスキップしたり、抜けたりしたいよな?
forEachでスキップする
特定の条件でスキップしたい場合、continueは使えないけど工夫次第で似たような動作ができるんだ。
const numbers = [1, 2, 3, 4, 5];
numbers.forEach((number) => {
if (number === 3) return; // 3をスキップ
Logger.log(number);
});
この場合、「3」だけがログに出力されないようになっている。
実行すると、次のようなログが出るはずさ。
1
2
4
5
forEachを途中で抜ける
しかし、途中で抜ける(break)ことはできない!
スクリプトの見直しが必要だ。for
文やsomeメソッドの使用を検討しよう。
GASのforEachを二次元配列で使う方法
二次元配列の場合でもforEachは強力だ。
二次元配列を含むデータでは、二重にforEachを効かせるといい。
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
matrix.forEach(row => {
row.forEach(value => {
Logger.log(value);
});
});
各要素が順番に出力されることで、二次元配列を簡単に扱える。
実行すると、次のようなログが出るはずさ。
1
2
3
4
5
6
7
8
9

応用編:GASで二次元配列や連想配列を使ったforEach
応用編まで駆け抜けるぞ!
スプレッドシートのデータを取得し、操作する際にも使える。getRangeと配列を組み合わせよう。
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const range = sheet.getRange('A1:C3');
const values = range.getValues();
values.forEach(row => {
row.forEach(value => {
Logger.log(value);
});
});
スプレッドシートのデータを配列形式で取得し、forEachでそれぞれの値を出力している。

練習問題:GASのforEachを試してみよう
以下のスクリプトを完成させて、1から10までの偶数だけをログに出力してみてください。
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// ここにforeachを使った処理を書く
解答と解説
完成したスクリプトはこちらです。
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
numbers.forEach((number) => {
if (number % 2 === 0) {
Logger.log(number); // 偶数のときログに出力
}
});
解説:
– numbers
という配列から始め、forEach
メソッドを使用し、配列の各要素にアクセスしています。
– number % 2 === 0
で偶数を判断し、条件が一致する場合にのみLogger.log
で出力しています。