いつものようにTwitterをながめていたら良い情報を入手したので、備忘録として残しておきます。
「スプレッドシートに入力されている日付」をGASで扱うとき、苦労したことはありませんか?
たとえば、A1セルの日付をgetValueメソッドで取得すると、

なが~い文字列になってしまう・・・
Fri Apr 02 2021 00:00:00 GMT+0900 (Japan Standard Time)
GAS(JavaScript)では、日付がオブジェクトとして扱われるためです。
getDisplayValueメソッドを紹介するね!
セルの表示値を取得するgetDisplayValueメソッド
getDisplayValueメソッドは、「セルの表示値」を、そのまま「文字列」として取得します。
rangeオブジェクト.getDisplayValue()
- パラメータ:なし
- 戻り値:string
- 説明:範囲内の左上のセルの表示値を返します。値は文字列です。
- 公式リファレンスはこちら
「getValueメソッド」と「getDisplayValueメソッド」の実行結果を比べてみましょう。
実行結果です。getDisplayValueメソッドでは、セルの表示値”2021/04/02″が取得できています。データ型はstring(文字列)です。
複数範囲を取得するgetDisplayValuesメソッド
複数セルの値を取得したいときは「getDisplayValuesメソッド」を使います。返り値は二次元配列です。
以下5つの値は、表示は異なりますが、すべて “2021/04/02” が入力されています。
「getValuesメソッド」と「getDisplayValuesメソッド」の実行結果を比べてみましょう。
実行結果です。
①getValuesメソッドはすべて同一の値が取得されますが、②getDisplayValuesメソッドは、セルの表示値がそのまま取得できています。
【まとめ】「入力値の取得」と「表示値の取得」
スプレッドシートのセルの値の取得メソッドを紹介しました。
- 入力値の取得 → getValue(s)メソッド
- 表示値の取得 → getDisplayValue(s)メソッド
入力値の取得 | 表示値の取得 | |
---|---|---|
単一セル | getValueメソッド | getDisplayValueメソッド |
複数セル | getValuesメソッド | getDisplayValuesメソッド |
日付の処理をするときに役立つので、ぜひ覚えておきましょう!