GAS(Google Apps Script)を始めたてで、
次につまずきやすいポイントがこのあたりです。
- 同じ処理を何回もくり返したい(反復)
- データをたくさん扱いたい(配列)
-
for文の書き方がよく分からない -
[]やarray[i]の意味がごちゃごちゃになる
この記事では、
- 反復(for)と配列のイメージをしっかりつかむ
- 日常生活で絶対にありそうな 5つのサンプルで練習
という流れで進めます。
1. 反復(くり返し)
「反復」は、
同じ処理を何回も、まとめて自動でやってくれる仕組みです。
🧠 イメージは「○回くり返す」
日常生活だと、こんな場面です。
- 腕立て伏せを 10回くり返す
- 1ページ目から10ページ目まで 順番に読む
- 1日目〜7日目までの歩数を 順番にチェックする
プログラミングでは、これを for 文で書きます。
🔁 基本の for 文
for (let i = 0; i < 5; i++) {
Logger.log(i);
}
読み下し:
-
let i = 0;
→ カウンター(数えるための変数)を 0 からスタート -
i < 5;
→ i が 5 未満のあいだ、くり返す(0,1,2,3,4 の5回) -
i++
→ 1回終わるごとに i を 1 ずつ増やす
👉 イメージとしては、
「i を 0 から始めて、4 になるまで 1 ずつ増やしながら、
そのたびに中身{ ... }を実行する」
と覚えればOKです。
2. 配列(ならべて持つ)
「配列」は、
同じ種類のデータを、1つのまとまりとして並べて持つ箱です。
📦 日常イメージ
- 買い物リスト
→["卵", "牛乳", "パン"] - 1週間の歩数
→[8200, 9500, 7000, 12000, 4000, 6000, 8000] - 好きな飲み物リスト
→["コーヒー", "お茶", "水"]
🔢 配列の基本
const fruits = ["りんご", "バナナ", "みかん"];
Logger.log(fruits[0]); // りんご
Logger.log(fruits[1]); // バナナ
Logger.log(fruits[2]); // みかん
ポイント:
-
配列は
[]で作る -
番号(インデックス)は 0 からスタート
- 最初の要素:
[0] - 2番目:
[1]
- 最初の要素:
-
要素の数は
fruits.lengthで分かる
🔁 配列 × 反復
配列は、反復(for)とセットで使う場面が多いです。
const fruits = ["りんご", "バナナ", "みかん"];
for (let i = 0; i < fruits.length; i++) {
Logger.log(fruits[i]);
}
3. コメントだけで書く「日本語アルゴリズム」
ここでは、あえて コードを書かずに日本語だけ にします。
「このコメントをヒントに、自分で GAS コードを書いてください」
という使い方を想定しています。
🧪 サンプル①:1週間の歩数合計を出す(コメント版)
function sumSteps()
// ① 1週間分の歩数を配列で用意する(例:[8200, 9500, 7000, 12000, 4000, 6000, 8000])
// ② 合計を入れるための変数を 0 で用意する
// ③ 配列の要素を先頭から順番に取り出して、合計に足していく
// ④ 最後に「1週間の合計歩数は ○○ 歩です」と表示する
🛒 サンプル②:買い物リストを1行ずつ表示(コメント版)
function showShoppingList()
// ① 買いたいものを配列で用意する(例:["卵", "牛乳", "パン"])
// ② 配列の先頭から順番に1つずつ取り出す
// ③ 取り出したものを Logger.log で表示する(「買うもの:卵」のように)
🎬 サンプル③:映画3本の合計視聴時間(コメント版)
function movieTime()
// ① 映画ごとの再生時間(分)を配列で用意する(例:[120, 95, 135])
// ② 合計時間を入れる変数を 0 で用意する
// ③ 配列の要素を順番に足していき、合計時間を計算する
// ④ 合計時間が 300 分以上なら「見すぎ注意!」と表示する
// ⑤ そうでなければ「ちょうどいい映画デー」と表示する
📚 サンプル④:今日やるタスクを番号付きで表示(コメント版)
function showTasks()
// ① 今日やるタスクを配列で用意する(例:["メールチェック", "資料作成", "ミーティング"])
// ② 最初のタスクは「1. メールチェック」のように、番号をつけて表示したい
// ③ 配列を先頭から順番に回しながら、
// 「(番号). (タスク名)」の形式で Logger.log に出力する
📈 サンプル⑤:テストの平均点を出す(コメント版)
function averageScore()
// ① テストの点数を配列で用意する(例:[70, 85, 90, 60])
// ② 合計点を入れる変数を 0 で用意する
// ③ 配列の要素を順番に足していき、合計点を計算する
// ④ 平均点 = 合計点 ÷ 配列の要素数 で計算する
// ⑤ 平均点が 80 点以上なら「よくできました!」と表示する
// ⑥ そうでなければ「あと少しがんばろう」と表示する
4. 回答コード(翻訳結果)
ここからは、上記の日本語コメントを
そのまま GASコードに変換した回答例 です。
🧪 サンプル①:1週間の歩数合計を出す
function sumSteps() {
const stepsArray = [8200, 9500, 7000, 12000, 4000, 6000, 8000]; // 1週間分
let total = 0;
for (let i = 0; i < stepsArray.length; i++) {
total = total + stepsArray[i];
}
Logger.log("1週間の合計歩数は " + total + " 歩です");
}
🛒 サンプル②:買い物リストを1行ずつ表示
function showShoppingList() {
const items = ["卵", "牛乳", "パン"];
for (let i = 0; i < items.length; i++) {
Logger.log("買うもの:" + items[i]);
}
}
🎬 サンプル③:映画3本の合計視聴時間
function movieTime() {
const times = [120, 95, 135]; // 分
let total = 0;
for (let i = 0; i < times.length; i++) {
total = total + times[i];
}
Logger.log("合計視聴時間:" + total + "分");
if (total >= 300) {
Logger.log("🎬 見すぎ注意!");
} else {
Logger.log("😊 ちょうどいい映画デー");
}
}
📚 サンプル④:今日やるタスクを番号付きで表示
function showTasks() {
const tasks = ["メールチェック", "資料作成", "ミーティング"];
for (let i = 0; i < tasks.length; i++) {
const number = i + 1; // 0スタートなので +1 して表示
Logger.log(number + ". " + tasks[i]);
}
}
📈 サンプル⑤:テストの平均点を出す
function averageScore() {
const scores = [70, 85, 90, 60];
let total = 0;
for (let i = 0; i < scores.length; i++) {
total = total + scores[i];
}
const average = total / scores.length;
Logger.log("平均点は " + average + " 点です");
if (average >= 80) {
Logger.log("📘 よくできました!");
} else {
Logger.log("📗 あと少しがんばろう");
}
}
5. まとめ
- 反復(for)は「○回くり返す」を自動化するしくみ
- 配列は「同じ種類のデータをならべて持つ箱」
- 配列と for はセットで使う場面が多い
- まずは 日常の数字(歩数・買い物・映画・タスク・点数) を題材にして練習するのがおすすめ