Googleスプレッドシートでセル背景色のカラーコード取得|GASで色をデータ化

セルの背景色のカラーコードを確認したいと思っても、関数では取得することができず困ったことはありませんか?

たとえば、特定の色のセルだけを別シートに転記したり、集計の対象にしたりしたい場面でも、色の確認に手間がかかってしまいます。

そこで今回は、Google Apps Script(GAS)を使って、選択したセルの背景色をカラーコードで取得する方法をご紹介します。

カラーコードを取得することで、

  • 特定の色の付いたセルを別シートに転記
  • 色ごとの集計
  • 特定の色を条件に通知

などに活用できるようになります。

目次

完成イメージ

  • 選択した範囲を対象にカラーコードを取得
  • カラーコードは、#RRGGBB形式の文字列で出力

GASを実行すると、選択した範囲のセルの右側にカラーコードが出力されます。

例:

  • 背景色:薄い赤#F4C7C3
  • 背景色:薄い青#AAC7EC
  • 背景色:薄い緑#A8E79B

※背景色がデフォルトの白背景セル#FFFFFFは取得対象外となり、空欄になります。

GASの実行手順

STEP
色を取得したいセル範囲を選択

スプレッドシートを開いて、色を取得したいセル範囲を選択します

STEP
GASエディタを開く

Googleスプレッドシートを開き、メニューの「拡張機能」から「Apps Script」をクリックしてGASエディタを開きます。

STEP
スクリプトの作成

function myFunction(){

}

が最初から入っているため、消去して以下のスクリプトを貼り付けます。

function getBackgroundColorsOfSelectedRange() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const range = sheet.getActiveRange();
  const backgrounds = range.getBackgrounds();

  // カラーコードの配列を生成(白は空欄にする)
  const colorCodes = backgrounds.map(row =>
    row.map(color => {
      const hex = color.toUpperCase();
      return (hex === "#FFFFFF") ? "" : hex;
    })
  );

  const startColumn = range.getLastColumn() + 1;
  const targetRange = sheet.getRange(range.getRow(), startColumn, range.getNumRows(), range.getNumColumns());
  targetRange.setValues(colorCodes);
}
スクリプトの説明
現在開いているシートと選択範囲を取得
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getActiveRange();
  • getActiveSheet()で現在開いているシートを取得し、getActiveRange()で選択中の範囲を取得します。
選択範囲の背景色をカラーコードで取得
const backgrounds = range.getBackgrounds();
  • 選択範囲の各セルの背景色をカラーコードで取得します。
  • 結果は2次元配列になります。
カラーコードの配列を作成
const colorCodes = backgrounds.map(row =>
  row.map(color => {
    const hex = color.toUpperCase();
    return (hex === "#FFFFFF") ? "" : hex;
  })
);
  • 各セルのカラーコードを大文字 (#FFFFFF 形式) に変換します。
  • 白色 (#FFFFFF) のセルは空欄にする仕様になっています。
取得したカラーコードを右隣のセルに出力
const startColumn = range.getLastColumn() + 1;
const targetRange = sheet.getRange(range.getRow(), startColumn, range.getNumRows(), range.getNumColumns());
targetRange.setValues(colorCodes);
  • 選択範囲の右の列に、取得したカラーコードを貼り付けます。
STEP
スクリプトを保存

スクリプトを書いたら、好きな名前を付けて保存します。

(例:「カラーコード取得」)

STEP
スクリプトを実行

実行をクリックして、カラーコードを取得します。

初めてそのスクリプトを実行する場合は権限の確認が必要です。

そのため、『権限を確認』を押します。

許可の詳細手順

「詳細」をクリックします。

無題のプロジェクト(安全ではないページ)に移動」をクリックします。

許可」をクリックします。

STEP
カラーコード取得完了

選択した範囲の右隣に、背景色のカラーコードが出力されます。

まとめ

関数では取得できない背景色のカラーコードも、GASを使うことでカンタンに取得することができます。

カラーコードを取得することで、その色を条件に「別シートに転記」「集計」「抽出」といった場面で役立てられます。

GASと組み合わせて、色を条件にした業務の自動化や効率化も実現しやすくなります。

弊社では、Google Apps Script(GAS)を活用した業務効率化のサポートを提供しております。

GASのカスタマイズやエラー対応にお困りの際は、ぜひお気軽にご相談ください。

また、ITツールの導入支援やIT導入補助金の申請サポートも行っております。

貴方の業務改善を全力でサポートいたします。

お問い合わせはこちら

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次