ConditionalFormatRuleBuilder

Builder for conditional format rules.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a number between 1 and 10.
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenNumberBetween(1, 10)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

### Methods

| Method | Return type | Brief description |
|---|---|---|
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#build()` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule` | Constructs a conditional format rule from the settings applied to the builder. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#copy()` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Returns a rule builder preset with this rule's settings. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#getBooleanCondition()` | `https://developers.google.com/apps-script/reference/spreadsheet/boolean-condition|null` | Retrieves the rule's `https://developers.google.com/apps-script/reference/spreadsheet/boolean-condition` information if this rule uses boolean condition criteria. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#getGradientCondition()` | `https://developers.google.com/apps-script/reference/spreadsheet/gradient-condition|null` | Retrieves the rule's `https://developers.google.com/apps-script/reference/spreadsheet/gradient-condition` information, if this rule uses gradient condition criteria. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#getRanges()` | `https://developers.google.com/apps-script/reference/spreadsheet/range` | Retrieves the ranges to which this conditional format rule is applied. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setBackground(String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the background color for the conditional format rule's format. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setBackgroundObject(Color)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the background color for the conditional format rule's format. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setBold(Boolean)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets text bolding for the conditional format rule's format. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setFontColor(String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the font color for the conditional format rule's format. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setFontColorObject(Color)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the font color for the conditional format rule's format. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setGradientMaxpoint(String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Clears the conditional format rule's gradient maxpoint value, and instead uses the maximum value in the rule's ranges. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setGradientMaxpointObject(Color)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Clears the conditional format rule's gradient maxpoint value, and instead uses the maximum value in the rule's ranges. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setGradientMaxpointObjectWithValue(Color,InterpolationType,String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule's gradient maxpoint fields. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setGradientMaxpointWithValue(String,InterpolationType,String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule's gradient maxpoint fields. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setGradientMidpointObjectWithValue(Color,InterpolationType,String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule's gradient midpoint fields. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setGradientMidpointWithValue(String,InterpolationType,String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule's gradient midpoint fields. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setGradientMinpoint(String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Clears the conditional format rule's gradient minpoint value, and instead uses the minimum value in the rule's ranges. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setGradientMinpointObject(Color)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Clears the conditional format rule's gradient minpoint value, and instead uses the minimum value in the rule's ranges. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setGradientMinpointObjectWithValue(Color,InterpolationType,String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule's gradient minpoint fields. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setGradientMinpointWithValue(String,InterpolationType,String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule's gradient minpoint fields. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setItalic(Boolean)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets text italics for the conditional format rule's format. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setRanges(Range)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets one or more ranges to which this conditional format rule is applied. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setStrikethrough(Boolean)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets text strikethrough for the conditional format rule's format. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#setUnderline(Boolean)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets text underlining for the conditional format rule's format. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenCellEmpty()` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when the cell is empty. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenCellNotEmpty()` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when the cell is not empty. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenDateAfter(Date)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a date is after the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenDateAfter(RelativeDate)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a date is after the given relative date. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenDateBefore(Date)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a date is before the given date. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenDateBefore(RelativeDate)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a date is before the given relative date. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenDateEqualTo(Date)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a date is equal to the given date. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenDateEqualTo(RelativeDate)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a date is equal to the given relative date. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenFormulaSatisfied(String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when that the given formula evaluates to `true`. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenNumberBetween(Number,Number)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a number falls between, or is either of, two specified values. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenNumberEqualTo(Number)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a number is equal to the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenNumberGreaterThan(Number)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a number is greater than the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenNumberGreaterThanOrEqualTo(Number)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a number is greater than or equal to the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenNumberLessThan(Number)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional conditional format rule to trigger when a number less than the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenNumberLessThanOrEqualTo(Number)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a number less than or equal to the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenNumberNotBetween(Number,Number)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a number does not fall between, and is neither of, two specified values. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenNumberNotEqualTo(Number)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when a number is not equal to the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenTextContains(String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when that the input contains the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenTextDoesNotContain(String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when that the input does not contain the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenTextEndsWith(String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when that the input ends with the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenTextEqualTo(String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when that the input is equal to the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#whenTextStartsWith(String)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to trigger when that the input starts with the given value. |
| `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#withCriteria(BooleanCriteria,Object)` | `https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` | Sets the conditional format rule to criteria defined by `https://developers.google.com/apps-script/reference/spreadsheet/boolean-criteria` values, typically taken from the `https://developers.google.com/apps-script/reference/spreadsheet/boolean-condition#getCriteriaType()` and `https://developers.google.com/apps-script/reference/spreadsheet/boolean-condition#getCriteriaValues()` of an existing rule. |

