第2章 読む・くり返す・分ける ・ MISSION 8
ミッション8:for で全行をくり返す(getLastRow)
お題
すべての商品の金額(単価 × 数量)を D 列に書こう。商品の数が変わっても動くように、最後の行は getLastRow で調べる。
備品の発注表 - Google スプレッドシート
備品の発注表
ファイル編集表示挿入表示形式データツールヘルプ
A1fx商品
A
B
C
D
1
商品
単価
数量
金額
2
ボールペン
120
20
3
ノート
150
15
4
付箋
200
30
5
クリップ
80
50
6
ホチキス
450
5
7
8
練習のため、実行するたびに表は最初の状態に戻ってから動きます(本物のスプレッドシートでは戻りません。スクリプトの変更は Ctrl+Z で戻せることもありますが、まとめては戻せません)。
Apps Script無題のプロジェクトデプロイ ▾
ファイル +
コード.gs
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 で調べる。
A
B
C
D
1
商品
単価
数量
金額
2
ボールペン
120
20
3
ノート
150
15
4
付箋
200
30
5
クリップ
80
50
6
ホチキス
450
5
7
8
A
B
C
D
1
商品
単価
数量
金額
2
ボールペン
120
20
2400
3
ノート
150
15
2250
4
付箋
200
30
6000
5
クリップ
80
50
4000
6
ホチキス
450
5
2250
7
8
コードの読み方
- 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 とは関係ありません。