LoginSignup

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

選択した行を非表示にするGoogle App Script

選択した行を非表示にするGoogle App Script

GASでチェックボックスをチェックすると該当行が非表示になるコードを組んでいます。
エラーは出ないのですが、チェックボックスをチェックしても非表示になりません

コードは以下になります。
非エンジニアでQiitaに流れ着いたのでどなたか教えていただけると幸いです。

function showCheckboxInfo() {
    var mySheet = SpreadsheetApp.getActiveSheet(); //シートを取得
    var myCell = mySheet.getActiveCell();
    var rule = myCell.getDataValidation();
    if (rule != null) {
        var criteria = rule.getCriteriaType();
        var status = myCell.getValue()
            if ( criteria == 'CHECKBOX' && status == true) {
                var row = myCell.getRow();
                hideRow(row);
            }
    }
}


function hideRow(row) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sh = ss.getActiveSheet();
  var range = sh.getRange(row);
  sh.hideRow(range);
}

トリガーは下記で設定しています。
image.png

0

1Answer

スクリプトを見ますと、var range = sh.getRange(row);が修正箇所と思われます。rowは、数値ですので、ここでエラーが発生していると思われます。そこで、次のような変更はいかがでしょうか。

From:

var range = sh.getRange(row);

To:

var range = sh.getRange(row + ":" + row);
  • この修正では、A1Notationとして1行分を表現しました。
  • トリガー設定の画像を見ますと、installable triggerとしてOnChangeトリガーを使われていますが、スクリプトからは、simple triggerのOnEditでも動作すると思われます。これについては、実際の仕様から判断してください。

Reference:

1

Comments

  1. @daibuttsu

    Questioner
    A1Notationで表現しなければいけなかったのですね!
    ありがとうございました!
  2. ご返事ありがとうございます。解決したとのことで安心しました。

Your answer might help someone💌