【GAS】スプレッドシートの目次を自動で作る

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【GAS】スプレッドシートの目次を自動で作る

2024-5-7 |

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()}")`);

シート名をクリックするとそのシートに飛ぶ感じ。

まとめ(感想文)