GAS PR

[GAS]シートの取得・追加・コピー・削除等の各種操作の方法 -SpreadSheetクラス-

記事内に商品プロモーションを含む場合があります

Google Apps Script (GAS) でシートの取得・追加・コピー・削除等の各種操作をする方法を説明します。

SpreadSheetクラスのメソッドを利用した手順について説明します。

Google Apps Scriptの基本的な使い方については下記をご覧ください。

Contents
  1. GASによるスプレッドシート操作の概要
  2. シートを取得する
  3. アクティブなシートのシート名を取得・変更する
  4. アクティブなシートのシートIDを取得する
  5. シートを追加する
  6. アクティブなシートを移動する
  7. アクティブなシートをコピーする
  8. シートを削除する
  9. まとめ

GASによるスプレッドシート操作の概要

GASでスプレッドシートを操作するための「SpreadSheetサービス」は、主に下記のクラスで構成されています。

クラス説明
SpreadSheetAppSpreadSheetサービスの親クラス
Spreadsheetスプレッドシートを操作するクラス
Sheetシートを操作するクラス
Rangeセル範囲を操作するクラス

それぞれ下記のような位置付けになります。

「SpreadSheetApp」→「SpreadSheet」→「Sheet」→「Range」という順の階層構造になっています。操作対象に応じて、下の階層にたどってオブジェクトを取得して利用します。

このページでは、上記の中のSpreadSheetクラスの下記のメソッドについて説明します。

メソッド戻り値説明
getSheetByName(name)Sheetシート名でシートを取得する
getSheets()Sheet[]すべてのシートを取得する
getSheetName()Stringアクティブなシートのシート名を取得する
renameActiveSheet(newName)voidアクティブなシートのシート名を変更する
getSheetId()IntegerアクティブなシートのシートIDを取得する
insertSheet()Sheetシートを追加する
insertSheet(sheetName)Sheet指定した名前でシートを追加する
insertSheet(sheetIndex)Sheet指定した位置にシートを追加する
insertSheet(sheetName, sheetIndex)Sheet指定した名前で指定した位置にシートを追加する
insertSheet(options)Sheetテンプレートをもとにシートを追加する
insertSheet(sheetName, options)Sheet指定した名前でテンプレートをもとにシートを追加する
insertSheet(sheetIndex, options)Sheet指定した位置にテンプレートをもとにシートを追加する
insertSheet(sheetName, sheetIndex, options)Sheet指定した名前で指定した位置にテンプレートをもとにシートを追加する
moveActiveSheet(pos)voidアクティブなシートを移動する
duplicateActiveSheet()Sheetアクティブなシートをコピーする
deleteActiveSheet()Sheetアクティブなシートを削除する
deleteSheet(sheet)void指定したシートを削除する

シートを取得する

スプレッドシートのシートを取得するメソッドを説明します。

シート名でシートを取得する:getSheetByName(name)

シートをシート名で取得するメソッドです。

下記のように実行します。

下記の実行結果になります。指定したシートを取得できます。

すべてのシートを取得する:getSheets()

シートをシート名で取得するメソッドです。

下記のように実行します。

下記のファイルに対して実行すると、

下記の実行結果になります。すべてのシートを取得できます。

アクティブなシートのシート名を取得・変更する

スプレッドシートのシート名を取得したり、変更したりするメソッドを説明します。

SpreadSheetクラスのメソッドではアクティブなシートのシート名の操作になります。

特定のシートに対して操作したい場合は、Sheetクラスのメソッドを利用するのが一般的です。

アクティブなシートのシート名を取得する:getSheetName()

アクティブなシートのシート名を取得するメソッドです。

下記のように実行します。

下記の実行結果になります。アクティブなシートのシート名を取得できます。

アクティブなシートのシート名を変更する:renameActiveSheet(newName)

アクティブなシートのシート名を変更するメソッドです。

下記のように実行します。
アクティブなシートのシート名を変更する前と後のシート名を表示しています。

下記の実行結果になります。シート名が変更されています。

アクティブなシートのシートIDを取得する

スプレッドシートのアクティブなシートのIDを取得するメソッドを説明します。

アクティブなシートのシートIDを取得する:getSheetId()

アクティブなシートのシートIDを取得するメソッドです。

シートIDとは、下記のURLのgid=の後にある番号のことです。
XXXXXXXXは、スプレッドシートIDです。

https://docs.google.com/spreadsheets/d/XXXXXXXX/edit#gid=2130772710

シートIDを利用してシートを取得するメソッドはないため、getSheetId()を利用したいケースはほとんど無いかもしれません。

下記のように実行します。

下記の実行結果になります。アクティブなシートのシートIDが出力されます。

シートを追加する

スプレッドシートのシートを追加するメソッドを説明します。

シートを追加する:insertSheet()

デフォルトのシート名でアクティブなシートの右側にシートを追加するメソッドです。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。アクティブなシートの右側にデフォルト名でシートが追加されます。

指定した名前でシートを追加する:insertSheet(sheetName)

