2022/03/25に更新

【GASで時短】全シートに条件付き書式をセットする

スプレッドシート

すべてのシートに条件付き書式を適用してくれるGoogle Apps Scriptです。条件付き書式は便利ですが手動で設定するのは面倒なんですよね。

こんな悩みを解決します


  • すべてのシートに条件付き書式を設定することになったけどシートがありすぎて手動でやりたくない。

用意するもの


特にありません。今お使いのスプレッドシートに組み込めます。

このスクリプトで出来ること


  • 現在開いているスプレッドシートのすべてのシートに対して、条件付き書式をセットすることができます。
  • このサンプルスクリプトでは「次を含むテキスト」の条件を設定しています。
  • キーワードを入れるとその文字を含むセルがピンク色になります。

使い方


1.データの準備

このスクリプトは「データが入っているセル範囲」に対して条件付き書式を設定します。
そのため、条件付き書式を適用したいデータは先に入力しておいてください。
サンプルとして都道府県リストをシート1とシート2に用意しました。

2.スクリプトの実行

上のメニューに有る「スクリプト実行」から「全シートに条件付き書式を適用する」を実行します。

3.条件のテキストを入力する

ポップアップウィンドウに条件を入力します。「県」を含むセルを対象にしてみます。

4.結果の確認

少し待つと条件付き書式が適用がされます。県だけピンク色になりました。

条件付き書式が増えています。このスクリプトは既存の条件付き書式は消さずに、追加するだけです。

シート2にも適用されているようです。
わかりやすいようにデータの並びを変えておきました。

スクリプト


/**
 * このスクリプトの説明、使い方はこちら。
 * https://myfunc.jp/items/00060/index.html
 */

function onOpen() {
  // スプレッドシートを開いたときに実行される関数

  // UIの取得
  const ui = SpreadsheetApp.getUi()

  // メニューの表示名
  const menu = ui.createMenu('スクリプト実行');

  // メニューに追加するボタン
  menu.addItem('全シートに条件付き書式を適用する', 'set_conditional_format_all_sheets');

  // メニューを画面に追加する
  menu.addToUi();
}


function set_conditional_format_all_sheets() {

  // UIを取得
  const ui = SpreadsheetApp.getUi();

  // 現在開いているスプレッドシートを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // スプレッドシートに存在するすべてのシートを取得
  const sheets = ss.getSheets();

  // 条件付き書式のキーワードを入力させる
  const input = ui.prompt('キーワードを入力してください', ui.ButtonSet.OK_CANCEL);

  // キャンセルが押されたらスクリプトを終了する
  if (input.getSelectedButton() == ui.Button.CANCEL) {
    return;
  }

  // キーワードを取り出す
  const keyword = input.getResponseText();

  // 1シートずつ条件付き書式をセットしていく
  for (let i = 0; i < sheets.length; i++) {

    // 条件付き書式をセットするのはシート内で現在使われている範囲
    let range = sheets[i].getRange(1, 1, sheets[i].getLastRow(), sheets[i].getLastColumn());

    // 条件付き書式のセット
    let rule = SpreadsheetApp.newConditionalFormatRule()
      .whenTextContains(keyword) //「テキストを含む」条件
      .setBackground("#FFC0CB") //背景色をピンクにする
      .setRanges([range]) //範囲は現在使われている範囲
      .build(); //条件を確定

    // 既存の条件付き書式のルールを取得する
    let rules = sheets[i].getConditionalFormatRules();

    // 既存のルールに今回作成したルールを追加
    rules.push(rule);

    // 既存と新規のルールを合わせてシートにセットする
    sheets[i].setConditionalFormatRules(rules);
  }
}

関連するアプリ


【GASで便利に】キーワードを含むセル番地を一覧表示する

検索キーワードを全シートから探して、ヒットしたセル番地をまとめて表示するGoogle Apps Scriptです。標準の検索機能ではヒットしたセルが1個ずつ分かりますが、まとめて知りたくなったので作成しました。

【GASで時短】全シートの条件付き書式を削除する

すべてのシートのすべての条件付き書式を削除するGoogle Apps Scriptです。条件付き書式はシート単位で操作する必要があり、面倒なので作成しました。

【GASで時短】全てのシートのデータを1シートにまとめる

スプレッドシートの全てのシートのデータを、1つのシートに集約するGoogle Apps Scriptです。各シートで列が揃っていないと使いにくいですが、思いつきで作ってみました。

【GASで時短】すべてのシートを非表示にする

いま開いているシート以外のすべてのシートを非表示にするGoogle Apps Scriptです。あまり見られたくない作業用シートがたくさんあるときにどうぞ。

【GASで時短】全シートの行・列固定を解除する

全てのシートの行固定、列固定を解除するGoogle Apps Scriptです。ニーズはあんまりなさそうですが、思いつきで作ってみました。

【GASで便利に】フィルタ条件がセットされている列を確認する

どの列にフィルタ条件が設定されているのか教えてくれるGoogle Apps Scriptです。列が大量にあると、どこに条件がかかっているのか探すのが大変ですよね。

【GASで時短】フォルダ内のスプレッドシートを結合する

指定したフォルダにあるスプレッドシートをすべて連結するGoogle Apps Scriptです。生徒・受講者の課題をチェックするときに1ファイルずつ開くのは面倒で、1つのスプレッドシート(ブック)にまとめたくなったので作りました。

【GASで時短】すべてのシートを保護する

スプレッドシートの全てのシートを「保護」するGoogle Apps Scriptです。一時的にすべてのシートの更新を止めたい時などにどうぞ。

【GASで時短】スプレッドシートのメモを全て削除する

スプレッドシートに書き込まれた全ての「メモ」を削除するGoogle Apps Scriptです。思考の過程を隠したい時などにどうぞ。

タグ一覧

最新のアプリ

人気のアプリ

myfunc.jp