GAS PR

[GAS]シートのコピーや、シートの各種情報を取得・変更する方法 -Sheetクラス-

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

Google Apps Script (GAS) でシートのコピーや、シートの名前やタブの色などの各種情報を取得変更する方法を説明します。

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

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

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

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

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

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

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

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

メソッド戻り値説明
getParent()SpreadSheetこのシートを持つスプレッドシートを取得する
getSheetId()IntegerこのシートのシートIDを取得する
getIndex()Integerこのシートの位置を取得する
copyTo(spreadsheet)Sheetこのシートをコピーする
getName()Stringこのシートの名前を取得する
getSheetName()Stringこのシートの名前を取得する
setName(name)Sheetこのシートの名前を変更する
getTabColorObject()Colorこのシートのタブの色をColorクラスで取得する
setTabColor(color)Sheetこのシートのタブの色をRGB形式等で変更する
setTabColorObject(color)Sheetこのシートのタブの色をColorクラスで変更する

このシートの各種情報を取得する

このシートの位置やシートIDなどの各種情報を取得するメソッドを説明します。

このシートを持つスプレッドシートを取得する:getParent()

このシートを持つスプレッドシート(SpreadSheetクラス)を取得する方法です。

下記、実行例です。

実行すると、対象のシートを持つスプレッドシートを取得でき、下記のようにスプレッドシート名を表示できます。
「無題のスプレッドシート」というファイルで実行した例です。

このシートのシートIDを取得する:getSheetId()

このシートのシートIDを取得する方法です。

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

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

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

下記、実行例です。

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

このシートの位置を取得する:getIndex()

このシートの位置を取得する方法です。

下記、実行例です。

実行すると、下記のようにシートの位置を取得できます。
「シート2」が左から2番目にある場合の例です。

このシートをコピーする

このシートを指定したスプレッドシートにコピーするメソッドを説明します。

このシートをコピーする:copyTo(spreadsheet)

このシートを、指定したスプレッドシートにコピーする方法です。

下記、実行例です。自分自身のスプレッドシートを指定した場合の例です。

実行すると、下記のように右側に「<シート名>のコピー」という名前でシートがコピーされます。

このシートの名前を取得・変更する

このシートの名前を取得・変更するメソッドを説明します。

このシートの名前を取得する:getName()

このシートの名前を取得する方法です。

下記、実行例です。

実行すると、下記のようにシートの名前を取得できます。

このシートの名前を取得する:getSheetName()

このシートの名前を取得する方法です。getNameメソッドと同じ動作です。

下記、実行例です。

実行すると、下記のようにシートの名前を取得できます。

このシートの名前を変更する:setName(name)

このシートの名前を変更する方法です。

下記、実行例です。

実行すると、下記のようにシート名を変更できます。

このシートのタブの色を取得・変更する

このシートのタブの色を取得・変更するメソッドを説明します。

このシートのタブの色をColorクラスで取得する:getTabColorObject()

このシートのタブの色をColorクラスで取得する方法です。

下記、実行例です。取得した色(Colorクラス)からasRgbColorメソッドでRgbColorを取得し、さらにasHexStringメソッドで16進数を取得しています。

下記のようにオレンジ色にしたシートに対して実行すると、

下記のように色を取得できます。

なお、タブの色を何も設定していない場合は、正しく取得できません。
getTabColorObject().getColorType()でカラータイプを取得すると、UNSUPPORTEDになります。必要に応じてエラー処理しましょう。

このシートのタブの色をRGB形式等で変更する:setTabColor(color)

このシートのタブの色を変更する方法です。

「#FFFFFF」や「white」などで、色を指定できます。色をリセットしたい(デフォルトにしたい)場合は、nullを指定します。

下記、実行例です。RGB指定の場合の例です。

実行すると下記のように指定した色に変更できます。

このシートのタブの色をColorクラスで変更する:setTabColorObject(color)

このシートのタブの色を変更する方法です。

Colorクラスで色を指定できます。

下記、実行例です。

実行すると下記のように指定した色に変更できます。

なお、公式ドキュメントでは色をリセットしたい(デフォルトにしたい)場合にはnullを指定するとありますが、実際にはエラーになりました。リセットしたい場合は、setTabColorメソッドでnullを指定するのがよいでしょう。

まとめ

Google Apps Script (GAS) でシートのコピーや、シートの名前やタブの色などの各種情報を取得変更する方法を説明しました。

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

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

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