Google Apps Script入門!スプレッドシートIDを活用した基本スクリプト

がいの部屋

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で上記コードを貼り付けて、実行してみてください。

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