この記事では、GAS(Google Apps Script)でForループを使ってセルの値を取得する方法を掲載しています。
とてもシンプルな内容で、対象者は「猫が好きなGAS入門者」です。「ねこあつめアプリ」を題材に記事を書いています。
GASサンプル集に戻る
メインメニューに戻る
これからプログラミングを始める方へ
基本情報技術者へ
自己紹介
まず、前回の復習を軽く行います。
このようなスプレッドシートで、セルA1からC3までの範囲を出力するコードを書きました。
function myFunction() {
const ss=SpreadsheetApp.getActiveSheet();
const mikke=ss.getRange('A1:C3').getValues(); //←ここをgetValue「s」と複数形に
console.log(mikke);
}
今回の内容に入る前に、ねこあつめ画像で癒されます。
では、今回の内容に入ります。
スプレッドシートの「ねこあつめ」のおともだちに、新しいコ達を追加しました。
一番左にあるA列の最初の行はタイトルですが、その下は、
「2行目 ヘキサにゃん」
「3行目 みっけ」
「4行目 サビガー」
「5行目 とらきち」
となっています。
この2行目から5行目までの猫たちの名前をForループを使って取り出します。
最終行5行目は、今後新しいねこ仲間達を追加しても使えるように、最終行を、
lastRow=ss.getLastRow();
と書いて取得しています。
このスプレッドシートが5行なので「5」が求まります。
function myFunction() {
const ss=SpreadsheetApp.getActiveSheet();
let lastRow=ss.getLastRow();//最終行を取得
console.log(lastRow); //取得した行をログ表示
}
何かの処理をしたらすぐにログ出力をする癖を付けておくと、エラーに太刀打ち出来るねこさんに慣れるかもしれません。
では、いよいよループに入ります。
ループは
「初期値 ; どこまでおっきくするか ; 増分」
「初期値 ; どこまでちっちゃくするか ; 減り分」
などと書くので、この場合は、
「2;最後の行;1」
となり、
「2から始める:最後の行まで:1行ずつ増える」
と読み替えられれます。
この時行を、「2行目」、「3行目」、「4行目」、「5行目」と1行ずつ増やしていくのに使う変数に、慣習的に「i」などの変数を使います。
Aやbでもよくね、って思われる方もいらっしゃると思いますが、これは他の言語でも同じようにiなど使うので、これが出て来たら「ループなんだな」って押さえておくと宜しいかと思います。
では、コードを書いていきます。
(先程のlastRow=5のログは確認出来たので消しました。)
function myFunction() {
const ss=SpreadsheetApp.getActiveSheet();
let lastRow=ss.getLastRow();//最終行を取得
//ループでねこちゃん達の名前を出力
for(let i=2;i<=lastRow;i++){
console.log(ss.getRange(i,1).getValue());
}
}
実行します。
無事に、猫たちの名前が取り出せました(=^x^=)
ご精読ありがとにゃん(=^x^=)
参考記事:【初心者向けGAS】for文を使ったスプレッドシートの繰り返しの超基本
■参考文献の紹介■
初めてGASを学ぶ方向け。
スプレッドシートの基本的な使い方からGASのベースとなるJavaScriptの基礎文法、GASでの初歩的なプログラミングを学べます。
GASに少し慣れて来たら、基礎固めとリファレンスとしてこの本を通してじっくり学べます。