GASでスプレッドシートからの値取得には1つの方法で問題なし!【初心者向き】
GASでスプレッドシートから、値を取得する方法を知りたい!
今回はこのような悩みを抱えている方にむけて、記事を書いています。
GASでスプレッドシートと連携するのは、必須かと思います!
この記事では、GASでスプレッドシートから値を取得するときに、一番使うやり方、使いやすいやり方、を紹介していきます。
私は、700名規模の会社の業務自動化を行っています。その中でGASはとても重宝しています。
今回はその中で「この方法がつかいやすい!」と思った内容をもとに紹介していきます。
ぜひ、最後まで読んでいってください!
目次(クリックで読みたい部分にジャンプできます)
値を取得するには、この方法! 〜単一セル〜
まず、一番基本的な、一つのセルから値を取得する方法について解説していきます。
今回は、以下のような(1行目1列目)に書かれているセルの値を取得するとします。
GASに、スプレッドシートを指定するコードを書きましょう。
function myfunction() {
const sheet = SpreadsheetApp.getActiveSpreadsheet.getSheetByName("テスト");
}
スプレッドシートの指定の方法を詳しく知りたい方は、以下の記事を参考にしてください!
GoogleAppsScript スプレッドシート連携するたった2つの方法 - プロラブ (abyblog.online)
スプレッドシートを指定したら、値を取得しましょう。
単一セルの値を取得するときは、次のように書きます。
let result = sheet.getRange(1,1).getValue();
getRangeの指定の仕方
getRangeの()の中は、(行、列)の順番で書きます。
3行1列目 = getRange( 3, 1 )
1行3列目 = getRange( 1, 3 )
「縦、横」の順番で覚えておくと、覚えやすいですよ!
これで、単一セルの値を取得することはできるようになりました!
次は、複数セルから値を取得する方法を見てきましょう!!
値を取得するには、この方法! 〜複数セル〜
複数セルを取得する方法を解説していきます。
今回は、次のような複数セルがあるデータを取得します。
まず、先ほどと同じように、シートを指定しておいてください。
次に、複数セルを取得していきます。
let result = sheet.getRange(2,1,3,3).getValues();
getRange() 複数セルを指定する
getRange() の()のなかは次のような値を入れます。
getRange( スタートのセルの行 , スタートのセルの列 , 何行分あるか , 何列分あるか )
今回は、3行、3列分の範囲なので、getRange( 2, 1, 3, 3 ) の表記となっている。
実行結果は、次のようになります!
.getValues() だと、行ごとに取得がされます。
for文などを使用することで、データに処理を施すことができるようになるでしょう!
【知ったら得】2次元配列を1次元配列にする方法
getValues() で値を取得すると、2次元配列になります。
例えば、1列のみで取得したい場合に、2次元配列を1次元配列にしたいということがあるかと思います。
そのときには、flat() メソッドを使いましょう。
flat() メソッドを使うことで、全て一つの配列に格納してくれます。
状況に合わせて使ってみてください!!
まとめ
今回は、GASでスプレッドシートから値を取得する方法について解説していきました。
値を取得するためには、スプレッドシートを指定することが不可欠です。
今回紹介した方法以外にも、スプレッドシートを指定する方法はあります。知っておくととっても得なので、ぜひ以下の記事を読んでみてください。