2022/05/08に更新

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

スプレッドシート小技

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

こんな悩みを解決します


  • スプレッドシートを引き継いだけど数式がどこに入ってるのかわかりにくい・・・

用意するもの


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

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


  • セルに数式が入力されている場合、そのセルに色を付けてわかりやすくしてくれます。

使い方


1.スクリプトの実行

サンプルとして適当な成績表を用意しました。
合計得点と平均得点は数式によって計算されています。

上のメニューにある「スクリプト実行」から「数式が入力されているセルを色付けする」を実行します。

2.結果の確認

合計と平均の部分に色が付きました。
今回の例ではスクリプトを使うまでもないですが、「オリジナルデータかと思いきやimportrange()されていた・・」ということも稀によくあるので、念の為にチェックしてもよいかもしれませんね。

シート内に数式が存在しない場合は「このシート内には数式が存在しないようです」と教えてくれます。

スクリプト


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

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

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

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

  // メニューに追加するボタン
  menu.addItem('数式が入力されているセルを色付けする', 'export_formulas_to_new_sheet');

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

function export_formulas_to_new_sheet() {

  // アラートを表示するためにUIを取得
  const ui = SpreadsheetApp.getUi();

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

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

  // アクティブシートのデータが存在する範囲を取得
  let range = sheet.getRange(1, 1, sheet.getLastRow(), sheet.getLastColumn());

  // 範囲内の数式を取得
  const formulas = range.getFormulas();

  // 数式の有無を判断するためのカウンタ
  let counter = 0;

  // 1セルずつ数式の有無をチェックしていく
  for (let i = 0; i < formulas.length; i++) { // 行のループ

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

      if (formulas[i][j] != '') { // 数式としてなんらかの文字列が入っていれば

        range = sheet.getRange(i + 1, j + 1); // 該当セルの範囲オブジェクトを取得
        range.setBackground('darkviolet'); // セルの背景色をセット
        range.setFontColor('white'); // セルの文字色をセット
        counter++; // カウンタを増やす

      }
    }
  }

  if (counter == 0) {
    ui.alert('このシート内には数式が存在しないようです');
  }
}

関連するアプリ


【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です。特定の文字色をまとめて変えたくなったときにどうぞ。

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

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

【GASで時短】選択されているセルの数をカウントする

スプレッドシートで選択している範囲の「選択中のセルの数」「値が入っているセル」「数式が入っているセル」をカウントするGoogle Apps Scriptです。

【GASで時短】セルの編集内容をすべてのシートに反映させる

シートに対する変更内容(値の変更)を、同じファイルのすべてのシートに反映(同期)させるGoogle Apps Scriptです。

タグ一覧

最新のアプリ

人気のアプリ

ページトップに戻る
myfunc.jp