スキルアップを始める!

【GAS】スプレッドシートの全シートURLを取得する

Googleスプレッドシート
Googleスプレッドシート
この記事は約3分で読めます。

※記事中に広告情報を含みます。

\ワードプレスのスキルアップはこちら!/ WordPress入門読本

スプレッドシートの全シートURLを取得する

スプレッドシートに多くのシートを作成している場合に「全シートURLを一気に抽出してリンクにしたい」という時に使える方法です。

シート情報を取得する

まずは、スプレッドシートの情報と、シートの情報を取得します。

function get_sheetURL() {
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const spreadsheetID = ss.getId();
    const sheets = ss.getSheets();
    let sheetId = "";
    let sheetName = "";
    let url = "";
}

getIdでスプレッドシートのID、getSheetsで全シートのオブジェクトを取得できます。他の変数は次で使用するために作成をしておきます。

ループでURLを取得する

あとは、ループでシート名とシートIDを取得していきます。getSheetIdでシートのIDが取得できますので、URLにつなぎます。

  for(let i=0; i<sheets.length; i++) {
        // シート名
       sheetName = sheets[i].getSheetName();
      // シートID
       sheetId = sheets[i].getSheetId();
        // URL作成
        url = "https://docs.google.com/spreadsheets/d/" + spreadsheetID + "/edit#gid=" + sheetId;
 } 

完成です!実行してみます。

シートのURLが取得できました!

[rml_read_more]

列に書き込む

あとは、1列目、2列目などにループで内容を書き込んでいきます。getSheetByName(name);でシート名に直接アクセスできますので、あとはレンジとgetValueで書き込んでいきます。

   for(let i=0; i<sheets.length; i++) {
       sheetName = sheets[i].getSheetName();
       sheetId = sheets[i].getSheetId();
       url = "https://docs.google.com/spreadsheets/d/" + spreadsheetID + "/edit#gid=" + sheetId;   
    Logger.log(url);

    ss.getSheetByName("MENU").getRange(i+1,1).setValue(sheetName);
    }

getRangeの行数に1を足しておかないと範囲外でエラーになりますので、足しておきます。

出てきました!

    ss.getSheetByName("MENU").getRange(i+1,1).setValue(sheetName);
    ss.getSheetByName("MENU").getRange(i+1,2).setValue(url);

まとめ

これで、スプレッドシートの全シートURLを取得してスプレッドシートに書き込むことができました。便利ですね!

URLをコピーしました!