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

どーも!今日はGoogle Apps Script(GAS)の getFontFamilies() メソッドについて話すけん、スプレッドシートのフォント情報を効率的に取得したいなら最後まで読んでいきんしゃい!

スポンサーリンク

getFontFamilies() とは?

GASの getFontFamilies() は、指定範囲のセルに設定されているフォントファミリーを一括取得できるメソッドじゃ。このメソッドを使えば、手作業でチェックせんでも、一瞬でフォントの情報を取得できるけん、便利な機能たい。

基本的な使い方

まず、どんな風に書くのか見てみるばい。

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange("B2:D4");
const fontData = range.getFontFamilies();

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

このスクリプトは B2:D4 の範囲内のフォントを取得してログに出力するっちゃ。

応用テクニック

フォントの異常検出

function detectUnusualFonts() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const dataRange = sheet.getDataRange();
  const fonts = dataRange.getFontFamilies();
  
  const standardFont = 'Arial';
  const anomalies = [];
  
  fonts.forEach((row, r) => {
    row.forEach((font, c) => {
      if(font !== standardFont) {
        anomalies.push(`R${r+1}C${c+1}: ${font}`);
      }
    });
  });
  
  if(anomalies.length > 0) {
    Logger.log(`フォントの異常検出!\n${anomalies.join('\n')}`);
  }
}

標準フォント(Arial)と違うフォントが使われとるセルをリストアップするスクリプトばい。

フォント使用頻度のレポート作成

function generateFontReport() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const fonts = sheet.getDataRange().getFontFamilies();
  const fontStats = {};

  fonts.flat().forEach(font => {
    fontStats[font] = (fontStats[font] || 0) + 1;
  });

  const reportSheet = SpreadsheetApp.getActive().insertSheet('Font Report');
  reportSheet.getRange('A1:B1').setValues([['Font Family', 'Count']]);
  
  const sortedData = Object.entries(fontStats)
    .sort((a, b) => b[1] - a[1])
    .map(([font, count]) => [font, count]);
  
  reportSheet.getRange(2, 1, sortedData.length, 2)
    .setValues(sortedData)
    .setFontFamily('Consolas');
}

スプレッドシート内で使われてるフォントをカウントして、レポートを自動生成する関数たい。

気をつけるポイント

  1. 未設定のセルはデフォルトのフォント(通常はArial)が返される
  2. フォント名はOSや環境によって異なることがある
  3. データ量が大きいと処理時間が長くなるので、範囲を絞ると良い

まとめ

GASの getFontFamilies() メソッドを活用すると、スプレッドシートのフォント情報を一括取得できるばい。異常フォントの検出やレポート作成にも応用できるけん、作業効率をアップさせるツールとして活用してみんしゃい!

コメント

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