2022/06/22に更新

【GASで時短】同じ背景色のセルを選択状態にする

スプレッドシート小技

選択したセルと同じ背景色のセルを選択状態にするGoogle Apps Scriptです。細かく色分けされたセルの色を変えたくなったときにどうぞ。

こんな悩みを解決します


  • 細かく色分けしたけど色を変えたくなった・・・1個ずつポチポチ選択するのがめんどくさい。

用意するもの


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

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


  • 選択しているセルと同じ背景色のセルを選択状態にします。

使い方


1.スクリプトの実行

セルに色を付けたサンプルを用意しました。
「青はいまいちだから他の色に変えてくれる?」と言われてもこのスクリプトがあれば安心です。青い背景色のセルを1個選択しましょう。

上のメニューにある「スクリプト実行」から「選択中のセルと同じ背景色のセルを選択する」を実行します。

2.結果の確認

スクリプトの実行が終わると、背景色が青いセルがすべて選択された状態になりました。
これで背景色が一気に変えられますね!

背景色をまだ設定していない白いセルも対応しています。
このスクリプトはデータが入力されている範囲が対象になります。

スクリプト


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

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

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

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

  // メニューに追加するボタン
  menu.addItem('選択中のセルと同じ背景色のセルを選択する', 'select_same_background_color');

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

function select_same_background_color() {

  // 開いているスプレッドシートオブジェクトを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  // 開いているアクティブシートのオブジェクトを取得
  const sheet = ss.getActiveSheet();

  // 現在選択されているセルの範囲オブジェクトを取得
  const active_range = sheet.getActiveRange();

  // 選択中のセルの背景色を取得
  const active_background = active_range.getBackground();

  // シート内で使われている部分の範囲オブジェクトを取得
  let range = sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn());

  // 使われているすべてのセルの背景色を取得
  let backgrounds = range.getBackgrounds();

  // 同じ背景色のセル番地を格納する配列を宣言
  let result = [];

  // 1セルずつ背景色をチェックしていく
  for (let i = 0; i < backgrounds.length; i++) { // 行のループ

    for (let j = 0; j < backgrounds[i].length; j++) { // 列のループ

      // 選択中のセルと背景色が一致したセルがあれば
      if (active_background == backgrounds[i][j]) {

        // A1形式でセル番地を取得し、結果格納用配列に追加する
        let a1 = sheet.getRange(i + 1, j + 1).getA1Notation();
        result.push(a1);

      }
    }
  }

  // 同じ背景色のセルの範囲オブジェクトを取得
  range = sheet.getRangeList(result);

  // セルを選択状態にする
  range.activate();

}

関連するアプリ


【GASで便利に】シート内のすべての数式を表示する

シートに入力されている全ての数式を、別シートに出力するGoogle Apps Scriptです。数式のセル参照が連鎖していて、確認が大変だったので作ってみました。

【GASで時短】数式エラーが出ているセルを通知する

数式でエラーが出ているセルを探してくれるGoogle Apps Scriptです。巨大なシートだとエラーに気づかないこともある・・・?ということで作ってみました。

【GASで便利に】数式が入っているセルに色を付ける

シート内の数式が入っているセルを探して、色を付けてくれるGoogle Apps Scriptです。他の人から引き継いだシートだと、数式がどこにあるのかわかりにくいので作ってみました。

【GASで時短】シート内の数式だけを削除する

セルに入力されている数式をすべて消し去るGoogle Apps Scriptです。数式を多用してデータを作ったが、再計算することはないので数値が直接入力されている状態にしたい時・・・などに。

【GASで時短】2つのシートの差分をチェックする

2つのシートを比較して、値や数式に差分があるかどうか教えてくれるGoogle Apps Scriptです。スプレッドシートでもdiffがしたい!という時にどうぞ。

【GASで時短】同じ文字色のセルを選択状態にする

文字色が同じセルを選択状態にしてくれるGoogle Apps Scriptです。特定の文字色をまとめて変えたくなったときにどうぞ。

【GASで時短】同じフォントサイズのセルを選択状態にする

同じフォントサイズのセルを選択状態にしてくれるGoogle Apps Scriptです。一部のフォントサイズをまとめて変えたくなったときなどにどうぞ。

タグ一覧

最新のアプリ

人気のアプリ

myfunc.jp