Google Apps Scriptでスプレッドシートの複数セルの文字色を取得する

Google Apps Scriptでスプレッドシートの複数セルの文字色を取得するには、

  • getFontColors()

を使う。

・getFontColors()
範囲内のセルのフォント色をCSS表記で返します(like ‘#ffffff’または ‘white’)。

戻る
String[][] – 範囲内のセルに関連付けられたフォントカラーの2次元配列

参照:range#getfontcolors

Google Apps Scriptでスプレッドシートの複数セルの文字色を取得するスクリプト

取得する範囲をA1~C3に設定しテキストを入力後、変数rngに格納。

配列変数cellsに範囲分の文字色を設定。

setFontColors(cells)にて文字に配色。

変数resにrng.getFontColors()を格納し、for文でmegBoxに表示したスクリプト。

/*シートにある複数セルの文字色を取得する*/
function cellsfntcolor() {

//スプレッドシートAppを呼出し
 var ss = SpreadsheetApp.getActiveSpreadsheet();
//アクティブシートを取得
 var sht = ss.getActiveSheet();
 
//複数セルにテキストを入力してrngに格納
 var rng = sht.getRange("A1:C3").setValue("SpreadhSheet.Blue");
 
//列を取得
var col = sht.getRange("A:A").getColumn();
var col2 = sht.getRange("B:B").getColumn();
var col3 = sht.getRange("C:C").getColumn();

//テキストに合わせて列をリサイズ
sht.autoResizeColumn(col);
sht.autoResizeColumn(col2);
sht.autoResizeColumn(col3);

//配列に配色設定しcellsに格納する
 var cells = [  
   ["blue","yellow","red"],
     ["yellow","red","blue"],
     ["red","blue","red"]
   ];

//rngにsetFontColorsで配色
 rng.setFontColors(cells);

//範囲の文字色を取得してresに格納
 var res = rng.getFontColors();

//for文で行列の値を繰返し取得
 for (var i in res) {
   for (var j in res[i]) {

//メッセージボックスに取得した文字色を表示する(繰返し)
   Browser.msgBox("文字色は"+res[i][j]+"です");
     
   }
 }
}

/*シートをクリア*/
function clear(){

//スプレッドシートAppを呼出し
 var ss = SpreadsheetApp.getActiveSpreadsheet();
//アクティブシートを取得
 var sht = ss.getActiveSheet();
//シートをクリアする 
 sht.clear();

//列幅をデフォに戻す
sht.setColumnWidth(1,100);
sht.setColumnWidth(2,100);
sht.setColumnWidth(3,100);

}

 

Google Apps Scriptでスプレッドシートの複数セルの文字色を取得するsample

 

まとめ

シート範囲.getFontColors()で複数セルの文字色を取得出来る。

メッセージボックスの表示をfor文で行うと、連続で表示されるけどLogger.logなら1画面で確認できるのでオススメ。

一応メッセージボックスでも出来るけど、改行\\nとかやってコードも長くなるのでめんどう。

>>スプレッドシートの文字色を取得する

>>スプレッドシートの文字色を変える

>>スプレッドシートの複数セルの背景色を変える

>>スプレッドシートのセルの背景色を取得する