第2章 読む・くり返す・分ける ・ MISSION 8

ミッション8:for で全行をくり返す(getLastRow)

📋 ミッション一覧

お題

すべての商品の金額(単価 × 数量)を D 列に書こう。商品の数が変わっても動くように、最後の行は getLastRow で調べる。

備品の発注表 - Google スプレッドシート
備品の発注表

練習のため、実行するたびに表は最初の状態に戻ってから動きます(本物のスプレッドシートでは戻りません。スクリプトの変更は Ctrl+Z で戻せることもありますが、まとめては戻せません)。

Apps Script無題のプロジェクトデプロイ ▾
function writeAmounts() {
const sheet = SpreadsheetApp.getActiveSheet();
const lastRow = sheet.();
for (let row = ; row <= lastRow; row++) {
const price = sheet.getRange(row, 2).getValue();
const quantity = sheet.getRange(row, 3).getValue();
sheet.getRange(row, ).setValue(price * quantity);
}
}
Ctrl+S: 保存 ・ Ctrl+R: 実行(エディタ) ・ F5: 開き直す

第2章 ・ MISSION 8

for で全行をくり返す(getLastRow)

すべての商品の金額(単価 × 数量)を D 列に書こう。商品の数が変わっても動くように、最後の行は getLastRow で調べる。

いま
ゴール

コードの読み方

const lastRow = sheet.getLastRow();
値が入っている最後の行の番号を調べる。
for (let row = 2; row <= lastRow; row++) {
row を 2 から lastRow まで1ずつ増やしながら、{ } の中をくり返す。
sheet.getRange(row, 2).getValue();
row 行目・2 列目(B 列)を読む。
sheet.getRange(row, 4).setValue(price * quantity);
row 行目の D 列に金額を書く。

for (let row = 2; row <= lastRow; row++) で、row が 2, 3, 4 … と1ずつ増えながら中をくり返す。getRange(row, 4) の row が行番号になる。getLastRow() で最後の行を調べれば、商品が増えても直さずに使える。

GAS の始め方とよく使う書き方は、記事にまとめています。GAS とは? 始め方とよく使う書き方

書いたコードは、このページの中の隔離した場所で動きます。ページの外やほかのサイトには届きません。

※ Google スプレッドシートと Apps Script の挙動を模擬的に表現したものであり、本来の挙動と一部異なる可能性があります。

※ Google スプレッドシートは Google LLC の商標です。当サイトは Google とは関係ありません。