【GAS】スプレッドシートの条件付き書式機能まとめ【サンプルソース付】

快速ワーク
スポンサーリンク

GAS開発者向けにスプレッドシートの条件付き書式機能をすべてまとめました。

セルの背景色やフォントをデータの条件によって自由自在に変えられれば、データも格段に見やすくなりますね。

GASで指定できる条件はたくさんあります。空白、日付、数値、数式、などなど。グラデーション設定なんかもできます。

全部まとめたら随分と長くなってしまいましたが。。。自分に必要な条件に絞って参考にしてください。

ちなみに、枠線が追加されるのはいつになるのでしょうか。。。いつか追加していただけることを期待しています。追加されたら反映したいと思います。

条件付き書式に関するメソッドをすべて載せてます。少しでも参考になれば幸いです。


スポンサーリンク
  1. Google Apps Script スプレッドシート 基礎 リファレンス
  2. シートクラス[Sheet]の条件付き書式設定
    1. 条件付き書式の設定[setConditionalFormatRules(ルール)]
  3. シートクラス[Sheet]の条件付き書式取得
    1. 条件付き書式の取得[getConditionalFormatRules()]
  4. スプレッドシートAPPクラス[SpreadsheetApp]の条件付き書式作成
    1. 条件付き書式作成[newConditionalFormatRule()]
  5. 条件付き書式クラス[ConditionalFormatRule]
  6. 条件付き書式ビルダークラス[ConditionalFormatRuleBuilder]
    1. 条件付き書式構築[build()]
    2. 条件付き書式コピー作成[copy()]
    3. ブール条件取得[getBooleanCondition()]
    4. グラデーション条件取得[getGradientCondition()]
    5. 範囲取得[getRanges()]
    6. 背景色設定[setBackground(色)]
    7. 太字設定[setBold(太字)]
    8. フォント色設定[setFontColor(色)]
    9. グラデーション最大点設定[setGradientMaxpoint(色)]
    10. グラデーション最大点フィールド設定[setGradientMaxpointWithValue(色, タイプ, 値)]
    11. グラデーション中間点フィールド設定[setGradientMidpointWithValue(色)]
    12. グラデーション最小点設定[setGradientMinpoint(色)]
    13. グラデーション最小点フィールド設定[setGradientMinpointWithValue(色, タイプ, 値)]
    14. 斜体設定[setItalic(斜体)]
    15. 範囲設定[setRanges(範囲)]
    16. 取り消し線設定[setStrikethrough(取り消し線)]
    17. 下線設定[setUnderline(下線)]
    18. 空白であるかの条件設定[whenCellEmpty()]
    19. 空白ではないかの条件設定[whenCellNotEmpty()]
    20. 指定日付より後かの条件設定1[whenDateAfter(日付)]
    21. 指定日付より後かの条件設定2[whenDateAfter(相対日付)]
    22. 指定日付より前かの条件設定1[whenDateBefore(日付)]
    23. 指定日付より前かの条件設定2[whenDateBefore(相対日付)]
    24. 指定日付と等しいかの条件設定1[whenDateEqualTo(日付)]
    25. 指定日付と等しいかの条件設定2[whenDateEqualTo(相対日付)]
    26. 指定式の条件設定[whenFormulaSatisfied(式)]
    27. 指定数値が2つの間にあるかの条件設定[whenNumberBetween(開始, 終了)]
    28. 指定数値と等しいかの条件設定[whenNumberEqualTo(数値)]
    29. 指定数値より大きいかの条件設定[whenNumberGreaterThan(数値)]
    30. 指定数値以上かの条件設定[whenNumberGreaterThanOrEqualTo(数値)]
    31. 指定数値より小さいかの条件設定[whenNumberLessThan(数値)]
    32. 指定数値以下かの条件設定[whenNumberLessThanOrEqualTo(数値)]
    33. 指定数値が2つの間にないかの条件設定[whenNumberNotBetween(開始, 終了)]
    34. 指定数値と等しくないかの条件設定1[whenNumberNotEqualTo(数値)]
    35. 指定値が含まれているかの条件設定[whenTextContains(テキスト)]
    36. 指定値が含まれていないかの条件設定[whenTextDoesNotContain(テキスト)]
    37. 指定値で終わるかの条件設定[whenTextEndsWith(テキスト)]
    38. 指定値と等しいかの条件設定[whenTextEqualTo(テキスト)]
    39. 指定値で始まるかの条件設定[whenTextStartsWith(テキスト)]
    40. 基準条件設定[withCriteria(条件, 引数)]
  7. ブール値基準列挙型[BooleanCriteria]
  8. 最後に

Google Apps Script スプレッドシート 基礎 リファレンス

当ページは、GAS公式リファレンスを元にスプレッドシートの機能毎にまとめた基礎的な内容となっております。

若干、文言がおかしい可能性がありますが、あらかじめご了承ください。

 

GAS基本メソッドまとめ一覧はコチラ↓↓↓です。スプレッドシートの基本的な機能をまとめてますので、ぜひご活用ください。

【GAS】スプレッドシート基本メソッドまとめ一覧【初心者入門】
GAS開発者向けにスプレッドシートの基本的なメソッドを一覧にまとめました。各機能ごとのクラス、メソッドごとのサンプルソース付ページへリンクする一覧です。初心者にとって、スプレッドシートの基本的な操作・機能単位のメソッドを知...

 

