一覧シートを一番左に作って下記を流せばシート名&リンクのインデックスがいっちょあがり。
let gssObject = SpreadsheetApp.getActiveSpreadsheet();
let mainSheet = gssObject.getSheetByName("一覧");
function myFunction() {
let sheetNmArr = gssObject.getSheets();
let nmAndLinkRet = [];
let i = 0;
sheetNmArr.forEach(function(targetSheet){
let sheetNm = targetSheet.getName();
if (sheetNm != "一覧") {
nmAndLinkRet[i] = [];
nmAndLinkRet[i][0] = "=ROW()-1";
nmAndLinkRet[i][1] = sheetNm;
nmAndLinkRet[i][2] = "=HYPERLINK(\"#gid=" + sid(sheetNm) + "\",\"リンク\")";
i++;
}
});
// 2行目A列から出力
mainSheet.getRange(2, 1, nmAndLinkRet.length, 3).setValues(nmAndLinkRet);
}
// シートID取得関数
function sid(sheetName) {
return gssObject.getSheetByName(sheetName).getSheetId();
}
シートID取得関数はGoogleSpleadSheetから=sid("シート名")
で呼び出してGID取得できるので、=HYPERLINK("#gid="+sid("シート名"),"リンク")"
でリンク作成することも可能。(ただしGASを読み込む必要があるので、少しラグが発生する)