【完全ガイド】GASでスプレッドシートに条件付き書式を自動設定する方法|初心者向け徹底解説!

「スプレッドシートに手作業で条件付き書式を設定するのが面倒すぎる…」
「特定条件に応じて自動的に色分けしたい!」

そんな悩みを、Google Apps Script(GAS)を使った条件付き書式の自動設定で解決しませんか?

この記事では、初心者向けにGASで条件付き書式を操作する方法を、
基本から応用までわかりやすく解説します!

今日からあなたのスプレッドシートは、見やすさ&管理効率が劇的にアップします!


1. なぜGASで条件付き書式を自動設定すべきなのか?

Googleスプレッドシートの「条件付き書式」は超便利ですが、

  • 大量データに一括設定したい

  • 定期的にルールを更新したい

  • プログラムから動的に条件を変えたい

というとき、手作業では限界があります。

GASを使えば、

  • 自動で条件設定

  • 必要に応じて書式更新やリセットもできる

  • データに応じた柔軟なルール作成

と、手作業ゼロで美しいシート管理が実現します!


2. 【準備編】必要なものはこれだけ!

  • Googleアカウント

  • 整理したいGoogleスプレッドシート

  • Google Apps Script(GAS:標準搭載)

ブラウザさえあれば、すぐに始められます!


3. 【基本知識】GASで条件付き書式を扱うための構文

GASでスプレッドシートの条件付き書式を操作するには、
setConditionalFormatRules()
というメソッドを使います。

まずは、ざっくり流れを押さえましょう。


■ 条件付き書式設定の流れ

  1. 条件(ルール)を作成

  2. シートに適用

  3. 必要ならルールの更新や削除も可能

これだけです!


4. 【実装編】GASで条件付き書式を自動設定する方法

さっそく、実際に動かしてみましょう!


ステップ① Apps Scriptエディタを開く

スプレッドシート上部メニュー
「拡張機能」→「Apps Script」→「新しいプロジェクト作成」


ステップ② サンプルスクリプトを書く

例①:特定の値以上のセルを赤色にする

function setConditionalFormatting() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  const range = sheet.getRange('B2:B100'); // 対象範囲
  
  const rule = SpreadsheetApp.newConditionalFormatRule()
    .whenNumberGreaterThan(100)
    .setBackground('red')
    .setRanges([range])
    .build();
  
  const rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}

このコードを実行すると、
B列のセルの値が100を超えたら赤色にハイライトされます!


例②:文字列を条件に色分けする

function highlightSpecificText() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  const range = sheet.getRange('A2:A100');
  
  const rule = SpreadsheetApp.newConditionalFormatRule()
    .whenTextContains('重要')
    .setBackground('yellow')
    .setFontColor('black')
    .setRanges([range])
    .build();
  
  const rules = sheet.getConditionalFormatRules();
  rules.push(rule);
  sheet.setConditionalFormatRules(rules);
}

これで、
A列に「重要」という文字が含まれている行だけ自動で黄色ハイライトされます!


5. 【応用編】複数条件を組み合わせた自動設定も可能!


✅ 複数ルールをまとめて設定する

function setMultipleConditionalRules() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  const range = sheet.getRange('C2:C100');
  
  const highPriorityRule = SpreadsheetApp.newConditionalFormatRule()
    .whenTextContains('緊急')
    .setBackground('red')
    .setFontColor('white')
    .setRanges([range])
    .build();
  
  const mediumPriorityRule = SpreadsheetApp.newConditionalFormatRule()
    .whenTextContains('対応中')
    .setBackground('orange')
    .setFontColor('black')
    .setRanges([range])
    .build();
  
  const lowPriorityRule = SpreadsheetApp.newConditionalFormatRule()
    .whenTextContains('完了')
    .setBackground('green')
    .setFontColor('white')
    .setRanges([range])
    .build();
  
  sheet.setConditionalFormatRules([highPriorityRule, mediumPriorityRule, lowPriorityRule]);
}

この例では、

  • 「緊急」なら赤

  • 「対応中」ならオレンジ

  • 「完了」なら緑

と、ステータス別に自動色分けできちゃいます!


6. 【運用編】失敗しないためのポイント


✔️ 既存ルールを消すか残すか考える

setConditionalFormatRules()を使うと、デフォルトでは既存ルールを上書きします。
「追加したいだけ」の場合は、まず既存ルールを取得してからpushしましょう!


✔️ 範囲設定ミスに注意

意図しない範囲にルールが適用されないよう、対象の範囲は明確に指定しましょう。


✔️ テスト運用からスタート

いきなり本番データに適用せず、テストシートで挙動を確認してから運用を始めましょう!


7. まとめ|GASで条件付き書式を自動設定すれば、スプレッドシートが超使いやすくなる!

GASを使えば、

  • 条件付き書式の自動設定

  • 状況に応じた書式ルールの動的切り替え

  • ルールの一括更新・削除

がすべて簡単にできるようになります!

まずはこの記事で紹介した基本スクリプトを試して、
慣れてきたら「複数条件の組み合わせ」や「トリガーによる定期自動更新」など、さらに高度な運用にチャレンジしてみましょう!

Shop now