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