ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】シート一覧の取得と表示/非表示の設定(Gスプレッドシート)
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- シート一覧を出力中に途中で改行させることができます。
- プログラミングにおけるカウンターの使い方がわかります。
なので、サクッとマスターして
と答えてあげてください。
ご質問
シート一覧を以下のように出力したい。
動画はこちら
スクリプト
/**
* 目次作成
*/
function getListOfSheets() {
const ss = SpreadsheetApp.getActive()//アクティブなシートを取得
const outputSheet = ss.getSheetByName("管理シート");
const url = ss.getUrl();
const sheets = ss.getSheets(); //すべてのシートを取得
const links = [];
const SHDSPLINE = 10 //シートを表示する行数
const START_ROW = 2 //表示開始行
let outcount = 0
let outcolumn = 2 //出力開始列
sheets.forEach(function (sheet) {
let name = sheet.getName();
if (name !== "管理シート" && name !== "原本") {
const id = sheet.getSheetId();
const sheetUrl = `${url}#gid=${id}`;
const link = `=HYPERLINK("${sheetUrl}","${name}")`;
links.push([link]);
outcount++
}
//表示行数のチェック
if (outcount >= SHDSPLINE) { //10個集まった
console.log(links)
const set = outputSheet.getRange(START_ROW, outcolumn, outcount, 1).setValues(links);
set.offset(0, 1).insertCheckboxes();
outcount = 0
outcolumn += 2
links.splice(0) //バッファのクリア
}
});
const set = outputSheet.getRange(START_ROW, outcolumn, outcount, 1).setValues(links);
set.offset(0, 1).insertCheckboxes();
}
抜けた番号がある状態で10番代で改行の例
function testnum() {
let strnum = '0301'
let nnum = Number(strnum)
console.log(nnum)
const sh = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()
const readbuff = sh.getRange("B2:B26").getValues()
// console.log(readbuff)
let numcnt = 301
let chkcnt = 0
let rowcnt = 1
for (let i = 0; i < readbuff.length; i++) {
console.log(Number(readbuff[i]))
while (Number(readbuff[i]) != numcnt) {
chkcnt++
numcnt++
if (chkcnt >= 10) { //1行のチェックする数
console.log("=== 一列完成 rowcnt++ ======")
chkcnt = 0
rowcnt++
break
}
}
console.log("出力位置 カラム=", rowcnt, " 値=", readbuff[i])
}
}
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】シート一覧からシートの位置を自由自在に変更する方法(Gスプレッドシート)
コメント