ご訪問ありがとうございます。
Googleシートマスターのひろしです。
今回は、とっても価値の高い方法をお伝えします。

これを知ることであなたは、
- シートに遷移する目次的なシート一覧が作成できます。
- シートの移動も簡単にできるようになります。
なので、サクッとマスターして
と答えてあげてください。
動画はこちら
シートはこちら
*クリックすることでシートが開きます。(コピーしてお使いください)
事前準備
- 「目次」シートの追加
- 1行目に「シート名」
スクリプト
const MENU_SHEET = "目次" //目次用のシート名
//シートの一覧を取得
function getListOfSheets() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const sheets = ss.getSheets() //すべてのシートを取得
const url = ss.getUrl() //
const sheetnames = sheets.map(sheet => {
const sheeturl = `${url}#gid=${sheet.getSheetId()}`
const hlink = `=HYPERLINK("${sheeturl}","${sheet.getName()}")`
// return [hlink, sheet.isSheetHidden()]
return [hlink]
})
console.log(sheetnames)
const mgws = ss.getSheetByName(MENU_SHEET)
// console.log(sheetnames.length,sheetnames[0].length)
mgws.getRange(2, 1, sheetnames.length, sheetnames[0].length).setValues(sheetnames)
}
//シートの位置を変更
function MoveActiveSheet() {
const ss = SpreadsheetApp.getActiveSpreadsheet()
const mgws = ss.getSheetByName(MENU_SHEET)
const manageData = mgws.getRange("A2:B")
.getValues()
.filter(line => line[0] != "")
// console.log(manageData)
//すべてのシートの一覧を取得
const sheets = ss.getSheets()
const sheetnames = sheets.map(sheet => {
return [sheet.getSheetName(), sheet.isSheetHidden()]
})
for (let i = 0; i < manageData.length; i++) {
if (sheetnames[i][0] != manageData[i][0]) {
console.log(manageData[i][0])
const ws = ss.getSheetByName(manageData[i][0])
ws.activate()
ss.moveActiveSheet(i + 1)
}
}
mgws.activate()
}
ポイント
関連動画
非表示のシートに対応したい場合はこちら↓

【GAS】リンク付きシート一覧で非表示のシートを無視する方法
最後までご覧いただきありがとうございます。
つぎは、もう少し深堀りします。↓

【GAS】リンク付き(目次的な)シート一覧を作成する方法(Gスプレッドシート)



コメント