LANG SELRCT

コードを書く場所

2019年2月2日土曜日

セルの文字色を取得する


このようなシートを用意しておく
A1に黒文字のテキスト
A2に赤文字のテキスト


これらの文字色をスクリプトで取得したい



コード.gs
function getTextColor() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var A1 = sheet.getRange("A1").getTextStyle().getForegroundColor();
  var A2 = sheet.getRange("A2").getTextStyle().getForegroundColor();
  Logger.log([A1, A2]);
}
意訳
この機能がやること
アクティブシートを取得して
A1の文字色を取得して
A2の文字色を取得して
ログに出す



getTextColor()を実行するとA1,A2のセルの文字色がログに出ます



メモ


スプレッドシートのセルにリンク付きの文字を貼り付けると
HYPERLINK関数ではない形式でリンクが追加されます。

例えば以下のリンク付きの文字をコピーして
Google Apps Script試行錯誤Blog


シートのA1に貼り付けると
このようにリンク付きで貼り付けられます

これはHYPERLINK関数ではないため
sheet.getRange("A1").getFormula()
などでリンクのURLを取得することはできません。

URLを取得する方法がわからなかったため、リンクありテキストか否かを判定するためにセルの文字色を取得してみたのがこの記事を書いた発端でした。


ちなみにHYPERLINK関数を使うとこのように書けます
=Hyperlink("http://www.pre-practice.net/","Google Apps Script試行錯誤Blog")
これなら
sheet.getRange("A1").getFormula()
で取得できます。


参考

getForegroundColor()
https://developers.google.com/apps-script/reference/spreadsheet/text-style#getForegroundColor()