前提・実現したいこと
当方、プログラミング等に関して素人でサイト等を参考に見様見真似で、スプレットシートのscriptと使用して、色を数えるものを作りました。
作成した関数をセルに入力し使用していますが、不備が多く、作成したコードが正しいかも把握できない為、困っております。
ご教授の程、宜しくお願いいたします。
発生している問題・エラーメッセージ
以下のような問題点があります。
■COUNTを一つ一つ処理することになるため、処理が遅い&重い。。。(一次元配列というのでしょうか?)
■COUNTする該当範囲を塗りつぶし以外の方法で何らかの操作をしないと処理を実行しない。
エラーメッセージ
特になし
該当のソースコード
java script
ソースコード
- 指定したセルの色を数える
- @param {range} セル
- @return {Number} 指定色
- @customfunction
/
function countColor(countRange,colorRef) {
var activeRg = SpreadsheetApp.getActiveRange();
var activeSht = SpreadsheetApp.getActiveSheet();
var activeformula = activeRg.getFormula();
var countRangeAddress = activeformula.match(/((.),/).pop().trim();
var backGrounds = activeSht.getRange(countRangeAddress).getBackgrounds();
var colorRefAddress = activeformula.match(/,(.*))/).pop().trim();
var BackGround = activeSht.getRange(colorRefAddress).getBackground();
var countCells = 0;
for (var i = 0; i < backGrounds.length; i++)
for (var k = 0; k < backGrounds[i].length; k++)
if ( backGrounds[i][k] == BackGround )
countCells = countCells + 1;
return countCells;
};
試したこと
別でCOUNTする該当範囲を操作するようなマクロを組み、トリガーを付けてやってはみたのですが、スマートとはかけ離れており、余計に重くなるだけの始末。。。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー