GASでスプレッドシートの指定範囲から数値フォーマットを一括取得する方法

GoogleスプレッドシートをGAS(Google Apps Script)で操作する時、セルの数値フォーマットを一括取得したいことってあるばい? そんな時に便利なのが getNumberFormats() メソッドさ!

今回は、この getNumberFormats() の基本から応用まで、わかりやすく解説していくけんね!

スポンサーリンク

1. getNumberFormats() ってどんなメソッド?

メソッドの概要

このメソッドを使えば、指定した範囲内の数値フォーマットや日付フォーマットを一括取得できるばい。データの整合性チェックやフォーマットの統一にも使えるけん、便利さ!

基本構文

const formats = range.getNumberFormats();

この range には SpreadsheetApp.getActiveSheet().getRange() で取得したセル範囲を指定すればよかばい。

返り値の形式

戻り値は二次元配列になっていて、各セルのフォーマットが String で格納されるっちゃね。

例えば、B2からC3までの範囲を取得すると、

[
  ['#,##0', 'yyyy/MM/dd'],
  ['0.00%', 'General']
]

こんな感じで返ってくるばい。

2. getNumberFormats() の基本的な使い方

シンプルなサンプルコード

function sampleGetNumberFormats() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('データシート');
  const range = sheet.getRange('B2:D5');
  const formats = range.getNumberFormats();
  
  formats.forEach((row, rowIndex) => {
    row.forEach((format, colIndex) => {
      console.log(`セル ${String.fromCharCode(66 + colIndex)}${rowIndex + 2}: ${format}`);
    });
  });
}

このコードを実行すると、セルごとのフォーマット情報がコンソールに表示されるばい。

フォーマットの具体例

フォーマット種別表示
数値#,##0.0012,345.67
パーセンテージ0.00%98.76%
日付yyyy/MM/dd2025/03/06
通貨[$¥-411]#,##0.00¥12,345.67

3. 応用例:フォーマット整合性チェック

データのフォーマットがちゃんと統一されているか確認したい? そんな時はこのスクリプトを使えばよかばい!

function validateColumnFormats() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('売上データ');
  const formatRules = {
    3: 'yyyy/MM/dd',
    4: '#,##0',
    5: '[$¥-411]#,##0.00'
  };

  const range = sheet.getRange(2, 3, sheet.getLastRow() - 1, 3);
  const formats = range.getNumberFormats();

  formats.forEach((row, rowIndex) => {
    Object.keys(formatRules).forEach(colOffset => {
      const expected = formatRules[colOffset];
      const actual = row[colOffset - 1];
      if (actual !== expected) {
        console.error(`エラー: ${String.fromCharCode(64 + 3 + parseInt(colOffset))}${rowIndex + 2} 期待:${expected} 実際:${actual}`);
      }
    });
  });
}

このスクリプトを実行すれば、フォーマットが異なるセルを自動検出してくれるばい!

4. まとめ

getNumberFormats() メソッドを使えば、スプレッドシートのフォーマットを一括取得して、整合性チェックやデータのフォーマット統一が簡単にできるばい!

こんな活用法を試してみて、業務の自動化をどんどん進めてみるとよかばい!

コメント

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