Google Apps Script (GAS) でスプレッドシートをコピーする方法や、スプレッドシートの各種設定情報の取得や設定の方法を説明します。
SpreadSheetクラスのメソッドを利用した手順について説明します。
Google Apps Scriptの基本的な使い方については下記をご覧ください。
GASによるスプレッドシート操作の概要
GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。
クラス | 説明 |
---|---|
SpreadSheetApp | SpreadSheetサービスの親クラス |
Spreadsheet | スプレッドシートを操作するクラス |
Sheet | シートを操作するクラス |
Range | セル範囲を操作するクラス |
それぞれ下記のような位置付けになります。
「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。
このページでは、上記の中のSpreadSheetクラスの下記のメソッドについて説明します。
メソッド | 戻り値 | 説明 |
---|---|---|
getName() | String | ファイル名を取得する |
rename(newName) | void | ファイル名を変更する |
getId() | String | スプレッドシートIDを取得する |
getUrl() | String | スプレッドシートのURLを取得する |
getNumSheets() | Integer | シートの数をする |
copy(name) | Spreadsheet | シートをコピーする |
getSpreadsheetLocale() | String | ロケール(言語と地域)を取得する |
setSpreadsheetLocale(locale) | void | ロケール(言語と地域)を設定する |
getSpreadsheetTimeZone() | String | タイムゾーンを取得する |
setSpreadsheetTimeZone(timezone) | void | タイムゾーンを設定する |
スプレッドシートのファイル名を操作する
スプレッドシートのファイル名を操作するメソッドを説明します。
スプレッドシートのファイル名を取得する:getName()
スプレッドシートのファイル名を取得するメソッドです。
下記のように実行します。
1 2 3 4 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); Logger.log(testSpreadSheet.getName()); } |
下記の実行結果になります。ファイル名が出力されます。
1 |
無題のスプレッドシート |
スプレッドシートのファイル名を変更する:rename(newName)
スプレッドシートのファイル名を変更するメソッドです。
下記のように実行します。
1 2 3 4 5 6 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); Logger.log(testSpreadSheet.getName()); testSpreadSheet.rename("無題のスプレッドシート(変更後)"); Logger.log(testSpreadSheet.getName()); } |
下記の実行結果になります。renameメソッド実行後はファイル名が変更されています。
1 2 |
無題のスプレッドシート 無題のスプレッドシート(変更後) |
スプレッドシートの情報を取得する
スプレッドシートファイルの各種情報を取得するメソッドです。
スプレッドシートIDを取得する:getId()
スプレッドシートのスプレッドシートIDを取得するメソッドです。
スプレッドシートのIDとは、スプレッドシートのファイルを開いた時のURLの下記の太字の部分です。ファイル毎に異なるIDになります。
https://docs.google.com/spreadsheets/d/XXXXXXXX/edit#gid=0
下記のように実行します。
1 2 3 4 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); Logger.log(testSpreadSheet.getId()); } |
実行すると、スプレッドシートIDが出力されます。
スプレッドシートのURLを取得する:getUrl()
スプレッドシートのURLを取得するメソッドです。
スプレッドシートのURLとは、スプレッドシートのファイルを開いた時の下記のURLです。ファイル毎に異なるURLになります。
XXXXXXXXにはファイル毎に異なるIDが入ります。
https://docs.google.com/spreadsheets/d/XXXXXXXX/edit
下記のように実行します。
1 2 3 4 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); Logger.log(testSpreadSheet.getUrl()); } |
実行すると、スプレッドシートのURLが出力されます。
スプレッドシートのシート数を取得する:getNumSheets()
スプレッドシートのシートの数を取得するメソッドです。
下記のように実行します。
1 2 3 4 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); Logger.log(testSpreadSheet.getNumSheets()); } |
下記のファイルに対して実行すると、
下記の結果になります。
1 |
2.0 |
スプレッドシートをコピーする
指定した名前でスプレッドシートをコピーする:copy(name)
スプレッドシートファイルを、指定したファイル名でコピーするメソッドです。
下記のように実行します。
1 2 3 4 5 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); const newSpreadSheet = testSpreadSheet.copy("新規ファイル"); console.log(newSpreadSheet.getName()); } |
下記の実行結果になります。
1 |
新規ファイル |
Googleドライブに下記のようにコピーが作成されます。
スプレッドシートのロケール・タイムゾーンを操作する
スプレッドシートのロケール(言語と地域)やタイムゾーンの設定を操作するメソッドです。
スプレッドシートのロケールを取得する:getSpreadsheetLocale()
スプレッドシートのロケール設定(言語と地域の設定)を取得するメソッドです。
下記のように実行します。
1 2 3 4 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); console.log(testSpreadSheet.getSpreadsheetLocale()); } |
下記の実行結果になります。
1 |
ja_JP |
スプレッドシートのロケールを設定する:setSpreadsheetLocale(locale)
スプレッドシートのロケール(言語と地域)を設定するメソッドです。
下記のように実行します。
1 2 3 4 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); testSpreadSheet.setSpreadsheetLocale("en_US"); } |
ロケール設定は、スプレッドシートの「ファイル」→「設定」をクリックすると、下記の画面で確認できます。
下記の設定のファイルにさきほどのコードを実行すると、
実行後は、下記のように変わります。
なお、ロケールの設定を更新すると、ファイルの再読み込みが発生するため、Apps Scriptダッシュボードは閉じられます。
スプレッドシートのタイムゾーンを取得する:getSpreadsheetTimeZone()
スプレッドシートのタイムゾーン設定を取得するメソッドです。
下記のように実行します。
1 2 3 4 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); console.log(testSpreadSheet.getSpreadsheetTimeZone()); } |
下記の実行結果になります。
1 |
Asia/Tokyo |
スプレッドシートのタイムゾーンを設定する:setSpreadsheetTimeZone(timezone)
スプレッドシートのタイムゾーンを設定するメソッドです。
下記のように実行します。
1 2 3 4 |
function myFunction() { const testSpreadSheet = SpreadsheetApp.getActiveSpreadsheet(); testSpreadSheet.setSpreadsheetTimeZone("America/New_York"); } |
ロケール設定は、スプレッドシートの「ファイル」→「設定」をクリックすると、下記の画面で確認できます。
下記の設定のファイルにさきほどのコードを実行すると、
実行後は、下記のように変わります。
まとめ
Google Apps Script (GAS) でスプレッドシートをコピーする方法や、スプレッドシートの各種設定情報の取得や設定の方法を説明しました。
GASは無料で利用できてとても便利なツールです。
Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます。
GASの基本構文を知りたい方は、下記もご覧ください。