## Detailed documentation

### `build()`

Constructs a conditional format rule from the settings applied to the builder.

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule` --- A representation of the conditional format rule.

*** ** * ** ***

### `copy()`

Returns a rule builder preset with this rule's settings.

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- A builder based on this rule's settings.

*** ** * ** ***

### `getBooleanCondition()`

Retrieves the rule's `https://developers.google.com/apps-script/reference/spreadsheet/boolean-condition` information if this rule uses
boolean condition criteria. Otherwise returns `null`. Boolean conditions contain
formatting settings such as font weight, font color, and background color.

```javascript
// Log the boolean criteria type of the first conditional format rules of a
// sheet.
const rule = SpreadsheetApp.getActiveSheet().getConditionalFormatRules()[0];
const booleanCondition = rule.getBooleanCondition();
if (booleanCondition != null) {
  Logger.log(booleanCondition.getCriteriaType());
}
```

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/boolean-condition|null` --- The boolean condition object, or `null` if the rule does not use a boolean
condition.

*** ** * ** ***

### `getGradientCondition()`

Retrieves the rule's `https://developers.google.com/apps-script/reference/spreadsheet/gradient-condition` information, if this rule
uses gradient condition criteria. Otherwise returns `null`.

```javascript
// Log the gradient minimum color of the first conditional format rule of a
// sheet.
const rule = SpreadsheetApp.getActiveSheet().getConditionalFormatRules()[0];
const gradientCondition = rule.getGradientCondition();
if (gradientCondition != null) {
  // Assume the color has ColorType.RGB.
  Logger.log(gradientCondition.getMinColorObject().asRgbColor().asHexString());
}
```

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/gradient-condition|null` --- The gradient condition object, or `null` if the rule does not use a gradient
condition.

*** ** * ** ***

### `getRanges()`

Retrieves the ranges to which this conditional format rule is applied.

```javascript
// Log each range of the first conditional format rule of a sheet.
const rule = SpreadsheetApp.getActiveSheet().getConditionalFormatRules()[0];
const ranges = rule.getRanges();
for (let i = 0; i < ranges.length; i++) {
  Logger.log(ranges[i].getA1Notation());
}
```

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/range` --- The ranges to which this conditional format rule is applied.

*** ** * ** ***

### `setBackground(color)`

Sets the background color for the conditional format rule's format. Passing in `null`
removes the background color format setting from the rule.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color to red if the cell has text equal to "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextEqualTo('hello')
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `String` | The desired color or `null` to clear. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setBackgroundObject(color)`

Sets the background color for the conditional format rule's format. Passing in `null`
removes the background color format setting from the rule.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color to theme background color if the cell has text
// equal to "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const color = SpreadsheetApp.newColor()
                  .setThemeColor(SpreadsheetApp.ThemeColorType.BACKGROUND)
                  .build();
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextEqualTo('hello')
                 .setBackground(color)
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `https://developers.google.com/apps-script/reference/spreadsheet/color` | The desired color object or `null` to clear. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setBold(bold)`

Sets text bolding for the conditional format rule's format. If `bold` is `true`,
the rule bolds text if the condition is met; if `false`, the rule removes any existing
bolding if the condition is met. Passing in `null` removes the bold format setting from
the rule.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn their text bold if the cell has text equal to "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextEqualTo('hello')
                 .setBold(true)
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `bold` | `Boolean` | Whether or not the text should be bolded if the format condition is met; `null` removes this setting. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setFontColor(color)`

Sets the font color for the conditional format rule's format. Passing in `null` removes
the font color format setting from the rule.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their font color to red if the cell has text equal to "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextEqualTo('hello')
                 .setFontColor('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `String` | The desired color or `null` to clear. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setFontColorObject(color)`

