GASでスプレッドシートのシート名を変更する方法(setNameメソッド)

2021年12月30日

Google Apps Script(GAS)を使えば、スクリプト実行でスプレッドシートのシート名を変更することが可能です。

GASでスプレッドシートのシート名を変更する方法を解説します。

GASでスプレッドシートを自動処理

Google Aps Script(GAS)はスプレッドシートの自動処理に用いられます。

スプレッドシートのGUI操作するほとんどがGASスクリプトで実行することが可能です。

そのため、人間が行っていたスプレッドシート処理やデータ加工をGASスクリプトに代替もできます。

それによって、スプレッドシートの業務を自動化し、業務効率を高められます。

シート名をGASで取得

スプレッドシートのシート名についても、Google Apps Script(GAS)に用意されたメソッドで取得することができます。

スプレッドシートのsheetオブジェクトに対し、GASのgetSheetNameメソッドを実行することで、1行でシートの名前を取得できます。

GASでシート名の変更も可能

Google Apps Script(GAS)ではシート名を取得する以外に、シート名を変更することができます。

すでに用意されているスプレッドシートでは、人間がシート名を変更すればよいので、あまりGASでシート名を変更する必要性はありません。

しかし、GASでスプレッドシートを自動生成したり、シートを追加した場合に、シート名はデフォルトの「シート1」などになります。

そうした場合に命名ルールに沿ったシート名称にするためにGASでシート名の変更ができると便利です。

シート名を変更するsetNameメソッド

Google Apps Script(GAS)でシート名を変更するにはsetNameメソッドを用います。

sheet.setName(“変更後のシート名")

setNameメソッドはsheetオブジェクトで実行します。

シート名を引数に指定した文字列の名称に変更することができます。

GASでシート名を変更するサンプルコード

Google Apps Script(GAS)でスプレッドシートのシート名を変更する方法をサンプルコードで解説します。

下のようなスプレッドシートに紐付いたコンテナバインドスクリプトでシート名を変更します。

元々リストとなっているシートを開いた状態で以下のGASスクリプトを実行します。

function changeSheetName() {
  //スクリプトに紐づくスプレッドシートのアクティブなシートを取得
  let mySheet = SpreadsheetApp.getActiveSheet();
  //取得したアクティブなシートのシート名を取得
  let sheetName = mySheet.getSheetName();
  //シート名をログ出力
  console.log("シート名は " + sheetName + "です。");
  //GASでスプレッドシートのシート名を変更
  mySheet.setName("\\");
  //再度シート名をログ出力
  console.log("シート名は " + mySheet.getSheetName() + "です。");  
}

スクリプトが紐付いたスプレッドシートのアクティブなシートを取得後、まずgetSheetNameでシート名を取得し、ログ出力します。

その後、setNameメソッドでシート名を変更し、再度ログ出力します。

スプレッドシートを再度確認すると、シート名が変化していることが確認できます。

このようにスプレッドシートにあるシート名をGASで変更可能です。

同じシート名が存在する場合、実行エラー

なお、スプレッドシート内に変更後のシート名と同じシート名が存在すると、setNameメソッドの実行がエラーします。

そのため、同じシート名が生成されないように命名ルールに気をつける必要があります。

例えば、毎日実行するような場合は、日付のタイムスタンプをシート名に入れて、シート名を競合するのを防ぎましょう。

まとめ・終わりに

今回、Google Apps Script(GAS)でスプレッドシートのシート名を変更する方法を紹介しました。

sheetオブジェクトに対し、setNameメソッドを実行することでシート名を変更可能です。

ただ、すでに同じ名前のシート名が存在する場合、実行エラーします。

シート名を追加するようなGAS自動処理ではシート名を変更する必要があるので、ぜひsetNameメソッドを活用しましょう。