GASでスプレッドシートの指定範囲から太字設定を一括取得する方法

Google Apps Script(GAS)って知っとる? スプレッドシートを自動化できる強力なツールじゃけ、これを使いこなせば作業効率が爆上がりするばい!

今回紹介するのは、getFontWeights()メソッド。 これを使うと、セル範囲のフォントの太字設定をまとめて取得できるっちゃ。

getFontWeights()って何すると?

getFontWeights()は指定したセル範囲の太字情報を取得するメソッド。 戻り値は二次元配列になっとって、

  • "bold"(太字)
  • "normal"(通常)

のどちらかが返ってくる仕組みたい。

例えば、スプレッドシートのB2:D4のセル範囲を対象にすると、

const range = SpreadsheetApp.getActiveSpreadsheet().getRange('B2:D4');
const fontWeights = range.getFontWeights();

こんな感じで、セルの太字設定を一気に取得できるけ。

getFontWeight()との違い

getFontWeight() っていう似たメソッドもあるんやけど、 こっちは「単一セルのみ」のフォント太字設定を取得するもの。

一方、getFontWeights()なら「複数セルをまとめて」取得できるとばい。 大規模なデータを扱うときは断然こっちが便利さ。

実践!セル範囲の太字情報を取得してみる

次のサンプルコードでは、指定した範囲の太字設定をコンソールに表示するばい。

function sampleGetFontWeights() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheetByName('データシート');
  const range = sheet.getRange('B2:D4');
  const weights = range.getFontWeights();

  weights.forEach((row, rowIndex) => {
    row.forEach((cellValue, colIndex) => {
      console.log(`セル ${String.fromCharCode(66 + colIndex)}${rowIndex + 2}: ${cellValue}`);
    });
  });
}

このコードを実行すると、セルのフォント状態がboldnormalか分かるばい。

太字のセルだけ色を変えてみる

例えば、太字になっとるセルの背景色を黄色にするなら、こんなコードを書けばよかばい。

function highlightBoldCells() {
  const range = SpreadsheetApp.getActiveSheet().getRange('A1:C10');
  const weights = range.getFontWeights();
  const backgrounds = weights.map(row => 
    row.map(cell => cell === 'bold' ? '#FFFF00' : null)
  );
  range.setBackgrounds(backgrounds);
}

このスクリプトを実行すると、太字のセルだけ黄色になるっちゃ。

大量のデータを扱うときの注意点

スプレッドシートには「1シートあたり500万セルまで」という制限があるっちゃ。 データが増えてくると処理が遅くなるけ、

  • 必要な範囲だけ取得する
  • getValues()と組み合わせて効率化する

みたいな工夫が必要じゃ。

例えば、500行ずつ処理するときはこんな感じで書くとよかばい。

function processLargeData() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const totalRows = sheet.getLastRow();
  const batchSize = 500;

  for (let i = 1; i <= totalRows; i += batchSize) {
    const range = sheet.getRange(i, 1, Math.min(batchSize, totalRows - i + 1), 10);
    const weights = range.getFontWeights();
    console.log(weights);
  }
}

これで、スプレッドシートのデータを少しずつ処理できるけ、 動作がスムーズになるばい。

まとめ

getFontWeights()メソッドを使えば、

  • スプレッドシートの太字設定を一括取得できる
  • getFontWeight()よりも効率的
  • 背景色変更やデータ分析にも応用できる

といったメリットがあるっちゃ。

大規模データを扱うときは、処理速度を意識しながら工夫して使ってみてね!

コメント

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