Google Apps Script (GAS) でスプレッドシートファイルを新規作成する方法や、既存のスプレッドシートファイルを取得する方法を説明します。
SpreadSheetAppクラスのメソッドを利用した手順について説明します。
Google Apps Scriptの基本的な使い方については下記をご覧ください。
GASによるスプレッドシート操作の概要
GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。
クラス | 説明 |
---|---|
SpreadSheetApp | SpreadSheetサービスの親クラス |
Spreadsheet | スプレッドシートを操作するクラス |
Sheet | シートを操作するクラス |
Range | セル範囲を操作するクラス |
それぞれ下記のような位置付けになります。
「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。
このページでは、上記の中のSpreadSheetAppクラスの下記のメソッドについて説明します。
メソッド | 戻り値 | 説明 |
---|---|---|
create(name) | Spreadsheet | 指定した名前でスプレッドシートを新規作成する |
getActiveSpreadSheet() | Spreadsheet | アクティブなスプレッドシートを取得する |
openById(id) | Spreadsheet | 指定したIDのスプレッドシートを取得する |
openByUrl(url) | Spreadsheet | 指定したURLのスプレッドシートを取得する |
open(file) | Spreadsheet | 指定されたFileオブジェクトのスプレッドシートを取得する |
スプレッドシートファイルの新規作成
スプレッドシートファイルの新規作成:create(name)
新たなスプレッドシートファイルを作成する方法です。
下記のように実行します。戻り値としてSpreadsheetクラスを取得できます。
1 2 3 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.create("新規スプレッドシートファイル名"); } |
下記のようにGoogleドライブのルートにファイルが作成されます。
既存のスプレッドシートファイルの取得
アクティブなスプレッドシートファイルの取得:getActiveSpeadSheet()
アクティブなスプレッドシートを取得する方法です。この方法は、コンテナバインドスクリプトである必要があります。
スプレッドシートのコンテナバインドスクリプトで下記のように実行します。
1 2 3 4 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); console.log(testSpreadSheet.getName()); } |
下記の実行結果になります。正常にファイル名が出力されます。
「無題のスプレッドシート」というファイルのコンテナバインドスクリプトの場合の例です。
1 |
無題のスプレッドシート |
スクリプト実行時に下記の画面が表示された場合は、権限の承認が必要です。
「権限を確認」をクリックします。
下記の画面が表示されたら、承認するアカウントを指定します。
下記の画面が表示されたら、「詳細」をクリックします。
下記の画面が表示されたら、左下のプロジェクト名の部分をクリックします。
スプレッドシート側へ下記が表示されたら、「許可」をクリックするとスクリプトを実行できるようになります。
なお、スタンドアロンスクリプトで同じコードを実行すると下記の実行結果になります。スプレッドシートファイルと紐づいておらず、testSpreadSheetがnullになるためです。
1 |
TypeError: Cannot read properties of null (reading 'getName') |
スプレッドシートIDから取得:openById(id)
スプレッドシートのIDをもとにスプレッドシートを取得する方法です。
スプレッドシートのIDとは、スプレッドシートのファイルを開いた時のURLの下記の太字の部分です。ファイル毎に異なるIDになります。
https://docs.google.com/spreadsheets/d/XXXXXXXX/edit#gid=0
下記のように実行します。「XXXXXXXX」の部分には、実際のIDを入れます。
1 2 3 4 5 |
function myFunction() { const id ="XXXXXXXX"; const testSpreadSheet = SpreadsheetApp.openById(id); console.log(testSpreadSheet.getName()); } |
下記の実行結果になります。正常にファイル名が出力されます。
「無題のスプレッドシート」というファイルの場合の例です。
1 |
無題のスプレッドシート |
スプレッドシートのURLから取得:openByUrl(url)
スプレッドシートのURLをもとにスプレッドシートを取得する方法です。
スプレッドシートのURLとは、スプレッドシートのファイルを開いた時の下記のURLです。ファイル毎に異なるURLになります。
XXXXXXXXにはファイル毎に異なるIDが入ります。
https://docs.google.com/spreadsheets/d/XXXXXXXX/edit#gid=0
下記のように実行します。「XXXXXXXX」の部分には、実際のURLを入れます。
1 2 3 |
const url ="XXXXXXXX"; const testSpreadSheet = SpreadsheetApp.openByUrl(url); console.log(testSpreadSheet.getName()); |
下記の実行結果になります。正常にファイル名が出力されます。
「無題のスプレッドシート」というファイルの場合の例です。
1 |
無題のスプレッドシート |
Fileオブジェクトから取得:open(file)
Fileオブジェクトをもとにスプレッドシートを取得する方法です。
Fileオブジェクトの取得方法はいくつかありますが、ここではGoogleドライブのクラスでファイルIDから取得する場合の例でopenメソッドを説明します。
ファイルIDは、スプレッドシートの場合、スプレッドシートIDと同一です。
スプレッドシートのIDとは、スプレッドシートのファイルを開いた時のURLの下記の太字の部分です。ファイル毎に異なるIDになります。
https://docs.google.com/spreadsheets/d/XXXXXXXX/edit#gid=0
下記のように実行します。「XXXXXXXX」の部分には、実際のファイルIDを入れます。
1 2 3 4 5 6 |
function myFunction() { const fileid = "XXXXXXXX"; const file = DriveApp.getFileById(fileid); const testSpreadSheet = SpreadsheetApp.open(file); console.log(testSpreadSheet.getName()); } |
下記の実行結果になります。正常にファイル名が出力されます。
「無題のスプレッドシート」というファイルの場合の例です。
1 |
無題のスプレッドシート |
まとめ
Google Apps Script (GAS) でスプレッドシートファイルを新規作成する方法や、既存のスプレッドシートファイルを取得する方法を説明しました。
GASは無料で利用できてとても便利なツールです。
Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。
GASの基本構文を知りたい方は、下記もご覧ください。