Sets the font color for the conditional format rule's format. Passing in `null` removes
the font color format setting from the rule.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their font color to theme text color if the cell has text equal to
// "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const color = SpreadsheetApp.newColor()
                  .setThemeColor(SpreadsheetApp.ThemeColorType.TEXT)
                  .build();
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextEqualTo('hello')
                 .setFontColor(color)
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `https://developers.google.com/apps-script/reference/spreadsheet/color` | The desired color object or `null` to clear. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setGradientMaxpoint(color)`

Clears the conditional format rule's gradient maxpoint value, and instead uses the maximum
value in the rule's ranges. Also sets the gradient's maxpoint color to the input color.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color somewhere between white and red, based on their
// values in comparison to the ranges minimum and maximum values.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .setGradientMaxpoint('#FF0000')
                 .setGradientMinpoint('#FFFFFF')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `String` | The maxpoint color to set. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setGradientMaxpointObject(color)`

Clears the conditional format rule's gradient maxpoint value, and instead uses the maximum
value in the rule's ranges. Also sets the gradient's maxpoint color to the input color.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color somewhere between theme text and background
// colors, based on their values in comparison to the ranges minimum and maximum
// values.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const textColor = SpreadsheetApp.newColor()
                      .setThemeColor(SpreadsheetApp.ThemeColorType.TEXT)
                      .build();
const backgroundColor =
    SpreadsheetApp.newColor()
        .setThemeColor(SpreadsheetApp.ThemeColorType.BACKGROUND)
        .build();
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .setGradientMaxpoint(textColor)
                 .setGradientMinpoint(backgroundColor)
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `https://developers.google.com/apps-script/reference/spreadsheet/color` | The maxpoint color object to set. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setGradientMaxpointObjectWithValue(color, type, value)`

Sets the conditional format rule's gradient maxpoint fields.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color somewhere from theme accent 1, accent 2 to accent
// 3 colors, based on their values in comparison to the values 0, 50, and 100.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const color1 = SpreadsheetApp.newColor()
                   .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT1)
                   .build();
const color2 = SpreadsheetApp.newColor()
                   .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT2)
                   .build();
const color3 = SpreadsheetApp.newColor()
                   .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT3)
                   .build();
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .setGradientMaxpointWithValue(
                     color1,
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '100',
                     )
                 .setGradientMidpointWithValue(
                     color2,
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '50',
                     )
                 .setGradientMinpointWithValue(
                     color3,
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '0',
                     )
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `https://developers.google.com/apps-script/reference/spreadsheet/color` | The maxpoint color to set. |
| `type` | `https://developers.google.com/apps-script/reference/spreadsheet/interpolation-type` | The maxpoint interpolation type to set. |
| `value` | `String` | The maxpoint value to set. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setGradientMaxpointWithValue(color, type, value)`

Sets the conditional format rule's gradient maxpoint fields.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color somewhere from red green to blue, based on their
// values in comparison to the values 0, 50, and 100.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .setGradientMaxpointWithValue(
                     '#0000FF',
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '100',
                     )
                 .setGradientMidpointWithValue(
                     '#00FF00',
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '50',
                     )
                 .setGradientMinpointWithValue(
                     '#FF0000',
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '0',
                     )
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `String` | The maxpoint color to set. |
| `type` | `https://developers.google.com/apps-script/reference/spreadsheet/interpolation-type` | The maxpoint interpolation type to set. |
| `value` | `String` | The maxpoint value to set. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setGradientMidpointObjectWithValue(color, type, value)`

Sets the conditional format rule's gradient midpoint fields. Clears all of the midpoint fields
if the passed in interpolation type is `null`.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color somewhere from theme accent 1 to accent 2 to
// accent 3 colors, based on their values in comparison to the values 0, 50, and
// 100.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const color1 = SpreadsheetApp.newColor()
                   .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT1)
                   .build();
const color2 = SpreadsheetApp.newColor()
                   .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT2)
                   .build();
const color3 = SpreadsheetApp.newColor()
                   .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT3)
                   .build();
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .setGradientMaxpointWithValue(
                     color1,
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '100',
                     )
                 .setGradientMidpointWithValue(
                     color2,
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '50',
                     )
                 .setGradientMinpointWithValue(
                     color3,
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '0',
                     )
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `https://developers.google.com/apps-script/reference/spreadsheet/color` | The midpoint color to set. |
| `type` | `https://developers.google.com/apps-script/reference/spreadsheet/interpolation-type` | The midpoint interpolation type to set or `null` to clear. |
| `value` | `String` | The midpoint value to set. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setGradientMidpointWithValue(color, type, value)`

Sets the conditional format rule's gradient midpoint fields. Clears all of the midpoint fields
if the passed in interpolation type is `null`.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color somewhere from red green to blue, based on their
// values in comparison to the values 0, 50, and 100.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .setGradientMaxpointWithValue(
                     '#0000FF',
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '100',
                     )
                 .setGradientMidpointWithValue(
                     '#00FF00',
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '50',
                     )
                 .setGradientMinpointWithValue(
                     '#FF0000',
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '0',
                     )
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `String` | The midpoint color to set. |
| `type` | `https://developers.google.com/apps-script/reference/spreadsheet/interpolation-type` | The midpoint interpolation type to set or `null` to clear. |
| `value` | `String` | The midpoint value to set. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setGradientMinpoint(color)`

Clears the conditional format rule's gradient minpoint value, and instead uses the minimum
value in the rule's ranges. Also sets the gradient's minpoint color to the input color.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color somewhere between white and red, based on their
// values in comparison to the ranges minimum and maximum values.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .setGradientMaxpoint('#FF0000')
                 .setGradientMinpoint('#FFFFFF')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `String` | The minpoint color to set. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setGradientMinpointObject(color)`

