- getValues関数を使って特定範囲のセルの値を取得する方法
- セル単体の値を取得する方法
getValues()
指定範囲のセルの値を取得します。
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
// 指定の範囲の値を取得する
const vales = sheet.getRange(1, 1, 2, 5).getValues()
console.log(vales)
実行結果
[ [ 'りんご', 100, true, 0.1, 5 ], [ 'ばなな', 150, false, 0.2, '' ] ]
公式ドキュメント
https://developers.google.com/apps-script/reference/spreadsheet/range#getValues()
戻り値
セルの値が格納された2次元配列。
スプレッドシートと取得した値の比較
取得した値とスプレッドシートのデータを並べてみると選択範囲がそのまま配列に格納されていることが分かると思います。
セルの表示形式と取得される値
取得される値はセルの表示形式に影響されます。
画像のような場合、見た目は同じ「10%」ですがgetValuesで取得される値は異なります。
- 上のセルは表示形式「パーセント」であるため、小数に変換した「0.1」
- 下のセルは表示形式「書式なしテキスト」であるため、文字列の「10%」
セルの表示形式によっては、意図しない値が取得されることがあるため、getValuesで値を取得する際にはセルに設定されている表示形式に注意する必要があります。
getRangeの使い方
getRangeを使って値を取得する範囲を指定しています。
sheet.getRange(2, 1, 3, 4) // 行, 列, 行数, 列数
範囲指定についてもっと知りたい方は、こちらを参照してください。
getValue()
配列ではなくセル単体の値が欲しい場合はこちらがオススメです
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
// 指定の範囲の値を取得する
const vales = sheet.getRange(1, 1).getValue()
console.log(vales)
実行結果
りんご
公式ドキュメント
https://developers.google.com/apps-script/reference/spreadsheet/range#getvalue
配列の添え字を気にする必要がないので気軽に使えますね!
戻り値
セルの値。
まとめ
以上、getValuesでセルの値を取得する方法でした。
最後まで読んでいただきありがとうございました!
今回紹介したgetValuesは、セルの表示形式に応じて取得される値を適切に変換してくれます。その反面、意図しない値が取得されてしまい、その後の処理でバグを引き起こす原因にもなっています。
値を取得したら、実際に中身を確認して想定通りか確認するようにしましょう。
このブログでは断片的な説明になってしまっていますが、本書は幅広いGASの内容が網羅的に学べる本です。イチから学びたい方は是非読んでみてください。
すでにGASをある程度マスターした方にも辞書的に手元に置いておくと便利です。
GASを使ってスプレッドシートのセルの値を取得する方法をご紹介します。