LANG SELRCT

コードを書く場所についてはこちら

2016年7月13日水曜日

行・列を非表示にする

行と列を非表示にするコードを書いてみました。

1行目を非表示にする


コード.gs
function hiderow() {
    var sh = SpreadsheetApp.getActiveSheet();
    sh.hideRows(1);
}


1列目を非表示にする


コード.gs
function hidecol() {
    var sh = SpreadsheetApp.getActiveSheet();
    sh.hideColumns(1);
}


行と列の非表示を解除する


ここではすべての行と列を取得しました。
var last_row = sh.getRange("A:A").getLastRow();
var last_col = sh.getRange("1:1").getLastColumn();
var range = sh.getRange(1, 1, last_row, last_col);

コード.gs
function unhide() {
    var sh = SpreadsheetApp.getActiveSheet();
    var last_row = sh.getRange("A:A").getLastRow();
    var last_col = sh.getRange("1:1").getLastColumn();
    var range = sh.getRange(1, 1, last_row, last_col);
    sh.unhideRow(range);
    sh.unhideColumn(range);
}



A列で0の行だけを非表示にする


valuesを数値にして、厳密等価演算子 === で0と比較しました。
(等価演算子 == だと空欄もtureを返してしまうため)
if (parseInt(values[i], 10) === 0)

コード.gs
function hiderow_0() {
    var col = "A";
    var sh = SpreadsheetApp.getActiveSheet();
    var range = sh.getRange(col + ":" + col);
    var values = range.getValues();
    var last_row = sh.getLastRow();
    for (var i = 0; i < last_row; i++) {
        if (parseInt(values[i], 10) === 0) {
            sh.hideRows(i + 1);
        }
    }
}


1行目が0の列を非表示にする


hiderow_0と同様、厳密等価演算子 === で0と比較しました。
ここではvalues[i]では動かないため、values[0][i]にしました。
if (parseInt(values[0][i], 10) === 0)

コード.gs
function hidecol_0() {
    var row = 1;
    var sh = SpreadsheetApp.getActiveSheet();
    var range = sh.getRange(row + ":" + row);
    var values = range.getValues();
    var last_col = sh.getLastColumn();
    for (var i = 0; i < last_col; i++) {
        if (parseInt(values[0][i], 10) === 0) {
            sh.hideColumns(i + 1);
        }
    }
}