Googleスプレッドシートを使いこなす上で欠かせないのが「スプレッドシートID」の活用です。URLの中に隠されたこのIDを使えば、Google Apps ScriptやAPIを通じてシートを自由に操作することが可能になります。しかし、「どこにあるの?」「どう使うの?」といった疑問を持つ方も多いのではないでしょうか。本記事では、スプレッドシートIDの取得方法から具体的な活用例まで、初心者の方でもわかりやすいように解説します。これを読めば、スプレッドシートの操作がもっと便利に!
GoogleスプレッドシートのIDの場所
スプレッドシートを開いたときのURLに表示されます。以下の例で説明します:
例: スプレッドシートのURL
“https://docs.google.com/spreadsheets/d/1A2B3C4D5E6F7G8H9I0J/edit#gid=0“
となっているとします。
スプレッドシートID
URLの「/d/
」と「/edit
」の間にある部分がスプレッドシートのIDです。
上記の例では、スプレッドシートIDは以下の通りです:
1A2B3C4D5E6F7G8H9I0J
スプレッドシートIDの利用方法
Google Apps Scriptで使用
function openSpreadsheet() {
var sheetId = "1A2B3C4D5E6F7G8H9I0J"; // スプレッドシートID
var spreadsheet = SpreadsheetApp.openById(sheetId);
Logger.log(spreadsheet.getName()); // シート名をログに出力
}
シートID (gid)
スプレッドシートの中には複数の「シート」が存在します。それぞれのシートにも一意のID (gid) が割り振られています。
gidの場所: URLの末尾の「#gid=0
」部分。
例: 上記URLの gid=0
は最初のシートを表しています。
スプレッドシートIDを利用するGoogle Apps Scriptの例
function getSpreadsheetData() {
// スプレッドシートIDを指定
var spreadsheetId = "1A2B3C4D5E6F7G8H9I0J"; // あなたのスプレッドシートIDに置き換えてください
// スプレッドシートを開く
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
// 最初のシートを取得
var sheet = spreadsheet.getSheets()[0]; // または名前で取得する場合: spreadsheet.getSheetByName("シート名");
// データ範囲を取得
var data = sheet.getDataRange().getValues();
// データをログに出力
for (var i = 0; i < data.length; i++) {
Logger.log(data[i]); // 1行ごとに出力
}
}
コードの解説
spreadsheetId
- 操作したいスプレッドシートのIDを指定します。このIDはURLから取得できます。
SpreadsheetApp.openById(spreadsheetId)
- IDを使って特定のスプレッドシートを開きます。
getSheets()
または getSheetByName("シート名")
- シートのリストを取得するか、名前で特定のシートを取得します。
getDataRange().getValues()
- シート内のすべてのデータを2次元配列として取得します。
Logger.log()
- 取得したデータをコンソールに出力します(スクリプトエディタ内の「ログ」タブで確認可能)。
実行方法
GoogleスプレッドシートのURLからIDを確認し、コード内の spreadsheetId
を置き換えます。
Google Apps Scriptエディタでこのコードを貼り付けます。
メニューから「▶ 実行」ボタンを押します。
スプレッドシートのデータがログに出力されます。

勤怠データの入力
以下は、スプレッドシートIDとシートIDを使用して勤務データを追加するスクリプトの例です。
function addAttendanceRecord(employeeId, date, startTime, endTime) {
// スプレッドシートIDとシートIDを指定
var spreadsheetId = "1A2B3C4D5E6F7G8H9I0J"; // スプレッドシートID
var sheetName = "勤務管理表"; // シート名を指定
// スプレッドシートとシートを取得
var sheet = SpreadsheetApp.openById(spreadsheetId).getSheetByName(sheetName);
// 新しい行に勤務データを追加
sheet.appendRow([employeeId, date, startTime, endTime]);
// 成功メッセージをログ出力
Logger.log("勤務データを追加しました: " + employeeId + ", " + date);
}
使い方
スプレッドシート準備
勤務管理表のスプレッドシートを作成し、「勤務管理表」というシートを追加。
カラムを設定(例: 「社員ID」「日付」「出勤時間」「退勤時間」)。
Googleフォームを使用
Googleフォームを利用して、社員が簡単にデータを入力できる仕組みを作ります。
Googleフォームの作成
必要な項目を追加:
社員ID (短文回答)
日付 (日付入力)
出勤時間 (時刻入力)
退勤時間 (時刻入力)
スプレッドシートと連携
フォームの回答をスプレッドシートに記録
スクリプトでデータを処理
回答を「勤務管理表」シートに転記
function processFormResponses() {
var spreadsheetId = "1A2B3C4D5E6F7G8H9I0J"; // スプレッドシートID
var responseSheetName = "フォームの回答"; // フォーム回答シート
var targetSheetName = "勤務管理表"; // 勤務データを保存するシート
var spreadsheet = SpreadsheetApp.openById(spreadsheetId);
var responseSheet = spreadsheet.getSheetByName(responseSheetName);
var targetSheet = spreadsheet.getSheetByName(targetSheetName);
// 回答データを取得
var data = responseSheet.getDataRange().getValues();
// ヘッダーを除いて転記
for (var i = 1; i < data.length; i++) {
targetSheet.appendRow(data[i]);
}
// 回答シートのデータを削除(必要に応じて)
responseSheet.deleteRows(2, responseSheet.getLastRow() - 1);
}
スクリプト実行
Google Apps Scriptで上記コードを貼り付けて、実行してみてください。