Googleスプレッドシートには複数のシートを作成でき、各シートには固有のURLが存在しますが、手動でURLを取得するのは手間がかかります。
Google Apps Script(GAS)を使うとスプレッドシート内の各シートのURLを簡単に取得することができます。
本記事では、getUrl()関数とgetSheetId()関数を使って、シートのURLを自動取得する具体的な手順やコード例を詳しく解説します。スプレッドシートの管理を効率化したい方は必見です。
直接各シートのURLを取得する方法はない
GASには様々なメソッドが用意されていますが、直接各シートのURLを取得する方法はありません。
ただし、便宜上1枚目(シートId=0)のシートのURLは取得できます。
1枚目のシートのURLの取得は可能(getUrl)
スプレッドシートを作成したときにデフォルトで作成されている1つ目のシート(シートidが「0」)のシートのURLを取得することは便宜上可能です。
スプレッドシートのURLを取得して、クリックすれば自動的に1枚目のシートにリダイレクトされます。
スプレッドシートのURLを取得するには「getUrl」メソッドを使います。
const ssid = "スプレッドシートのID"
const ss = SpreadsheetApp.openById(ssid);
const ssURL = ss.getUrl();
出力結果は以下のようになります。
https://docs.google.com/spreadsheets/d/スプレッドシートのID/edit
このURLを叩くとリダイレクトされ、以下のように1枚目のシートが表示されます。
https://docs.google.com/spreadsheets/d/スプレッドシートのID/edit?gid=0#gid=0
各シートのURLを指定する方法(getSheetId)
各シートのURLを取得するためには、シートのIDが必要です。
各シートを開いたときに表示される「?gid=シートのID」の部分です。例えば以下なら「1782537574」です。
各シートのIDの取得方法(getSheetId)
シートのIDを取得するためにはgetSheetIdメソッドを使います。
const ssid = "スプレッドシートのID"
const ss = SpreadsheetApp.openById(ssid);
const sheet = ss.getSheetByName("シート名")
const sheetId = sheet.getSheetId();
console.log(sheetId);
各シートのURLの取得方法
各シートのURLを取得するにはgetUrlメソッドとgetSheetIDメソッドを組み合わせます。
const ssid = "スプレッドシートのID"
const ss = SpreadsheetApp.openById(ssid);
const ssURL = ss.getUrl();
const sheet = ss.getSheetByName("シート名")
const sheetId = sheet.getSheetId();
const sheetURL = ssURL + "?gid=" + sheetId;
console.log(sheetURL);
これで以下のようなURLが取得できます。
https://docs.google.com/spreadsheets/d/スプレッドシートのID/edit?gid=1782537574
このURLを叩けば指定したスプレッドシートの各シートに飛ぶことができます。