Clears the conditional format rule's gradient minpoint value, and instead uses the minimum
value in the rule's ranges. Also sets the gradient's minpoint color to the input color.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color somewhere between theme text and background
// colors, based on their values in comparison to the ranges minimum and maximum
// values.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const textColor = SpreadsheetApp.newColor()
                      .setThemeColor(SpreadsheetApp.ThemeColorType.TEXT)
                      .build();
const backgroundColor =
    SpreadsheetApp.newColor()
        .setThemeColor(SpreadsheetApp.ThemeColorType.BACKGROUND)
        .build();
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .setGradientMaxpoint(textColor)
                 .setGradientMinpoint(backgroundColor)
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `https://developers.google.com/apps-script/reference/spreadsheet/color` | The minpoint color object to set. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setGradientMinpointObjectWithValue(color, type, value)`

Sets the conditional format rule's gradient minpoint fields.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color somewhere from theme accent 1 to accent 2 to
// accent 3 colors, based on their values in comparison to the values 0, 50, and
// 100.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const color1 = SpreadsheetApp.newColor()
                   .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT1)
                   .build();
const color2 = SpreadsheetApp.newColor()
                   .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT2)
                   .build();
const color3 = SpreadsheetApp.newColor()
                   .setThemeColor(SpreadsheetApp.ThemeColorType.ACCENT3)
                   .build();
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .setGradientMaxpointWithValue(
                     color1,
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '100',
                     )
                 .setGradientMidpointWithValue(
                     color2,
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '50',
                     )
                 .setGradientMinpointWithValue(
                     color3,
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '0',
                     )
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `https://developers.google.com/apps-script/reference/spreadsheet/color` | The minpoint color to set. |
| `type` | `https://developers.google.com/apps-script/reference/spreadsheet/interpolation-type` | The minpoint interpolation type to set. |
| `value` | `String` | The minpoint value to set. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setGradientMinpointWithValue(color, type, value)`

Sets the conditional format rule's gradient minpoint fields.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// set their background color somewhere from red to green to blue, based on
// their values in comparison to the values 0, 50, and 100.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .setGradientMaxpointWithValue(
                     '#0000FF',
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '100',
                     )
                 .setGradientMidpointWithValue(
                     '#00FF00',
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '50',
                     )
                 .setGradientMinpointWithValue(
                     '#FF0000',
                     SpreadsheetApp.InterpolationType.NUMBER,
                     '0',
                     )
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `color` | `String` | The minpoint color to set. |
| `type` | `https://developers.google.com/apps-script/reference/spreadsheet/interpolation-type` | The minpoint interpolation type to set. |
| `value` | `String` | The minpoint value to set. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setItalic(italic)`

Sets text italics for the conditional format rule's format. If `italic` is `true`,
the rule italicises text if the condition is met; if `false`, the rule removes any
existing italicization if the condition is met. Passing in `null` removes the italic
format setting from the rule.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn their text italic if the cell has text equal to "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextEqualTo('hello')
                 .setItalic(true)
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `italic` | `Boolean` | Whether or not the text should be italicised if the format condition is met; `null` removes this setting. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setRanges(ranges)`

