シートで選択したセル範囲に、文字色や背景色がいくつ使われているかを調べるGoogle Apps Scriptです。色の塗り分けで表現された資料に直面したときに使えるかも・・・?
特にありません。今お使いのスプレッドシートに組み込めます。
このようなシートをサンプルとして用意しました。
5色で塗られたセルと文字です。
このスクリプトは選択中のセルに対して動作します。
カウントしてほしい範囲を選択します。
上のメニューにある「スクリプト実行」から「選択セルの背景色、文字色をカウントする」を実行します。
少し待つとこのように結果が表示されます。
使われているカラーコードとそれが何回(何セルで)使われているかが集計されます。
RGBで表現されるので色がイメージしにくいですね・・・。
使った色は背景色も文字色もカラーパレット上部にある「スタンダード」カラーですが、文字色についてGASで取得すると「ACCENT1」のように表示されてしまうようです。
/**
* このスクリプトの説明、使い方はこちら。
* https://myfunc.jp/items/00139/index.html
*/
function onOpen() {
// スプレッドシートを開いたときに実行される関数
// UIの取得
const ui = SpreadsheetApp.getUi()
// メニューの表示名
const menu = ui.createMenu('スクリプト実行');
// メニューに追加するボタン
menu.addItem('選択セルの背景色、文字色をカウントする', 'count_bgcolor_fontcolor');
// メニューを画面に追加する
menu.addToUi();
}
function count_bgcolor_fontcolor() {
// アクティブなスプレッドシートのオブジェクトを取得
const ss = SpreadsheetApp.getActiveSpreadsheet();
// アクティブなシートを取得
const sheet = ss.getActiveSheet();
// シート上で選択されている範囲を取得
const active_range = sheet.getActiveRange();
// 選択範囲内の背景色を取得
const backgrounds = active_range.getBackgrounds();
// 選択範囲内のリッチテキスト情報を取得
const richtexts = active_range.getRichTextValues();
// 結果を格納するオブジェクトを用意
const found_bgcolor = {}; // 背景色用
const found_fontcolor = {}; // 文字色用
// 範囲内のセルの数だけループ
for (let i = 0; i < backgrounds.length; i++) { // 行のループ
for (let j = 0; j < backgrounds[i].length; j++) { // 列のループ
// 背景色の色コードを取得
let bgcolor = backgrounds[i][j];
// 背景色の色コードがkeyに存在するかどうかをチェックする
if (bgcolor in found_bgcolor) {
// この背景色が出現するのが2回目以降ならすでにkeyが存在するので加算
found_bgcolor[bgcolor]++;
} else {
// 初回の出現なら1をセット
found_bgcolor[bgcolor] = 1;
}
// 文字色を取得する
let fontcolor = richtexts[i][j].getTextStyle().getForegroundColor();
// 文字色がkeyに存在するかチェックする
if (fontcolor in found_fontcolor) {
// この文字色が出現するのが2回目以降ならすでにkeyが存在するので加算
found_fontcolor[fontcolor]++;
} else {
// 初回の出現なら1をセット
found_fontcolor[fontcolor] = 1;
}
}
}
// オブジェクトのままだと使いにくいので配列に変換
const array_bgcolor = Object.entries(found_bgcolor);
const array_fontcolor = Object.entries(found_fontcolor);
// アラートを表示するためにUIオブジェクトを取得
const ui = SpreadsheetApp.getUi();
// 結果を画面に表示
ui.alert('【背景色】\n' + array_bgcolor.join('\n') + '\n\n【文字色】\n' + array_fontcolor.join('\n'));
}
選択したセルと同じ背景色のセルを選択状態にするGoogle Apps Scriptです。細かく色分けされたセルの色を変えたくなったときにどうぞ。
文字色が同じセルを選択状態にしてくれるGoogle Apps Scriptです。特定の文字色をまとめて変えたくなったときにどうぞ。
同じフォントサイズのセルを選択状態にしてくれるGoogle Apps Scriptです。一部のフォントサイズをまとめて変えたくなったときなどにどうぞ。
スプレッドシートで選択している範囲の「選択中のセルの数」「値が入っているセル」「数式が入っているセル」をカウントするGoogle Apps Scriptです。
スプレッドシートに貼り付けてある画像の高さ、幅を揃えてくれるGoogle Apps Scriptです。縦横比は維持します。拾ってきた素材のサイズがバラバラで揃えたいときに。
スプレッドシートに貼り付けてある画像を、指定したサイズで正方形にするGoogle Apps Scriptです。