0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GAS】大量シートのシートリンク作りたいけどめんどくない?

Posted at

一覧シートを一番左に作って下記を流せばシート名&リンクのインデックスがいっちょあがり。

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を読み込む必要があるので、少しラグが発生する)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?