スプレッドシートで選択している範囲の「選択中のセルの数」「値が入っているセル」「数式が入っているセル」をカウントするGoogle Apps Scriptです。
特にありません。今お使いのスプレッドシートに組み込めます。
サンプルとしてA列に値を、B列に数式を入れてあります。
この範囲を選択しておきます。
上のメニューにある「スクリプト実行」から「選択中のセルの情報を表示する」を実行します。
選択しているセルは20個、値も20個、数式は10個と出ました。問題ありませんね。
今度は複数の選択範囲で試してみます。
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);
}
シートに入力されている全ての数式を、別シートに出力するGoogle Apps Scriptです。数式のセル参照が連鎖していて、確認が大変だったので作ってみました。
数式でエラーが出ているセルを探してくれるGoogle Apps Scriptです。巨大なシートだとエラーに気づかないこともある・・・?ということで作ってみました。
シート内の数式が入っているセルを探して、色を付けてくれるGoogle Apps Scriptです。他の人から引き継いだシートだと、数式がどこにあるのかわかりにくいので作ってみました。
セルに入力されている数式をすべて消し去るGoogle Apps Scriptです。数式を多用してデータを作ったが、再計算することはないので数値が直接入力されている状態にしたい時・・・などに。
2つのシートを比較して、値や数式に差分があるかどうか教えてくれるGoogle Apps Scriptです。スプレッドシートでもdiffがしたい!という時にどうぞ。
選択したセルと同じ背景色のセルを選択状態にするGoogle Apps Scriptです。細かく色分けされたセルの色を変えたくなったときにどうぞ。
文字色が同じセルを選択状態にしてくれるGoogle Apps Scriptです。特定の文字色をまとめて変えたくなったときにどうぞ。
同じフォントサイズのセルを選択状態にしてくれるGoogle Apps Scriptです。一部のフォントサイズをまとめて変えたくなったときなどにどうぞ。
シートで選択したセル範囲に、文字色や背景色がいくつ使われているかを調べるGoogle Apps Scriptです。色の塗り分けで表現された資料に直面したときに使えるかも・・・?
スプレッドシートに貼り付けてある画像の高さ、幅を揃えてくれるGoogle Apps Scriptです。縦横比は維持します。拾ってきた素材のサイズがバラバラで揃えたいときに。
スプレッドシートに貼り付けてある画像を、指定したサイズで正方形にするGoogle Apps Scriptです。