LANG SELRCT

Google Apps Scriptのコードを書く場所  (新規作成: スプレッドシート | スクリプトエディタ

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()

最新の投稿

現在日時から四半期の開始日と終了日を知りたい

今の日時を取得して、現在の四半期の開始日と終了日を知りたくて書いたコードです。 コード.gs function myFunction() { const month = new Date().getMonth() + 1;// monthは0始まりなので+1 ...