Google Apps Script

【GAS】スプレッドシートの入力日付をそのまま文字列で取得するgetDisplayValueメソッド

こんにちは、もり(moripro3)です!

いつものように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メソッド

 

日付の処理をするときに役立つので、ぜひ覚えておきましょう!