GASでスプレッドシートの指定範囲から表示形式の値を一括取得する方法

Google Apps Script(GAS)を使ってスプレッドシートの操作をしてると、「表示値」を扱う場面がよくあるばい。特に、日付や通貨、パーセンテージなど、フォーマットが大事なデータを取り扱うときには、getDisplayValues()メソッドが大活躍するんじゃ。今回はそのメソッドの使い方を、初心者にもわかりやすく解説していくけん、ぜひ参考にしてみてや!

スポンサーリンク

getDisplayValues()とは?

まず、getDisplayValues()ってどんなメソッドかって話をしとくばい。Googleスプレッドシートでは、セルに入力されたデータは「表示値」としてユーザーに見えるけど、その裏側では実際には異なるデータ型が使われていることが多いんだよ。例えば、「2023/04/02」って日付が表示されているけど、実際にはそのセルには「UNIX時間」って数値が格納されとるわけよ。

そこで、このメソッドを使うことで、表示されている「フォーマットされた値」をそのまま文字列として取得できるんよ。これが何で便利かっていうと、例えばレポートにそのまま表示形式を保ったデータを渡したいときに、とっても助かるんじゃ。

getValues()とどう違う?

getValues()との違いを理解することも大事ばい。getValues()はセルの「基盤データ」を返すんだけど、getDisplayValues()はそのデータを「表示形式のまま文字列で返す」んじゃ。例えば、数値が「1,000円」って表示されている場合、getValues()で取得すると「1000」って数値が返されるけど、getDisplayValues()だと「1,000円」って文字列で返されるわけさ。

こんなふうに、表示形式が重要な時にgetDisplayValues()は役立つんよ!

getDisplayValues()の使い方

基本の使い方

まずは基本的なコードから見ていこうか。

const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート名');
const range = sheet.getRange('A1:B10');  // A1からB10までの範囲を指定
const displayValues = range.getDisplayValues();
Logger.log(displayValues);  // 結果をログに表示

こんな感じで、範囲を指定してそのセルの表示値を一気に取得できるんじゃ。

実際の使い方

次に、業務でよく使うようなシナリオを考えてみるけん。例えば、販売レポートを作るとき、商品の価格や日付が「¥1,000」や「2023/04/02」ってフォーマットされているとするじゃん?そのまま見栄えよくデータを取り出して、メールで送るスクリプトを作る場合、getDisplayValues()が便利ばい。

function sendSalesReport() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('SalesData');
  const dataRange = sheet.getRange('A2:E100');
  const displayData = dataRange.getDisplayValues();
  
  let report = '最新販売レポート\n\n';
  displayData.forEach(row => {
    report += `${row[0]} | 数量: ${row[1]} | 単価: ${row[2]} | 合計: ${row[3]}\n`;
  });
  
  MailApp.sendEmail('report@example.com', '日次販売レポート', report);
}

このコードで、フォーマットされたデータ(例えば、「¥1,000」など)がそのままレポートに使われるわけよ。これなら、フォーマットを気にせずにデータを処理できるけん、すごく便利じゃろ?

メリットとデメリット

メリット

  • フォーマットがそのまま取得できる:日付や通貨など、フォーマットをそのまま使えるので、レポートや通知メールが見やすくなるんじゃ。
  • 柔軟なデータ処理:表示値を文字列として扱うことで、データ処理が柔軟になるけん、後から数値に変換することもできるばい。

デメリット

  • 型変換の必要があるgetDisplayValues()で取得するデータはすべて文字列だから、数値や日付が必要なときは型変換をする必要があるけん、ちょっと手間がかかることもある。

まとめ

Google Apps ScriptのgetDisplayValues()メソッドは、スプレッドシートの「表示されている値」をそのまま取得できる便利なメソッドじゃ。特にレポートや通知メールでフォーマットを維持したいときには大活躍するばい!ただし、型変換に気をつけながら使う必要があるけん、その点だけ覚えておけばバッチリじゃね。

コメント

タイトルとURLをコピーしました