Sets one or more ranges to which this conditional format rule is applied. This operation
replaces any existing ranges. Setting an empty array clears any existing ranges. A rule must
have at least one range.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3
// and range D4:F6 to turn red if they contain a number between 1 and 10.
const sheet = SpreadsheetApp.getActiveSheet();
const rangeOne = sheet.getRange('A1:B3');
const rangeTwo = sheet.getRange('D4:F6');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenNumberBetween(1, 10)
                 .setBackground('#FF0000')
                 .setRanges([rangeOne, rangeTwo])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `ranges` | `https://developers.google.com/apps-script/reference/spreadsheet/range` | The ranges to which this conditional format rule is applied. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setStrikethrough(strikethrough)`

Sets text strikethrough for the conditional format rule's format. If `strikethrough` is
`true`, the rule strikesthrough text if the condition is met; if `false`, the rule
removes any existing strikethrough formatting if the condition is met. Passing in `null`
removes the strikethrough format setting from the rule.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// strikethrough their text if the cell has text equal to "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextEqualTo('hello')
                 .setStrikethrough(true)
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `strikethrough` | `Boolean` | Whether or not the text should be struckthrough if the format condition is met; `null` removes this setting. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `setUnderline(underline)`

Sets text underlining for the conditional format rule's format. If `underline` is `true`, the rule underlines text if the condition is met; if `false`, the rule removes any
existing underlines if the condition is met. Passing in `null` removes the underline
format setting from the rule.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// underline their text if the cell has text equal to "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextEqualTo('hello')
                 .setUnderline(true)
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `underline` | `Boolean` | Whether or not the text should be underlined if the format condition is met; `null` removes this setting. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenCellEmpty()`

Sets the conditional format rule to trigger when the cell is empty.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they are empty.
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenCellEmpty()
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenCellNotEmpty()`

Sets the conditional format rule to trigger when the cell is not empty.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they are not empty.
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenCellNotEmpty()
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenDateAfter(date)`

Sets the conditional format rule to trigger when a date is after the given value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a date after 11/4/1993.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenDateAfter(new Date('11/4/1993'))
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `date` | `Date` | The latest date. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenDateAfter(date)`

Sets the conditional format rule to trigger when a date is after the given relative date.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a date after today.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenDateAfter(SpreadsheetApp.RelativeDate.TODAY)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `date` | `https://developers.google.com/apps-script/reference/spreadsheet/relative-date` | The latest date relative to the date type selected. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenDateBefore(date)`

Sets the conditional format rule to trigger when a date is before the given date.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a date before 11/4/1993.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenDateBefore(new Date('11/4/1993'))
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `date` | `Date` | The earliest unacceptable date. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenDateBefore(date)`

Sets the conditional format rule to trigger when a date is before the given relative date.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a date before today.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenDateBefore(SpreadsheetApp.RelativeDate.TODAY)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `date` | `https://developers.google.com/apps-script/reference/spreadsheet/relative-date` | The latest date relative to the date type selected. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenDateEqualTo(date)`

Sets the conditional format rule to trigger when a date is equal to the given date.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain the date 11/4/1993.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenDateEqualTo(new Date('11/4/1993'))
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `date` | `Date` | The sole acceptable date. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenDateEqualTo(date)`

Sets the conditional format rule to trigger when a date is equal to the given relative date.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain todays date.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenDateEqualTo(SpreadsheetApp.RelativeDate.TODAY)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `date` | `https://developers.google.com/apps-script/reference/spreadsheet/relative-date` | The latest date relative to the date type selected. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenFormulaSatisfied(formula)`

Sets the conditional format rule to trigger when that the given formula evaluates to `true`.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they satisfy the condition "=EQ(B4, C3)".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenFormulaSatisfied('=EQ(B4, C3)')
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `formula` | `String` | A custom formula that evaluates to `true` if the input is valid. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenNumberBetween(start, end)`

Sets the conditional format rule to trigger when a number falls between, or is either of, two
specified values.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a number between 1 and 10.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenNumberBetween(1, 10)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `start` | `Number` | The lowest acceptable value. |
| `end` | `Number` | The highest acceptable value. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenNumberEqualTo(number)`

Sets the conditional format rule to trigger when a number is equal to the given value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain the number 10.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenNumberEqualTo(10)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `number` | `Number` | The sole acceptable value. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenNumberGreaterThan(number)`

Sets the conditional format rule to trigger when a number is greater than the given value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a number greater than 10.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenNumberGreaterThan(10)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `number` | `Number` | The highest unacceptable value. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenNumberGreaterThanOrEqualTo(number)`

