Google Apps Script(GAS)を使ってスプレッドシートをカスタマイズするなら、フォントの取得と設定は避けて通れんばい!この記事では、getFontFamily()
メソッドの基本から応用まで、わかりやすく解説していくけ。
1. getFontFamily()とは?
getFontFamily()
メソッドは、スプレッドシートのセルや範囲のフォント名を取得するための機能ばい。
基本的な使い方
const range = sheet.getRange("B2");
const font = range.getFontFamily();
Logger.log(font); // 例: "Arial"
もし範囲を指定したら、左上のセル(開始セル)のフォントだけ取得されるけん、注意しとくとよかばい。
const range = sheet.getRange("B2:D4");
const font = range.getFontFamily(); // B2のフォントが取得される
2. 範囲内のフォントを一括取得
複数セルのフォント情報を取得するには? getFontFamilies()
を使えば、指定範囲の全セルのフォント情報が二次元配列で取得できるばい!
const range = sheet.getRange("B2:D4");
const fontMatrix = range.getFontFamilies();
fontMatrix.forEach(row => row.forEach(font => Logger.log(font)));
大規模データを扱うときは、バッチ処理やキャッシュを活用すると効率がよくなるばい!
function processLargeRange() {
const sheet = SpreadsheetApp.getActiveSheet();
const dataRange = sheet.getDataRange();
const fonts = dataRange.getFontFamilies();
const modifiedFonts = fonts.map(row =>
row.map(font => font === 'Arial' ? 'Helvetica' : font)
);
dataRange.setFontFamilies(modifiedFonts);
}
3. フォントの動的制御
フォントを変更するときは、setFontFamily()
やsetFontFamilies()
を使うばい。
// 単一セルのフォント変更
sheet.getRange("A1").setFontFamily("Times New Roman");
// 範囲に一括適用
sheet.getRange("B2:D10").setFontFamily("Courier New");
条件付きフォント変更の実装
例えば、数値が1000を超えるセルだけフォントを変更することもできるばい。
function applyConditionalFonts() {
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange("A1:C10");
const values = range.getValues();
const fonts = range.getFontFamilies();
const newFonts = fonts.map((row, i) =>
row.map((font, j) => values[i][j] > 1000 ? 'Impact' : 'Cambria')
);
range.setFontFamilies(newFonts);
}
4. フォント設定のトラブルシューティング
特定のフォントでnullが返る場合の対策 カスタムフォントなどでフォント名が取得できないことがあるばい。その場合は、デフォルトフォントを設定するのがオススメじゃ!
function getSafeFontFamily(range) {
const font = range.getFontFamily();
return font || 'Arial';
}
大規模データ処理の最適化 スプレッドシートの大規模データ処理では、バッチ処理を意識して負荷を減らすのがポイントばい!
function optimizeFontProcessing() {
const sheet = SpreadsheetApp.getActiveSheet();
const startRow = 2;
const batchSize = 500;
for (let i = 0; i < 1000; i += batchSize) {
const range = sheet.getRange(i + startRow, 1, batchSize, 10);
const fonts = range.getFontFamilies();
const newFonts = fonts.map(row => row.map(font => font === 'Comic Sans MS' ? 'Arial' : font));
range.setFontFamilies(newFonts);
}
}
5. まとめ
getFontFamily()
はセルのフォント名を取得するgetFontFamilies()
を使えば複数セルのフォントをまとめて取得可能- フォント設定は
setFontFamily()
やsetFontFamilies()
で変更できる - 大規模データを扱うときはバッチ処理で負荷を軽減
- フォントが取得できないときは、デフォルト値を設定するのがオススメ
スプレッドシートのフォントを自由自在に操って、見やすいドキュメントを作成していこうじゃ!

Class Range | Apps Script | Google for Developers
セルのフォントを取得する:getFontFamily()【GAS】 | G Suite ガイド - G Suite ガイド:G Suite の導入方法や使い方を徹底解説!
getFontFamily() セルのフォントを取得する。 サンプルコード // 現在アクティブなスプレッドシートを取得 var ss = SpreadsheetApp.getActiveSpreadsheet(); // そのスプレッドシ...

[GAS]フォントやフォントの色・線・斜体などを取得・設定する方法 -Rangeクラス-|テックアップライフ
Google Apps Script (GAS) でこのセル範囲のフォントや、色・線・斜体などのフォント関連の設定を取得
コメント