こんにちは、ばばーるです。
前回のおさらい
前回は指定されたセルの範囲にアクセスする方法の4つをご紹介しました。
- getRange(Integer row, Integer column): 指定のセルを返す。
- getRange(Integer row, Integer column, Integer numRows): 指定のセルから指定した行数のセルの範囲を返す。
- getRange(Integer row, Integer column, Integer numRows, Integer numColumns): 指定のセルから指定した行数と列数のセルの範囲を返す。
- getRange(String a1Notation): A1とかA1:C3のスプレッドシートの表記で指定された範囲を返します。
今回はその範囲を取得するのにfor文とその使用方法をご紹介します。
for文とはどんな感じ?
for文は以下のスタイルで実行する式を回します。
for(初期値; 条件式; 変化式){
実行する式
}

この説明では分かりません。

(なぜ急に敬語?)
実際に使ってみよう。
例えば、以下の様なスプレッドシートがあったとします。

今からスプレッドシートにアクセスしてセルA1、A2、A3の値をログ出力します。
function myFunction() {
const ss=SpreadsheetApp.getActiveSheet(); //1行目
const Lr=ss.getLastRow(); //2行目
const values=ss.getRange(1,1,Lr,1).getValues(); //3行目
for(let i=0;i<Lr;i++){ //4行目
Logger.log(values[i][0]); //5行目
} //6行目
}
1行目:SpreadsheetApp.getActiveSheet()でアクティブなスプレッドシートを取得する。
2行目:getLastRow()でスプレッドシート上の現在データ行数(3)を取得する。
3行目:getRange().getValues()で範囲を指定してセルの値を取得する。getRangeでは1行目、1列目のセル(A1)から範囲が始まり、3行(Lr)、1列を指定している。
4行目:i=0 iの初期値を0に設定する。
i<Lr for文が何回繰り返されるかを設定する。今回はLrまで繰り返す。
i++ iを1ずつ増加させる。
5行目: セル(1行、1列、3行分、1列分)のデータをiが0から2になるまで、ログ出力する。

う〜ん。
説明を読んだだけではわからん。

スクリプトを実行して、もう一度説明文を読んでみて。
実行してみましょう。実行すると以下の様なログが出力されます。


あっ!混乱している箇所がわかった!!!
セルのLrとはは1から数えはじめているのに、
ログ出力するときは0から数えはじめているところだ。

そうそう。
スプレッドシートのセルは1から数え始めるけど
配列は0から数えはじめるよ。

ん?
配列ってなあに?

次回は配列について説明しよう。
大丈夫。そんなに難しくないよ。

はい。
(不安だ…。)
まとめ
今回はfor文でセルの値を取得する方法をご紹介しました。
for(初期値; 条件式; 変化式){
実行する式
}
for文の例文:i=0からLr(3行目まで)iを1ずつ増加させて、ログ出力を繰り返す。
for(let i=0;i<Lr;i++){ //4行目
Logger.log(values[i][0]); //5行目
} //6行目
次回は配列とgetValue(s)をご紹介します。
コメント
[…] Google Apps Script for文でセルの値を取得するfor文は反復処理を行うための構文… […]
[…] Google Apps Script for文でセルの値を取得するfor文は反復処理を行うための構文… Google Apps Script スプレッドシートのシートにアクセスする方法スプレッドシートのシートにアクセスする方法をご紹介します。 getActiveSheet(): アクティブなシートへアクセスできる getSheetByName(name): シートnameへアクセスできる getSheets(): シートの番号からアクセスするideallifebody.com2020.11.29 […]
[…] Google Apps Script for文でセルの値を取得するfor文は反復処理を行うための構文… Google Apps Script スポンサーリンク シェアする Twitter Facebook はてブ Pocket LINE コピー ばばーるをフォローする ばばーる Google Apps Scriptでできること […]