Sets the conditional format rule to trigger when a number is greater than or equal to the given
value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a number greater than or equal to 10.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenNumberGreaterThanOrEqualTo(10)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `number` | `Number` | The lowest acceptable value. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenNumberLessThan(number)`

Sets the conditional conditional format rule to trigger when a number less than the given
value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a number less than 10.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenNumberLessThan(10)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `number` | `Number` | The lowest unacceptable value. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenNumberLessThanOrEqualTo(number)`

Sets the conditional format rule to trigger when a number less than or equal to the given
value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a number less than or equal to 10.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenNumberLessThanOrEqualTo(10)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `number` | `Number` | The highest acceptable value. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenNumberNotBetween(start, end)`

Sets the conditional format rule to trigger when a number does not fall between, and is neither
of, two specified values.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain a number not between 1 and 10.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenNumberNotBetween(1, 10)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `start` | `Number` | The lowest unacceptable value. |
| `end` | `Number` | The highest unacceptable value. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenNumberNotEqualTo(number)`

Sets the conditional format rule to trigger when a number is not equal to the given value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they don't contain the number 10.

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenNumberNotEqualTo(10)
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `number` | `Number` | The sole unacceptable value. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenTextContains(text)`

Sets the conditional format rule to trigger when that the input contains the given value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they contain the text "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextContains('hello')
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `text` | `String` | The value that the input must contain. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenTextDoesNotContain(text)`

Sets the conditional format rule to trigger when that the input does not contain the given
value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they don't contain the text "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextDoesNotContain('hello')
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `text` | `String` | The value that the input must not contain. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenTextEndsWith(text)`

Sets the conditional format rule to trigger when that the input ends with the given value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they end with the text "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextEndsWith('hello')
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `text` | `String` | Text to compare against the end of the string. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenTextEqualTo(text)`

Sets the conditional format rule to trigger when that the input is equal to the given value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they have text equal to "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextEqualTo('hello')
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `text` | `String` | The sole acceptable value. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `whenTextStartsWith(text)`

Sets the conditional format rule to trigger when that the input starts with the given value.

```javascript
// Adds a conditional format rule to a sheet that causes cells in range A1:B3 to
// turn red if they start with the text "hello".

const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange('A1:B3');
const rule = SpreadsheetApp.newConditionalFormatRule()
                 .whenTextStartsWith('hello')
                 .setBackground('#FF0000')
                 .setRanges([range])
                 .build();
const rules = sheet.getConditionalFormatRules();
rules.push(rule);
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `text` | `String` | Text to compare against the beginning of the string. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.

*** ** * ** ***

### `withCriteria(criteria, args)`

Sets the conditional format rule to criteria defined by `https://developers.google.com/apps-script/reference/spreadsheet/boolean-criteria` values,
typically taken from the `https://developers.google.com/apps-script/reference/spreadsheet/boolean-condition#getCriteriaType()` and `https://developers.google.com/apps-script/reference/spreadsheet/boolean-condition#getCriteriaValues()` of an
existing rule.

```javascript
// Adds a new conditional format rule that is a copy of the first active
// conditional format rule, except it instead sets its cells to have a black
// background color.

const sheet = SpreadsheetApp.getActiveSheet();
const rules = sheet.getConditionalFormatRules();
const booleanCondition = rules[0].getBooleanCondition();
if (booleanCondition != null) {
  const rule = SpreadsheetApp.newConditionalFormatRule()
                   .withCriteria(
                       booleanCondition.getCriteriaType(),
                       booleanCondition.getCriteriaValues(),
                       )
                   .setBackground('#000000')
                   .setRanges(rules[0].getRanges())
                   .build();
  rules.push(rule);
}
sheet.setConditionalFormatRules(rules);
```

#### Parameters

| Name | Type | Description |
|---|---|---|
| `criteria` | `https://developers.google.com/apps-script/reference/spreadsheet/boolean-criteria` | The type of conditional format criteria. |
| `args` | `Object[]` | An array of arguments appropriate to the criteria type; the number of arguments and their type match the corresponding `when...()` method above. |

#### Return


`https://developers.google.com/apps-script/reference/spreadsheet/conditional-format-rule-builder#` --- The builder, for chaining.