指定したシート名でアクティブなシートの右側にシートを追加するメソッドです。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。アクティブなシートの右側に指定したシート名でシートが追加されます。

指定した位置にシートを追加する:insertSheet(sheetIndex)

デフォルトのシート名で指定した位置にシートを追加するメソッドです。

指定した数値のシートの右側に追加されます。
一番左に追加したい場合は0を指定します。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。指定した2番目のシートの右側に追加されます。

指定した名前で指定した位置にシートを追加する:insertSheet(sheetName, sheetIndex)

指定したシート名で指定した位置にシートを追加するメソッドです。

指定した数値のシートの右側に追加されます。
一番左に追加したい場合は0を指定します。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。指定したシート名で指定した位置に追加されます。

テンプレートをもとにシートを追加する:insertSheet(options)

指定したシートをテンプレートとしてシートを追加するメソッドです。
シート名はテンプレートをもとに自動で決められ、アクティブなシートの右側に追加されます。

下記のファイルを前提に使用例を説明します。
「管理表テンプレート」シートがあり、それをベースに次年度のシートを追加してみます。

下記のように実行します。
optionsは、下記のように、オブジェクト形式でtemplate要素に値を入れます。
なお、実行後にA1セルの値を「2024年度管理表」に変えてます。

実行すると、下記の結果になります。指定したテンプレートをベースにシート名が自動で決められ、アクティブなシートの右側にシートが追加されます。

指定した名前でテンプレートをもとにシートを追加する:insertSheet(sheetName, options)

指定したシートをテンプレートとしてシートを追加するメソッドです。
指定したシート名で、アクティブなシートの右側に追加されます。

下記のファイルを前提に使用例を説明します。
「管理表テンプレート」シートがあり、それをベースに次年度のシートを追加してみます。

下記のように実行します。
optionsは、下記のように、オブジェクト形式でtemplate要素に値を入れます。
なお、実行後にA1セルの値を「2024年度管理表」に変えてます。

実行すると、下記の結果になります。指定したシート名で、アクティブなシートの右側にシートが追加されます。

指定した位置にテンプレートをもとにシートを追加する:insertSheet(sheetIndex, options)

指定したシートをテンプレートとしてシートを追加するメソッドです。
シート名はテンプレートをもとに自動で決められ、指定した位置に追加されます。

指定した数値のシートの右側に追加されます。
一番左に追加したい場合は0を指定します。

下記のファイルを前提に使用例を説明します。
「管理表テンプレート」シートがあり、それをベースに次年度のシートを追加してみます。

下記のように実行します。
optionsは、下記のように、オブジェクト形式でtemplate要素に値を入れます。
なお、実行後にA1セルの値を「2024年度管理表」に変えてます。

実行すると、下記の結果になります。シート名はテンプレートをもとに自動で決められ、指定した位置にシートが追加されます。

指定した名前で指定した位置にテンプレートをもとにシートを追加する:insertSheet(sheetName, sheetIndex, options)

指定したシートをテンプレートとしてシートを追加するメソッドです。
指定したシート名で、指定した位置に追加されます。

指定した数値のシートの右側に追加されます。
一番左に追加したい場合は0を指定します。

下記のファイルを前提に使用例を説明します。
「管理表テンプレート」シートがあり、それをベースに次年度のシートを追加してみます。

下記のように実行します。
optionsは、下記のように、オブジェクト形式でtemplate要素に値を入れます。
なお、実行後にA1セルの値を「2024年度管理表」に変えてます。

実行すると、下記の結果になります。指定したシート名で、指定した位置にシートが追加されます。

アクティブなシートを移動する

スプレッドシートのアクティブなシートを移動するメソッドを説明します。

アクティブなシートを移動する:moveActiveSheet(pos)

アクティブなシートを指定した位置に移動するメソッドです。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。アクティブなシートが3番目に移動されます。

存在しない位置を引数に入れるとエラーになります。

アクティブなシートをコピーする

スプレッドシートのアクティブなシートをコピーするメソッドを説明します。

アクティブなシートをコピーする:duplicateActiveSheet()

アクティブなシートをコピーするメソッドです。
コピー後は、コピー後のシートがアクティブになります。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。右側にコピーされたシートができます。そして、コピーされたシートがアクティブになります。

シートを削除する

スプレッドシートのシートを削除するメソッドを説明します。

アクティブなシートを削除する:deleteActiveSheet()

アクティブなシートを削除するメソッドです。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。アクティブだったシートが削除され、右側のシートがアクティブになります。

指定したシートを削除する:deleteSheet(sheet)

指定したシートを削除するメソッドです。

下記のように実行します。

下記のファイルに対して実行すると、

下記の結果になります。指定した「シート2」が削除されます。

まとめ

Google Apps Script (GAS) でシートの取得・追加・コピー・削除等の各種操作をする方法を説明しました。

GASは無料で利用できてとても便利なツールです。

Googleスプレッドシート等のGoogleアプリケーションを利用されている方は、GASを習得することで作業を大きく効率化できます

GASの基本構文を知りたい方は、下記もご覧ください。