【GAS】スプレッドシートの目次を自動で作る
2024-5-7 | GAS
GAS(Google Apps Script)を使ってスプレッドシートの目次を自動で作りたい!
概要
この記事では、GAS(Google Apps Script)を使ってスプレッドシートの目次を自動で作る手順を掲載する。
100年ぶりひさしぶりにGASをいじったんだけども、ほとんど忘れてた悲しみ。
仕様書
- Google Apps Script - May 02, 2024
手順書
#gid=<sheed_id>
の形式でリンクを貼ると各シートにリンクを貼れる。ので、指定したスプレッドシートから含まれるシートを列挙してシートIDを取得しつつ、リンクを作ってく。
function createIndex() {
var i = 2;
var spreadsheet = SpreadsheetApp.openById("xxxxxxxxxxxxxxxxxxxxxxxxxxxx");
var sheets = spreadsheet.getSheets();
let index_sheet = spreadsheet.getSheetByName("INDEX");
sheets.forEach(function(key){
let r = index_sheet.getRange(i, 1);
r.setValue(`=HYPERLINK("#gid=${key.getSheetId()}", "${key.getName()}")`);
i++;
});
}
INDEX
というシート名のシートに目次を作るので先にインストタンスを取得しておく。
let index_sheet = spreadsheet.getSheetByName("INDEX");
スプレッドシート関数HYPERLINK
を使って目次を作る。HYPERLINK
は=HYPERLINK(<URL>, <表示する文字列>)
という感じになってて、各シートへのリンクは#gid=<sheet_id>
という形式で貼れるので下記のような感じでセルに書き込む。
r.setValue(`=HYPERLINK("#gid=${key.getSheetId()}", "${key.getName()}")`);
シート名をクリックするとそのシートに飛ぶ感じ。