Google Apps Script(GAS)を使ってスプレッドシートの文字色を取得したい?それなら getFontColors()
メソッドの使い方を押さえておくべきばい!この記事では、このメソッドの基本から応用まで、実践的なコード例を交えて解説するけん、ぜひ最後まで読んでみてな!
getFontColors() とは?
getFontColors()
は、スプレッドシートの特定範囲のセルの文字色を取得するためのメソッドじゃ。Range
クラスのインスタンスメソッドであり、取得結果は二次元配列(String[][]
)で返ってくるっちゃね。
例えばこんな感じのデータが返るばい!
[
['#ff0000', '#00ff00', '#0000ff'],
['#ffffff', '#000000', '#cccccc']
]
各セルの文字色が CSS カラーコードの形式で返るとよ。
getFontColors() の基本的な使い方
まずはシンプルなコード例を見てみようさ。
function fetchFontColors() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('DataSheet');
const targetRange = sheet.getRange('B2:D5');
const colorMatrix = targetRange.getFontColors();
colorMatrix.forEach((row, rowIndex) => {
row.forEach((color, colIndex) => {
console.log(`Cell ${String.fromCharCode(66 + colIndex)}${rowIndex + 2}: ${color}`);
});
});
}
このコードを実行すると、B2:D5 の範囲内の文字色がコンソールに表示されるけん、試してみてな!
getFontColors() を応用してみよう!
条件付き書式と組み合わせる
文字色が赤(#ff0000
)で、数値が100を超えるセルに背景色を付与する例ばい。
function highlightCustomFormattedCells() {
const sheet = SpreadsheetApp.getActiveSheet();
const dataRange = sheet.getRange('A1:Z1000');
const values = dataRange.getValues();
const colors = dataRange.getFontColors();
values.forEach((row, i) => {
row.forEach((value, j) => {
if (colors[i][j] === '#ff0000' && value > 100) {
sheet.getRange(i+1, j+1).setBackground('#fff2cc');
}
});
});
}
これで「赤字で100超え」のセルにハイライトを付けられるばい!
色の使用頻度を集計する
スプレッドシートの特定範囲で、どの色がどれくらい使われているかを調べる方法ち。
function analyzeColorDistribution() {
const colors = SpreadsheetApp.getActive()
.getRange('MonthlyData')
.getFontColors()
.flat();
const colorCount = colors.reduce((acc, color) => {
acc[color] = (acc[color] || 0) + 1;
return acc;
}, {});
console.log('Color Distribution:', colorCount);
}
色の分布を把握できるけん、データの可視化にも活かせるばい!
パフォーマンスを最適化する方法
大量のセルを処理する場合、1つずつ処理すると遅いっちゃ。そこでバッチ処理を使って最適化するばい!
function bulkColorProcessing() {
const sheet = SpreadsheetApp.getActiveSheet();
const fullRange = sheet.getDataRange();
const colors = fullRange.getFontColors();
colors.flat().forEach((color, index) => {
const row = Math.floor(index / colors[0].length) + 1;
const col = (index % colors[0].length) + 1;
if (color === '#999999') {
sheet.getRange(row, col).setFontColor('#666666');
}
});
}
これで大規模データもサクサク処理できるさ!
まとめ
GAS の getFontColors()
を活用すれば、スプレッドシートの文字色を自在に操作できるばい!基本の使い方から応用技術、パフォーマンス最適化まで、ぜひ試してみてな!

Class Range | Apps Script | Google for Developers

Google Apps Scriptの基本メソッドまとめ - Qiita
私がよく使用するGASのメソッドをまとめました。使用頻度の高いものを選抜しています。スプレッドシートの操作スプレッドシートを取得const spreadSheet = SpreadsheetA…
Just a moment...
これからも GAS をどんどん活用して、便利なスプレッドシートを作っていこうばい!
コメント