2022/08/25に更新

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

スプレッドシート小技

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

こんな悩みを解決します


  • セルの数を目視で数えるのに疲れた・・・自動でカウントしてほしい・・・

用意するもの


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

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


  • シート上で選択しているセルの数をカウントできます。
  • 値が入っているセルの数や、数式がセットされているセルの数も同時に表示します。
  • 選択範囲が複数あっても問題ありません。

使い方


1.単独の選択範囲の場合

サンプルとしてA列に値を、B列に数式を入れてあります。
この範囲を選択しておきます。

上のメニューにある「スクリプト実行」から「選択中のセルの情報を表示する」を実行します。

選択しているセルは20個、値も20個、数式は10個と出ました。問題ありませんね。

2.複数の選択範囲の場合

今度は複数の選択範囲で試してみます。
WindowsならCtrlを押しながら、MacならCommandを押しながら複数の範囲選択が可能です。

この状態でスクリプトを実行すると・・・13個のセルが選択されていると表示されました。正しいですね。

今度は2つの選択範囲ですが一部が重複しているパターンです。
B3セルが両方の選択に含まれています。

8個のセルが選択されていますと出てしまいました。
本来なら7個と出すべきですが、実装が面倒そうで見送りました・・・ごめんなさい。
セル数のカウントに利用される場合はこの点にお気をつけください。

スクリプト


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

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

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

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

  // メニューに追加するボタン
  menu.addItem('選択中のセルの情報を表示する', 'display_cell_info');

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

function display_cell_info() {

  // シート上で選択されている範囲(複数)を取得
  let rangeList = SpreadsheetApp.getActiveSpreadsheet().getActiveRangeList();

  // 選択されている部分の範囲オブジェクトを取得
  let ranges = rangeList.getRanges();

  // カウントしたい項目の変数を用意
  let cell_count = 0; // 選択されているセルの数
  let count_values = 0; // 値が入っているセルの数
  let count_formulas = 0; // 数式が入っているセルの数

  // 範囲オブジェクトの数(=選択範囲の数)だけループ
  for (let i = 0; i < ranges.length; i++) {

    // セルに入力されている値を取得
    let values = ranges[i].getValues();

    // セルに入力されている数式を取得
    let formulas = ranges[i].getFormulas();

    // 範囲オブジェクトごとに取得したvaluesを利用してループ(行方向)
    for (let j = 0; j < values.length; j++) {

      for (let k = 0; k < values[j].length; k++) { // 列方向のループ

        // セルになにか文字が入っていればカウンタを加算
        if (String(values[j][k]).match(/./)) {
          count_values++;
        }

        // セルに数式が入っていればカウンタを加算
        if (String(formulas[j][k]).match(/./)) {
          count_formulas++;
        }

        // 選択しているセル数のカウンタを加算
        cell_count++;
      }
    }
  }

  // メッセージを表示するためUIオブジェクトを取得
  const ui = SpreadsheetApp.getUi();

  // 表示するメッセージの組み立て
  const message = `
  ${cell_count}個のセルが選択されています。
  値が入力されているセルは${count_values}個です。
  数式が入力されているセルは${count_formulas}個です。
  `;

  // メッセージを表示
  ui.alert(message);

}

関連するアプリ


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

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

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

【GASで時短】選択範囲で使われている文字色、背景色をカウントする

シートで選択したセル範囲に、文字色や背景色がいくつ使われているかを調べるGoogle Apps Scriptです。色の塗り分けで表現された資料に直面したときに使えるかも・・・?

【GASで整頓】シート上にある画像の幅、高さを揃える(縦横比固定)

スプレッドシートに貼り付けてある画像の高さ、幅を揃えてくれるGoogle Apps Scriptです。縦横比は維持します。拾ってきた素材のサイズがバラバラで揃えたいときに。

【GASで整頓】シート上にある画像をすべて正方形にする

スプレッドシートに貼り付けてある画像を、指定したサイズで正方形にするGoogle Apps Scriptです。

タグ一覧

最新のアプリ

人気のアプリ

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