Google Apps Script

【初心者向け】Google Apps ScriptでスプレッドシートのシートIDを取得する方法|getSheetIdの使い方とサンプル付き

スポンサーリンク

Google Apps Script(GAS)でスプレッドシートを操作していると、特定のシートをURLで開いたり、外部ツールと連携する際に「シートID(gid)」が必要になる場面があります。

手動でURLの末尾から gid を確認することもできますが、スクリプトから自動で取得できるようにしておけば、シート名に依存しない汎用的なプログラムが作れます。

この記事では、getSheetId() メソッドを使ってスプレッドシート内の各シートのID(gid)を取得する方法を、初心者の方にもわかりやすく解説します。


シートIDとは?スプレッドシートIDとの違い

スプレッドシートID(ファイルID)とは

スプレッドシートIDとは、スプレッドシートファイルそのものを識別するIDです。
URLの /d//edit の間にある文字列がそれにあたります。

例:

https://docs.google.com/spreadsheets/d/【スプレッドシートID】/edit#gid=【シートID】

シートID(gid)とは

シートIDとは、スプレッドシート内の各シートに割り当てられている一意の数値です。
URLの末尾にある #gid=●●●●●● の部分に表示されます。

例えば、シート1とシート2では異なるgidが割り当てられています。

このIDは Sheet.getSheetId() を使うことで、GASから取得可能です。

どちらが必要な場面なのか

  • スプレッドシートID:ファイルを開く、読み込むなどファイル単位の操作
  • シートID:特定のシートをURLで開く、APIで対象指定するなどの操作

Google Apps ScriptでシートIDを取得する方法

使用するメソッド:getSheetId() の基本情報

  • 所属クラス:Sheet
  • 引数:なし
  • 戻り値:Integer型(数値)のシートID
const sheetId = sheet.getSheetId();

サンプルコード(コピペOK)

function getSheetIdSample() {
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = spreadsheet.getSheetByName("シート1");
  const sheetId = sheet.getSheetId();
  console.log("シートID: " + sheetId);
}

実行手順(スクリプトエディタの使い方)

  1. スプレッドシートを開く
  2. 「拡張機能」→「Apps Script」をクリック
  3. 上記のコードを貼り付けて保存
  4. 関数 getSheetIdSample を選択し、実行

💡 getActiveSpreadsheet() を使用する場合、そのスクリプトはスプレッドシートに紐づいた「コンテナバインド型」である必要があります。

「コンテナバインド型」について、詳しくはこちらの記事を読んでみてください。


実行結果と確認方法

ログに出力される値の見方

ログには「シートID: 123456789」のように表示されます。この数値が、そのシートのgidと一致します。

実際のURLと照らし合わせて確認する方法

スプレッドシートを開いて、対象シートを表示させた状態でURLの末尾 #gid=xxxxx を確認してください。ログ出力されたIDと一致すれば、正しく取得できています。


よくある質問(FAQ)

Q
getSheetIdで取得したIDは常に同じ?
A

はい、同じシートであれば常に同じID(gid)になります。
ただし、シートを削除して再作成すると別IDになります。

Q
シート名を変更したらIDは変わる?
A

変わりません。
getSheetId() は名前に依存せず、内部的な一意IDを返します。

Q
getSheetIdで取得したIDはどう活用できる?
A
  • スプレッドシートの特定のシートをURLで直接開くリンクを作成したいとき
  • 外部ツールやAPIと連携する際にシートを特定するため
  • 複数シートを自動で処理するロジックの作成時

まとめ

Google Apps Scriptの getSheetId() メソッドを使えば、スプレッドシートの各シートに割り当てられた一意のID(gid)を簡単に取得できます。

URLを手動で見に行く必要もなく、スクリプト上で扱えるので、複数シートの処理やリンクの動的生成などに非常に便利です。

初心者の方でもコピペで試せるようにしていますので、ぜひ一度使ってみてください。

タイトルとURLをコピーしました