LEDIAMIX JOURNAL
リディアミックス ジャーナル
GASの使い方(配列編)
この記事は投稿から一年以上経過しています。
前回までで、getRangeを使ったセルの値取得やセットの方法を説明しました。
今回はgetRangeで扱う配列について説明していきます。
配列とは
まず配列についてです。
理数系が苦手だった人には苦い思い出かもしれませんが、中学や高校でみなさん習ったあの配列と同じです!
簡単に言ってしまえば、複数の値をセットにして一つのデータにしたものです。
GASではこのように表現します。
var arg = [‘おはよう’, ‘こんにちは’, ‘こんばんは’];
おはよう、こんにちは、こんばんは、というデータをargの中にセットで入れている状態ですね。
では、一つ一つ取り出すにはどうしたらいいかですが、
arg[0]で’おはよう’、arg[1]で’こんにちは’というように、最初が0番目から始まり、あとは連番で値を呼び出したり、格納したりします。
ここまでが配列の基本ですね。
GASの配列
GASで取り扱う配列も基本的には全く同じです。
ただ、セルに当てはめられた値がどのように配列に格納されるのかを知っていれば、
さっ!とコードを書くことができます。
複数のセルをgetValuesで取得してくるとどのような配列になるかがわかれば、
配列を操作するときもセットするときも、どのような配列操作をすべきかが理解できます。
A | B | C | D | E | |
1 | 1 | 山田 | ヤマダ | yamada | 福岡 |
2 | 2 | 佐藤 | サトウ | sato | 東京 |
3 | 3 | 田中 | タナカ | tanaka | 大阪 |
4 | 4 | 小林 | コバヤシ | kobayashi | 名古屋 |
単一のセルを取得
var val = ss.getRange(C1).getValue();
※ssは「SpreadsheetApp.getActiveSpreadsheet()」のようにシートへのアクセスです。
→val = ヤマダ;
複数(1行)のセルを取得
var val = ss.getRange(A1:E1).getValues();
→val = [[1,山田,ヤマダ,yamada,福岡]];
複数(複数行)のセルを取得
var val = ss.getRange(A1:E4).getValues();
→val = [
[1,山田,ヤマダ,yamada,福岡],
[2,佐藤,サトウ,sato,東京],
[3,田中,タナカ,tanaka,大阪],
[4,小林,コバヤシ,kobayashi,名古屋]
];
複数(1列)のセルを取得
var val = ss.getRange(B1:B4).getValues();
→val = [
[山田],
[佐藤],
[田中],
[小林]
];
と、このようになります。
つまりgetValues()で取得した場合、行単位で一つの配列にして、その配列をまとめた配列を取得できる訳ですね。
getValues = 2次元配列になる!と覚えておけばOKです。
では、また次回GASについて説明していきます。