まずは実際に動かしてみることをオススメします。マクロの登録方法は以下を参照いただければと思います。

【GAS】Googleスプレッドシートでマクロの使い方入門【動画付】
Googleの「Google Apps Script」通称GAS。GoogleマップやGメールなど、いろんなGoogle関連のサービスと自由に連携できたり、独自のWebアプリを開発することもできる、いろんな可能性を秘めたワクワクの...

 

GASの本はまだまだ少ないですね。基礎レベルであれば、以下の参考書が初心者にはベストの本です。

基本的な仕様やよく使われる機能の設定方法がまとまっています。

※JavaScriptの知識が既にある程度ある人にとっては冗長かもしれません。


シートクラス[Sheet]の条件付き書式設定

シートの条件付き書式設定メソッドです。

条件付き書式の設定[setConditionalFormatRules(ルール)]

setConditionalFormatRules(rules)
シート内に現在存在するすべての条件付き書式規則を入力規則に置き換えます。ルールは入力順に評価されます。

function setConditionalFormatRules1Sample() {
  // 既存の条件付き書式規則の1つを削除します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var rules = sheet.getConditionalFormatRules();
  rules.splice(0, 1); // 2番目のフォーマット規則を削除します。
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
rulesConditionalFormatRule[]新しい条件付き書式の規則。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | setConditionalFormatRules(rules)


シートクラス[Sheet]の条件付き書式取得

シートの条件付き書式取得メソッドです。

条件付き書式の取得[getConditionalFormatRules()]

getConditionalFormatRules()
シートのすべての条件付き書式規則を取得します。

function getConditionalFormatRules1Sample() {
  // シートの最初の条件付き書式ルールの各範囲をログに記録します。
  var rule = SpreadsheetApp.getActiveSheet().getConditionalFormatRules()[0];
  var ranges = rule.getRanges();
  for (var i = 0; i < ranges.length; i++) {
    Logger.log(ranges[i].getA1Notation());
  }
}
function getConditionalFormatRules2Sample() {
  // シートの最初の条件付き書式ルールの各範囲をログに記録します。
  var rules = SpreadsheetApp.getActiveSheet().getConditionalFormatRules();
  Logger.log(rules.length);
  for (var i = 0; i < rules.length; i++) {
    var rule = rules[i];
    var ranges = rule.getRanges();
    for (var j = 0; j < ranges.length; j++) {
      Logger.log(ranges[j].getA1Notation());
    }
    var booleanConditios = rule.getBooleanCondition();
    Logger.log("背景色:"+booleanConditios.getBackground());
    Logger.log("太字:"+booleanConditios.getBold());
    Logger.log("基準型:"+booleanConditios.getCriteriaType());
    Logger.log("基準値:"+booleanConditios.getCriteriaValues());
    Logger.log("フォント色:"+booleanConditios.getFontColor());
    Logger.log("斜体:"+booleanConditios.getItalic());
    Logger.log("取り消し線:"+booleanConditios.getStrikethrough());
    Logger.log("下線:"+booleanConditios.getUnderline());
  }
}

Return
ConditionalFormatRule[] - シート内のすべての規則の配列。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class Sheet | Methods | getConditionalFormatRules()




スプレッドシートAPPクラス[SpreadsheetApp]の条件付き書式作成

スプレッドシートAPPの条件付き書式作成メソッドです。

条件付き書式作成[newConditionalFormatRule()]

newConditionalFormatRule()
条件付き書式設定ルール用のビルダーを作成します。

function newConditionalFormatRuleSample() {
  // シートに条件付き書式設定ルールを追加します。
  // これにより、A1:B3の範囲のすべてのセルに1〜10の数値が含まれている場合に赤に変わります。
  var sheet = SpreadsheetApp.getActive().getActiveSheet();
  var range = sheet.getRange('A1:B3');
  var rule = SpreadsheetApp.newConditionalFormatRule()
  .whenNumberBetween(1, 10)
  .setBackgroundColor("#FF0000")
  .setRanges([range])
  .build()
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}

Return
ConditionalFormatRuleBuilder - 新しいビルダー。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class SpreadsheetApp | Methods | newConditionalFormatRule()


条件付き書式クラス[ConditionalFormatRule]

条件付き書式設定ルールにアクセスします。新しいルールを作成するには、SpreadsheetApp.newConditionalFormatRule()とConditionalFormatRuleBuilderを使用します。 Sheet.setConditionalFormatRules(rules)を使用して、特定のシートにルールを設定できます。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class ConditionalFormatRule

Methods
方法タイプ説明
copy()ConditionalFormatRuleBuilderこのルールの設定を持つルールビルダープリセットを返します。
getBooleanCondition()BooleanConditionBooleanConditionこのルールがブール条件基準を使用している場合、ルールの情報を取得します。
getGradientCondition()GradientConditionGradientConditionこのルールがグラデーション条件基準を使用している場合、ルールの情報を取得します。
getRanges()Range[]この条件付き書式規則が適用される範囲を取得します。



条件付き書式ビルダークラス[ConditionalFormatRuleBuilder]

条件付き書式規則のためのビルダー。

参照:Google Apps Script | REFERENCE | SpreadSheet | Class ConditionalFormatRuleBuilder

function conditionalFormatRuleBuilderSample() {
  // シートに条件付き書式設定ルールを追加します。
  // これにより、A1:B3の範囲のセルに1~10の数値が含まれている場合にそれらのセルが赤に変わります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
      .whenNumberBetween(1, 10)
      .setBackground("#FF0000")
      .setRanges([range])
      .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Methods
方法タイプ説明
build()ConditionalFormatRuleビルダーに適用された設定から条件付き書式規則を構築します。
copy()ConditionalFormatRuleBuilderこのルールの設定を持つルールビルダープリセットを返します。
getBooleanCondition()BooleanConditionこのルールがブール条件基準を使用する場合、ルールのBooleanCondition情報を取得します。
getGradientCondition()GradientConditionこのルールがグラデーション条件基準を使用している場合、ルールのGradientCondition情報を取得します。
getRanges()Range[]この条件付き書式規則が適用される範囲を取得します。
setBackground(color)ConditionalFormatRuleBuilder条件付き書式設定ルールの書式の背景色を設定します。
setBold(bold)ConditionalFormatRuleBuilder条件付き書式設定ルールの書式にテキストの太字を設定します。
setFontColor(color)ConditionalFormatRuleBuilder条件付き書式設定ルールの書式のフォント色を設定します。
setGradientMaxpoint(color)ConditionalFormatRuleBuilder条件付き書式設定ルールのグラデーションの最大値をクリアし、代わりにルールの範囲内の最大値を使用します。
setGradientMaxpointWithValue(color, type, value)ConditionalFormatRuleBuilder条件付き書式ルールのグラデーション最大点フィールドを設定します。
setGradientMidpointWithValue(color, type, value)ConditionalFormatRuleBuilder条件付き書式設定ルールのグラデーション中間点フィールドを設定します。
setGradientMinpoint(color)ConditionalFormatRuleBuilder条件付き書式ルールのグラデーション最小値をクリアし、代わりにルールの範囲の最小値を使用します。
setGradientMinpointWithValue(color, type, value)ConditionalFormatRuleBuilder条件付き書式設定ルールのグラデーション最小ポイントフィールドを設定します。
setItalic(italic)ConditionalFormatRuleBuilder条件付き書式設定ルールの書式にテキスト斜体を設定します。
setRanges(ranges)ConditionalFormatRuleBuilderこの条件付き書式規則が適用される1つ以上の範囲を設定します。
setStrikethrough(strikethrough)ConditionalFormatRuleBuilder条件付き書式設定ルールの書式のテキスト取り消し線を設定します。
setUnderline(underline)ConditionalFormatRuleBuilder条件付き書式設定ルールの書式にテキストの下線を設定します。
whenCellEmpty()ConditionalFormatRuleBuilderセルが空の場合にトリガーとなる条件付き書式設定ルールを設定します。
whenCellNotEmpty()ConditionalFormatRuleBuilderセルが空でない場合にトリガーとなる条件付き書式設定ルールを設定します。
whenDateAfter(date)ConditionalFormatRuleBuilder日付が指定された値より後になった場合にトリガーとなる条件付き書式規則を設定します。
whenDateAfter(relativeDate)ConditionalFormatRuleBuilder日付が指定の相対日付より後になった場合にトリガーとなる条件付き書式設定ルールを設定します。
whenDateBefore(date)ConditionalFormatRuleBuilder日付が指定の日付より前になった場合にトリガーとなる条件付き書式設定ルールを設定します。
whenDateBefore(relativeDate)ConditionalFormatRuleBuilder日付が指定の相対日付より前になった場合にトリガーとなる条件付き書式設定ルールを設定します。
whenDateEqualTo(date)ConditionalFormatRuleBuilder日付が指定の日付と等しい場合にトリガーとなる条件付き書式設定ルールを設定します。
whenDateEqualTo(relativeDate)ConditionalFormatRuleBuilder日付が指定の相対日付と等しい場合にトリガーとなる条件付き書式設定ルールを設定します。
whenFormulaSatisfied(formula)ConditionalFormatRuleBuilder指定された式がtrueと評価された場合にトリガーとなる条件付き書式設定ルールを設定します。
whenNumberBetween(start, end)ConditionalFormatRuleBuilder数値が指定された2つの値の間にあるか、そのいずれかである場合にトリガーとなる条件付き書式設定ルールを設定します。
whenNumberEqualTo(number)ConditionalFormatRuleBuilder数値が指定された値と等しい場合にトリガーとなる条件付き書式設定ルールを設定します。
whenNumberGreaterThan(number)ConditionalFormatRuleBuilder数値が指定された値よりも大きい場合にトリガーとなる条件付き書式設定ルールを設定します。
whenNumberGreaterThanOrEqualTo(number)ConditionalFormatRuleBuilder数値が指定された値以上の場合にトリガーとなる条件付き書式設定ルールを設定します。
whenNumberLessThan(number)ConditionalFormatRuleBuilder数値が指定された値より小さい場合にトリガーとなる条件付き条件付き書式ルールを設定します。
whenNumberLessThanOrEqualTo(number)ConditionalFormatRuleBuilder指定された値以下の数値が発生した場合にトリガーとなる条件付き書式設定ルールを設定します。
whenNumberNotBetween(start, end)ConditionalFormatRuleBuilder数値が2つの指定された値の間になく、どちらでもない場合にトリガーとなる条件付き書式設定ルールを設定します。
whenNumberNotEqualTo(number)ConditionalFormatRuleBuilder数値が指定された値と等しくない場合にトリガーとなる条件付き書式設定ルールを設定します。
whenTextContains(text)ConditionalFormatRuleBuilder入力に指定の値が含まれている場合にトリガーとなる条件付き書式設定ルールを設定します。
whenTextDoesNotContain(text)ConditionalFormatRuleBuilder入力に指定の値が含まれていない場合にトリガーとなる条件付き書式設定ルールを設定します。
whenTextEndsWith(text)ConditionalFormatRuleBuilder入力が指定の値で終了した場合にトリガーとなる条件付き書式設定ルールを設定します。
whenTextEqualTo(text)ConditionalFormatRuleBuilder入力が指定された値と等しい場合にトリガーとなる条件付き書式設定ルールを設定します。
whenTextStartsWith(text)ConditionalFormatRuleBuilder入力が指定された値で始まる場合にトリガーとなる条件付き書式設定ルールを設定します。
withCriteria(criteria, args)ConditionalFormatRuleBuilder条件付き書式ルールをBooleanCriteria値で定義された条件に設定します。通常は既存のルールの条件と引数から取得します。

条件付き書式構築[build()]

build()
ビルダーに適用された設定から条件付き書式規則を構築します。

Return
ConditionalFormatRule - 条件付き書式ルールの表現。

条件付き書式コピー作成[copy()]

copy()
このルールの設定を持つルールビルダープリセットを返します。

Return
ConditionalFormatRuleBuilder - このルールの設定に基づくビルダー。

ブール条件取得[getBooleanCondition()]

getBooleanCondition()
このルールがブール条件基準を使用する場合、ルールのBooleanCondition情報を取得します。それ以外の場合はnullを返します。

function getBooleanConditionSample() {
  // シートの最初の条件付き書式ルールのブール基準タイプを記録します。
  var rule = SpreadsheetApp.getActiveSheet().getConditionalFormatRules()[0];
  var booleanCondition = rule.getBooleanCondition();
  if (booleanCondition != null) {
    Logger.log(booleanCondition.getCriteriaType());
  }
}

Return
BooleanCondition - ブール条件オブジェクト。ルールがブール条件を使用しない場合はnull。

グラデーション条件取得[getGradientCondition()]

getGradientCondition()
このルールがグラデーション条件基準を使用している場合、ルールのGradientCondition情報を取得します。それ以外の場合はnullを返します。

function getGradientConditionSample() {
  //  シートの最初の条件付き書式ルールのグラデーション最小色を記録します。
  var rule = SpreadsheetApp.getActiveSheet().getConditionalFormatRules()[0];
  var gradientCondition = rule.getGradientCondition();
  if (gradientCondition != null) {
    Logger.log(gradientCondition.getMinColor());
  }
}

Return
GradientCondition - グラデーション条件オブジェクト。ルールがグラデーション条件を使用しない場合はnull。

範囲取得[getRanges()]

getRanges()
この条件付き書式規則が適用される範囲を取得します。

function getRangesSample() {
  //  シートの最初の条件付き書式ルールの各範囲を記録します。
  var rule = SpreadsheetApp.getActiveSheet().getConditionalFormatRules()[0];
  var ranges = rule.getRanges();
  for (int i = 0; i < ranges.length; i++) {
    Logger.log(ranges[i].getA1Notation());
  }
}

Return
Range [] - この条件付き書式規則が適用される範囲。

背景色設定[setBackground(色)]

setBackground(color)
条件付き書式設定ルールの書式の背景色を設定します。 nullを渡すと、背景色の書式設定がルールから削除されます。

function setBackgroundSample() {
  // セルに "hello"と等しいテキストがある場合、
  // A1:B3の範囲のセルの背景色を赤に設定する条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextEqualTo("hello")
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
colorString目的の色、またはクリアする場合はnullです。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

太字設定[setBold(太字)]

setBold(bold)
条件付き書式設定ルールの書式にテキストの太字を設定します。太字がtrueの場合、条件が満たされるとルールはテキストを太字にします。 falseの場合、条件が満たされると、ルールは既存の太字を削除します。 nullを渡すと、ルールから太字の書式設定が削除されます。

function setBoldSample() {
  // セルに "hello"と等しいテキストがある場合、
  // A1:B3の範囲のセルでテキストを太字にする条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextEqualTo("hello")
             .setBold(true)
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
boldBooleanフォーマット条件が満たされた場合にテキストを太字にするかどうか。 nullはこの設定を削除します。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

フォント色設定[setFontColor(色)]

setFontColor(color)
条件付き書式設定ルールの書式にテキストのフォント色を設定します。フォント色がtrueの場合、条件が満たされるとルールはテキストをフォント色にします。 falseの場合、条件が満たされると、ルールは既存のフォント色を削除します。 nullを渡すと、ルールからフォント色の書式設定が削除されます。

function setFontColorSample() {
  // セルに "hello"と等しいテキストがある場合、
  // 範囲A1:B3のセルのフォント色を赤に設定する条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextEqualTo("hello")
             .setFontColor("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
colorString目的の色、またはクリアする場合はnullです。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

グラデーション最大点設定[setGradientMaxpoint(色)]

setGradientMaxpoint(color)
条件付き書式設定ルールのグラデーションの最大値をクリアし、代わりにルールの範囲内の最大値を使用します。グラデーションの最大点の色も入力色に設定します。

function setGradientMaxpointSample() {
  // 範囲の最小値と最大値と比較した値に基づいて、
  // 範囲A1:B3のセルの背景色を白と赤の間のどこかに設定する条件付き書式設定ルールを
  // シートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .setGradientMaxpoint("#FF0000")
             .setGradientMinpoint("#FFFFFF")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
colorString設定する最大点の色。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

グラデーション最大点フィールド設定[setGradientMaxpointWithValue(色, タイプ, 値)]

setGradientMaxpointWithValue(color, type, value)
条件付き書式ルールのグラデーション最大点フィールドを設定します。

function setGradientMaxpointWithValueSample() {
  // 値の0、50、および100と比較して、範囲A1:B3のセルの背景色を
  // 赤、緑、青のいずれかに設定する条件付き書式設定ルールを
  // シートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .setGradientMaxpointWithValue("#0000FF", SpreadsheetApp.InterpolationType.NUMBER, "100")
             .setGradientMidpointWithValue("#00FF00", SpreadsheetApp.InterpolationType.NUMBER, "50")
             .setGradientMinpointWithValue("#FF0000", SpreadsheetApp.InterpolationType.NUMBER, "0")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
colorString設定する最大点の色。
typeInterpolationType設定する最大点補間タイプ。
valueString設定する最大値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

グラデーション中間点フィールド設定[setGradientMidpointWithValue(色)]

setGradientMidpointWithValue(color)
条件付き書式設定ルールのグラデーション中間点フィールドを設定します。渡された内挿タイプがnullの場合、すべての中点フィールドをクリアします。

function setGradientMidpointWithValueSample() {
  // 値の0、50、および100と比較して、範囲A1:B3のセルの背景色を
  // 赤、緑、青のいずれかに設定する条件付き書式設定ルールを
  // シートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .setGradientMaxpointWithValue("#0000FF", SpreadsheetApp.InterpolationType.NUMBER, "100")
             .setGradientMidpointWithValue("#00FF00", SpreadsheetApp.InterpolationType.NUMBER, "50")
             .setGradientMinpointWithValue("#FF0000", SpreadsheetApp.InterpolationType.NUMBER, "0")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
colorString設定する中点の色。
typeInterpolationType設定する中点補間タイプ、またはクリアする場合はnull。
valueString設定する中点値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

グラデーション最小点設定[setGradientMinpoint(色)]

setGradientMinpoint(color)
条件付き書式ルールのグラデーション最小値をクリアし、代わりにルールの範囲の最小値を使用します。グラデーションの最小色を入力色に設定します。

function setGradientMinpointSample() {
  // 範囲の最小値と最大値と比較した値に基づいて、
  // 範囲A1:B3のセルの背景色を白と赤の間のどこかに設定する条件付き書式設定ルールを
  // シートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .setGradientMaxpoint("#FF0000")
             .setGradientMinpoint("#FFFFFF")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
colorString設定する最小点の色。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

グラデーション最小点フィールド設定[setGradientMinpointWithValue(色, タイプ, 値)]

setGradientMinpointWithValue(color, type, value)
条件付き書式ルールのグラデーション最小点フィールドを設定します。

function setGradientMinpointWithValueSample() {
  // 値が0、50、および100の場合と比較して、
  // 範囲A1:B3のセルの背景色を赤から緑、青に設定する条件付き書式設定ルールを
  // シートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .setGradientMaxpointWithValue("#0000FF", SpreadsheetApp.InterpolationType.NUMBER, "100")
             .setGradientMidpointWithValue("#00FF00", SpreadsheetApp.InterpolationType.NUMBER, "50")
             .setGradientMinpointWithValue("#FF0000", SpreadsheetApp.InterpolationType.NUMBER, "0")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
colorString設定する最小点の色。
typeInterpolationType設定する最小点補間タイプ。
valueString設定する最小値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

斜体設定[setItalic(斜体)]

setItalic(italic)
条件付き書式設定ルールの書式にテキスト斜体を設定します。斜体が真の場合、条件が満たされるとルールはテキストを斜体にします。 falseの場合、条件が満たされると、ルールは既存の斜体を削除します。 nullを渡すと、斜体の書式設定がルールから削除されます。

function setItalicSample() {
  // セルに "hello"と等しいテキストがある場合、
  // 範囲A1:B3のセルのテキストを斜体にする条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextEqualTo("hello")
             .setItalic(true)
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
italicBooleanフォーマット条件が満たされた場合にテキストを斜体にするかどうか。 nullはこの設定を削除します。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

範囲設定[setRanges(範囲)]

setRanges(ranges)
この条件付き書式規則が適用される1つ以上の範囲を設定します。この操作は既存の範囲を置き換えます。空の配列を設定すると、既存の範囲はすべてクリアされます。ルールには少なくとも1つの範囲が必要です。

function setRangesSample() {
  // シートに条件付き書式設定ルールを追加します。
  // これにより、範囲A1:B3と範囲D4:F6のセルに1から10までの数字が含まれている場合に赤に変わります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var rangeOne = sheet.getRange("A1:B3");
  var rangeTwo = sheet.getRange("D4:F6");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenNumberBetween(1, 10)
             .setBackground("#FF0000")
             .setRanges([rangeOne, rangeTwo])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
rangesRange[]この条件付き書式規則が適用される範囲。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

取り消し線設定[setStrikethrough(取り消し線)]

setStrikethrough(strikethrough)
条件付き書式設定ルールの書式のテキスト取り消し線を設定します。取り消し線がtrueの場合、条件が満たされた場合はルールがテキストを取り消し線で取り消します。 falseの場合、条件が満たされると、ルールは既存の取り消し線フォーマットを削除します。 nullを渡すと、取り消し線の書式設定がルールから削除されます。

function setStrikethroughSample() {
  // セルに "hello"と等しいテキストがある場合、
  // A1:B3の範囲のセルにテキストを取り消す条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextEqualTo("hello")
             .setStrikethrough(true)
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
strikethroughBooleanフォーマット条件が満たされた場合にテキストを打破するかどうか。 nullはこの設定を削除します。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

下線設定[setUnderline(下線)]

setUnderline(underline)
条件付き書式設定ルールの書式にテキストの下線を設定します。 underlineがtrueの場合、条件が満たされるとルールはテキストに下線を引きます。 falseの場合、条件が満たされると、ルールは既存の下線をすべて削除します。 nullを渡すと、ルールから下線の書式設定が削除されます。

function setUnderlineSample() {
  // セルに "hello"と等しいテキストがある場合、
  // A1:B3の範囲のセルにテキストの下線を引く条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextEqualTo("hello")
             .setUnderline(true)
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
underlineBooleanフォーマット条件が満たされた場合にテキストに下線を引くかどうか。 nullはこの設定を削除します。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

空白であるかの条件設定[whenCellEmpty()]

whenCellEmpty()
セルが空の場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenCellEmptySample() {
  // シートに条件付き書式設定ルールを追加し、
  // A1:B3の範囲のセルが空の場合は赤になります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenCellEmpty()
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

空白ではないかの条件設定[whenCellNotEmpty()]

whenCellNotEmpty()
セルが空でない場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenCellNotEmptySample() {
  // シートに条件付き書式設定ルールを追加し、
  // A1:B3の範囲にあるセルが空でない場合は赤になります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenCellNotEmpty()
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定日付より後かの条件設定1[whenDateAfter(日付)]

whenDateAfter(date)
日付が指定された値より後になった場合にトリガーとなる条件付き書式規則を設定します。

function whenDateAfter1Sample() {
  // セルに条件付き書式規則を追加して、
  // 範囲がA1:B3のセルに1993年11月4日より後の日付が含まれている場合は赤に変えるようにします。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenDateAfter(new Date("11/4/1993"))
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
dateDate最新の日付。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定日付より後かの条件設定2[whenDateAfter(相対日付)]

whenDateAfter(relativeDate)
日付が指定の相対日付より後になった場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenDateAfter2Sample() {
  // シートに条件付き書式設定ルールを追加します。
  // これにより、範囲A1:B3のセルに今日以降の日付が含まれている場合、それらのセルが赤に変わります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenDateAfter(SpreadsheetApp.RelativeDate.TODAY)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
dateRelativeDate選択された日付タイプに対する最新の日付。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定日付より前かの条件設定1[whenDateBefore(日付)]

whenDateBefore(date)
日付が指定の日付より前になった場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenDateBefore1Sample() {
  // シートに条件付き書式規則を追加して、
  // 範囲A1:B3のセルに1993年11月4日より前の日付が含まれている場合に赤に変えるようにします。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenDateBefore(new Date("11/4/1993"))
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
dateDate許容できない最も早い日付。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定日付より前かの条件設定2[whenDateBefore(相対日付)]

whenDateBefore(relativeDate)
日付が指定の相対日付より前になった場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenDateBefore2Sample() {
  // シートに条件付き書式設定ルールを追加します。
  // これにより、範囲A1:B3のセルに今日より前の日付が含まれている場合に、それらのセルが赤に変わります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenDateBefore(SpreadsheetApp.RelativeDate.TODAY)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
dateRelativeDate選択された日付タイプに対する最新の日付。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定日付と等しいかの条件設定1[whenDateEqualTo(日付)]

whenDateEqualTo(date)
日付が指定の日付と等しい場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenDateEqualTo1Sample() {
  // セルに日付11/4/199が含まれている場合、
  // 範囲A1:B3のセルが赤に変わる条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenDateEqualTo(new Date("11/4/1993"))
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
dateDate唯一の受け入れ可能な日付。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定日付と等しいかの条件設定2[whenDateEqualTo(相対日付)]

whenDateEqualTo(relativeDate)
日付が指定の相対日付と等しい場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenDateEqualTo2Sample() {
  // 今日の日付が含まれている場合に範囲A1:B3のセルが
  // 赤に変わる条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenDateEqualTo(SpreadsheetApp.RelativeDate.TODAY)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
dateRelativeDate選択された日付タイプに対する最新の日付。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定式の条件設定[whenFormulaSatisfied(式)]

whenFormulaSatisfied(formula)
指定された式がtrueと評価された場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenFormulaSatisfiedSample() {
  // シートに条件付き書式規則を追加し、A1:B3の範囲のセルが
  // "=EQ(B4,C3)"の条件を満たすと赤くなるようにします。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenFormulaSatisfied("=EQ(B4, C3)")
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
formulaString入力が有効な場合にtrueと評価されるカスタム式。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定数値が2つの間にあるかの条件設定[whenNumberBetween(開始, 終了)]

whenNumberBetween(start, end)
数値が指定された2つの値の間にあるか、そのいずれかである場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenNumberBetweenSample() {
  // シートに条件付き書式設定ルールを追加します。
  // これにより、A1:B3の範囲のセルに1~10の数値が含まれている場合にそれらのセルが赤に変わります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenNumberBetween(1, 10)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
startNumber許容される最小値。
endNumber許容可能な最大値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定数値と等しいかの条件設定[whenNumberEqualTo(数値)]

whenNumberEqualTo(number)
数値が指定された値と等しい場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenNumberEqualToSample() {
  // シートに条件付き書式ルールを追加します。
  // これにより、A1:B3の範囲のセルに10の数字が含まれている場合、それらのセルが赤に変わります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenNumberEqualTo(10)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
numberNumber唯一の許容値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定数値より大きいかの条件設定[whenNumberGreaterThan(数値)]

whenNumberGreaterThan(number)
数値が指定された値よりも大きい場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenNumberGreaterThanSample() {
  // シートに条件付き書式ルールを追加します。
  // これにより、A1:B3の範囲のセルに10より大きい数が含まれている場合、それらのセルが赤くなります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenNumberGreaterThan(10)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
numberNumber許容できない最大値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定数値以上かの条件設定[whenNumberGreaterThanOrEqualTo(数値)]

whenNumberGreaterThanOrEqualTo(number)
数値が指定された値以上の場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenNumberGreaterThanOrEqualToSample() {
  // シートに10以上の数値が含まれている場合、
  // 範囲A1:B3のセルが赤に変わる条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenNumberGreaterThanOrEqualTo(10)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
numberNumber許容される最小値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定数値より小さいかの条件設定[whenNumberLessThan(数値)]

whenNumberLessThan(number)
数値が指定された値より小さい場合にトリガーとなる条件付き条件付き書式ルールを設定します。

function whenNumberLessThanSample() {
  // シートに条件付き書式設定ルールを追加します。
  // これにより、A1:B3の範囲のセルに10未満の数値が含まれている場合、それらのセルが赤くなります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenNumberLessThan(10)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
numberNumber許容できない最小値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定数値以下かの条件設定[whenNumberLessThanOrEqualTo(数値)]

whenNumberLessThanOrEqualTo(number)
指定された値以下の数値が発生した場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenNumberLessThanOrEqualToSample() {
  // シートに10以下の数値が含まれている場合、
  // 範囲A1:B3のセルが赤に変わる条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenNumberLessThanOrEqualTo(10)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
numberNumber許容可能な最大値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定数値が2つの間にないかの条件設定[whenNumberNotBetween(開始, 終了)]

whenNumberNotBetween(start, end)
数値が2つの指定された値の間になく、どちらでもない場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenNumberNotBetweenSample() {
  // シートに条件付き書式規則を追加します。
  // これにより、A1:B3の範囲のセルに1~10以外の数値が含まれている場合にそれらのセルが赤に変わります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenNumberNotBetween(1, 10)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
startNumber許容できない最小値。
endNumber許容できない最大値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定数値と等しくないかの条件設定1[whenNumberNotEqualTo(数値)]

whenNumberNotEqualTo(number)
数値が指定された値と等しくない場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenNumberNotEqualToSample() {
  // シートに条件付き書式設定ルールを追加します。
  // これにより、A1:B3の範囲のセルに10の数字が含まれていない場合に赤に変わります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenNumberNotEqualTo(10)
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
numberNumber唯一の許容できない値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定値が含まれているかの条件設定[whenTextContains(テキスト)]

whenTextContains(text)
入力に指定の値が含まれている場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenTextContainsSample() {
  // テキスト「hello」が含まれている場合に範囲A1:B3のセルが
  // 赤に変わる条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextContains("hello")
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
textString入力に含まれている必要がある値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定値が含まれていないかの条件設定[whenTextDoesNotContain(テキスト)]

whenTextDoesNotContain(text)
入力に指定の値が含まれていない場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenTextDoesNotContainSample() {
  // テキスト「hello」が含まれていない場合、範囲A1:B3のセルが
  // 赤に変わる条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextDoesNotContain("hello")
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
textString入力に含まれてはならない値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定値で終わるかの条件設定[whenTextEndsWith(テキスト)]

whenTextEndsWith(text)
入力が指定の値で終了した場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenTextEndsWithSample() {
  // シートに条件付き書式設定ルールを追加し、A1:B3の範囲のセルが
  // "hello"というテキストで終わっている場合は赤になります。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextEndsWith("hello")
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
textString文字列の末尾と比較するテキストです。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定値と等しいかの条件設定[whenTextEqualTo(テキスト)]

whenTextEqualTo(text)
入力が指定された値と等しい場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenTextEqualToSample() {
  // シートに条件付き書式設定ルールを追加し、A1:B3の範囲のセルに
  // "hello"と等しいテキストが含まれている場合にそれらのセルを赤くします。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextEqualTo("hello")
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
textString唯一の許容値。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

指定値で始まるかの条件設定[whenTextStartsWith(テキスト)]

whenTextStartsWith(text)
入力が指定された値で始まる場合にトリガーとなる条件付き書式設定ルールを設定します。

function whenTextStartsWithSample() {
  // テキスト「hello」で始まっている場合、
  // 範囲A1:B3のセルが赤に変わる条件付き書式設定ルールをシートに追加します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getRange("A1:B3");
  var rule = SpreadsheetApp.newConditionalFormatRule()
             .whenTextStartsWith("hello")
             .setBackground("#FF0000")
             .setRanges([range])
             .build();
  var rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
textString文字列の先頭と比較するテキストです。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。

基準条件設定[withCriteria(条件, 引数)]

withCriteria(criteria, args)
条件付き書式ルールをBooleanCriteria値で定義された条件に設定します。通常は既存のルールの条件と引数から取得します。

function ConditionalFormatRuleBuilderSample() {
  // 最初のアクティブな条件付き書式ルールのコピーである
  // 新しい条件付き書式ルールを追加します。
  // ただし、セルを黒の背景色に設定します。
  var sheet = SpreadsheetApp.getActiveSheet();
  var rules = sheet.getConditionalFormatRules();
  var booleanCondition = rules[0].getBooleanCondition();
  if (booleanCondition != null) {
    var rule = SpreadsheetApp.newConditionalFormatRule()
               .withCriteria(booleanCondition.getCriteriaType(),
                booleanCondition.getCriteriaValues())
               .setBackground("#000000")
               .build();
    rules.push(rule);
  }
  sheet.setConditionalFormatRules(rules);
}
Parameters
名前タイプ説明
criteriaBooleanCriteria条件付き書式基準のタイプ。
argsObject[]基準タイプに適した引数の配列。引数の数とその型は、上記の対応するwhen ...()メソッドと一致します。

Return
ConditionalFormatRuleBuilder - 連鎖用のビルダー。


ブール値基準列挙型[BooleanCriteria]

ブール値の基準です。

Enum BooleanCriteria
条件付き書式またはフィルタで使用できるブール基準を表す列挙体。

Properties
プロパティタイプ説明
CELL_EMPTYEnumセルが空の場合に基準が満たされます。
CELL_NOT_EMPTYEnumセルが空でない場合、基準は満たされます。
DATE_AFTEREnum日付が指定された値より後になると、基準は満たされます。
DATE_BEFOREEnum日付が指定された値より前になると、基準は満たされます。
DATE_EQUAL_TOEnum日付が指定された値に等しい場合に基準が満たされます。
DATE_AFTER_RELATIVEEnum日付が相対日付値より後になった場合に基準が満たされます。
DATE_BEFORE_RELATIVEEnum日付が相対日付値より前の場合に基準が満たされます。
DATE_EQUAL_TO_RELATIVEEnum日付が相対日付値と等しい場合に基準が満たされます。
NUMBER_BETWEENEnum与えられた値の間にある数があるとき、基準は満たされます。
NUMBER_EQUAL_TOEnum与えられた値に等しい数があるとき、基準は満たされます。
NUMBER_GREATER_THANEnum与えられた値よりも大きい数があるとき、基準は満たされます。
NUMBER_GREATER_THAN_OR_EQUAL_TOEnum指定された値以上の数値になると、基準が満たされます。
NUMBER_LESS_THANEnum与えられた値よりも小さい数値が基準に合致したとき。
NUMBER_LESS_THAN_OR_EQUAL_TOEnum指定された値以下の数値になると、基準が満たされます。
NUMBER_NOT_BETWEENEnum与えられた値の間にない数があるとき、基準は満たされます。
NUMBER_NOT_EQUAL_TOEnum与えられた値と等しくない数があるとき、基準は満たされます。
TEXT_CONTAINSEnum入力に与えられた値が含まれていると、基準は満たされます。
TEXT_DOES_NOT_CONTAINEnum入力に与えられた値が含まれていない場合、基準は満たされます。
TEXT_EQUAL_TOEnum入力が与えられた値に等しいとき、基準は満たされます。
TEXT_STARTS_WITHEnum入力が与えられた値で始まったとき、基準は満たされます。
TEXT_ENDS_WITHEnum入力が指定された値で終了した場合に基準が満たされます。
CUSTOM_FORMULAEnum入力が与えられた式を真に評価させるとき、基準は満たされます。

参照:Google Apps Script | REFERENCE | SpreadSheet | Enum BooleanCriteria


最後に

GAS条件付き書式機能のまとめをご紹介させていただきました。

必要に応じて、有益な情報でさらに更新していきたいと思います。

プログラミングスキルを向上させるためには、本を読むだけでは脳にインプットされませんね。

実際に手を動かしてアウトプットしまくるのが一番の近道だと思います。

実際にサンプルソースをコピーして実行した結果がどうなるかを体験してみてください。

自分なりのアレンジを加えたり、なぜエラーになるのかを考え、何度も試行錯誤して問題を解決しまくり、着実に理解しながらスキルを向上させていきましょう。

GASはExcelVBAとはかなり違いますが、ベースとなっているJavaScriptは覚えて損はないプログラミング言語なのでショートカットキーなどと組み合わせてぜひ活用してみてください。

Googleスプレッドシート全ショートカットキー一覧はこちら↓↓↓

Googleスプレッドシートの使い方や機能がわかるショートカットキー全まとめ一覧【初心者こそ必見】
表計算ソフトとして、まだまだExcelのシェア率は高いですが、GoogleスプレッドシートにはExcelにはない超強力な関数があったり、Excelとは違って常に最新版を無料で使用できます。なにより、インターネットを使ったオンライン...

ショートカットキー一覧にもGASメソッドを載せています。どの操作からどのメソッドが呼ばれるのかイメージしてください。




コメント