[GoogleAppScript]スプレッドシート内の全シートの名称とリンクを取得する(目次ページをつくる)


一つのスプレッドシート内にシートが量産されすぎて、シート一覧が欲しい!目次ページを作りたい!となったときに一瞬でできた神技。

function PutLinks()
{
 // スプレッドシート内の全シートとスプレッドシートのID
 var sheets = SpreadsheetApp.getActive().getSheets();
 var ssId = SpreadsheetApp.getActive().getId();

 // ハイパーリンク文字列の配列
 var linkList = [[]];

 for(var i=0; i<sheets.length; i++) {
   // シートのIDと名前
   var sheetId = sheets[i].getSheetId();
   var sheetName = sheets[i].getSheetName();

   // シートのURLからハイパーリンク文字列を組み立て
   var url = "https://docs.google.com/spreadsheets/d/" + ssId + "/edit#gid=" + sheetId;
   var link = [ '=HYPERLINK("' + url + '","' + sheetName + '")' ];

   // ハイパーリンク文字列を配列に格納
   linkList[i] = link;
 }

 // 選択中のセルにハイパーリンク文字列を入れる
 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var cell = sheet.getActiveCell();
 var range = sheet.getRange(cell.getRow() , cell.getColumn() ,  linkList.length , 1);
 range.setValues(linkList);
}

こちらの記事が参考になった。コピペだけで爆速!ありがとうございました!






サポートいただけたら、りくろーおじさんを買います!