セルの表示値を取得する | getDisplayValue()【GAS】

たけだ

数式ではなく、表示されている値を取得する方法をご紹介します

💡この記事でわかること
  • getDisplayValue関数を使って表示値を取得する方法
  • getValue関数との使い分け

getDisplayValue()

指定範囲のセルの表示値を取得します。

const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()

// 指定の範囲の表示値を取得する
const value = sheet.getRange(2, 1).getDisplayValue()
console.log(value)

実行結果

[ [ 'キーボード', '5', '10', '50' ],
  [ 'マウス', '5', '20', '100' ],
  [ 'HDMIケーブル', '11', '15', '165' ] ]

公式ドキュメント

https://developers.google.com/apps-script/reference/spreadsheet/range?hl=ja#getdisplayvalue

戻り値

セルの表示値が格納された2次元配列。

getRangeの使い方

getRangeを使って値を取得する範囲を指定しています。

sheet.getRange(2, 1, 3, 4) // 行, 列, 行数, 列数

範囲指定についてもっと知りたい方は、こちらを参照してください。

getDisplayValue()

たけだ

配列ではなくセル単体の表示値が欲しい場合はこちらがオススメです

const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()

// 指定の範囲の表示値を取得する
const value = sheet.getRange(2, 1).getDisplayValue()
console.log(value)

実行結果

キーボード

公式ドキュメント

https://developers.google.com/apps-script/reference/spreadsheet/range?hl=ja#getdisplayvalue

ぴよこ

配列の添え字を気にする必要がないので気軽に使えますね!

戻り値

セルの値。

getValues関数との違い

ぴよこ

getValues関数との違いは何でしょう?

たけだ

getDisplayValuesは、表示値を取得するというのが違いです

getDisplayValues()メソッドは、指定された範囲内のセルの表示値を含む2次元配列を返します。つまり、数式の場合は計算結果、テキストの場合はそのままのテキスト値、日付や時刻の場合はセルに設定された日付や時刻の表示値など、セルの現在の表示値が返されます。

検証

このような表があった場合にgetDisplayValues/getValuesの結果はどうなるのでしょうか?

getDisplayValues 実行結果

[ [ 'キーボード', '5', '10', '50' ],
  [ 'マウス', '5', '20', '100' ],
  [ 'HDMIケーブル', '11', '15', '165' ] ]

getValues 実行結果

[ [ 'キーボード', 5, 10, 50 ],
  [ 'マウス', 5, 20, 100 ],
  [ 'HDMIケーブル', 11, 15, 165 ] ]

getDisplayValuesでは、すべての値が文字列で取得されます。一方でgetValuesはセルの書式に合わせて数字は数字で取得されます。

このように、取得される値の形式が異なることに注意してください。適切なメソッドを選択することで、必要な値を取得することができます。

まとめ

たけだ

以上、getDisplayValueでセルの表示値を取得する方法でした。

最後まで読んでいただきありがとうございました!

getDisplayValue()メソッドは、指定された範囲内のセルの表示値を取得するために使用されます。このメソッドは、数式の場合は計算結果、テキストの場合はそのままのテキスト値、日付や時刻の場合はセルに設定された日付や時刻の表示値など、セルの現在の表示値を返します。

GASをイチから学びたい方へ

このブログでは断片的な説明になってしまっていますが、本書は幅広いGASの内容が網羅的に学べる本です。イチから学びたい方は是非読んでみてください。

すでにGASをある程度マスターした方にも辞書的に手元に置いておくと便利です。