ray88’s diary

お仕事で困ったとき用の自分用の覚書

GAS スプレッドシートを取得する方法

GAS 目次 - ray88’s diary

スプレッドシートを操作するためにはスプレッドシートを取得しなければならない。

スプレッドシートを取得する方法
・アクティブなスプレッドシートを取得する
・IDでスプレッドシートを取得する
・URLでスプレッドシートを取得する


getActiveSpreadsheetメソッド
 ・アクティブなスプレッドシートを取得するメソッド
 ・アクティブなスプレッドシートとはスクリプトにバインドされている
        スプレッドシートを指す
 ・スプレッドシートがコンテナバインドスクリプトであれば、
        getActiveSpreadsheetメソッドでそのスプレッドシートを取得できる
     ※アクティブなオブジェクトを取得するメソッドはコンテナバインドスクリプト
        のみで使用できる。

【構文】

SpreadsheetApp.getActiveSpreadsheet()


バインドされていないスプレッドシートの取得方法(スタンドアロンスクリプトの場合)
 OpenByIdメソッド:スプレッドシートをIDにより取得する
   OpenByUrlメソッド:スプレッドシートのURLにより取得する
【構文】

SpreadsheetApp.openById(ID)
SpreadsheetApp.openByUrl(URL)

スプレッドシートのIDの取得方法
 以下の例のスプレッドシートのURLのうち、{ID}の部分がスプレッドシートのID
   (例) https://docs.google.com/spreadsheets/d/{ID}/edit#gid=0
 ※したがって、スプレッドシートのURLがわかればIDを取り出すことが可能

■サンプルコード

 //コンテナバインドスクリプトの場合はアクティブスプレッドシートで取得できる
  const ssActive = SpreadsheetApp.getActiveSpreadsheet();
  console.log(ssActive.getName());//アクティブスプレッドシートの名前を取得

  //スタンドアロンスクリプトの場合はURLまたはIDで取得
  const url = 'https://docs.google.com/spreadsheets/d/xxxxxxxxx/edit#gid=0';
  const ssByUrl = SpreadsheetApp.openByUrl(url);//URLでスプレッドシートを取得
  console.log(ssByUrl.getName());//スプレッドシートの名前を取得

  const id = 'xxxxxxxxx'
  const ssById = SpreadsheetApp.openById(id);//IDでスプレッドシートを取得
  console.log(ssById.getName());//スプレッドシートの名前を取得