GASでスプレの非表示シートを再表示する方法(showSheetメソッド)

Google Apps Script(GAS)でスプレッドシートで非表示になっているシートを再表示する方法を解説します。

シート再表示させるshowSheetメソッドの使い方や利用シーンを紹介します。

GASで非表示シートを再表示したい

スプレッドシートのシートは表示・非表示の設定が可能です。

Googleスプレッドシートではシートを非表示にして、表示されないようにすることが可能

普段利用していないシートは非表示にすることでユーザーによるセル削除や値変更などのリスクを防止できます。

Google Apps Script(GAS)でスプレッドシートの操作自動化を行う際も、シートの再表示ができると便利です。

実はGASのスクリプトからシートの表示・非表示の制御が可能となっています。

シート再表示させるshowSheetメソッド

Google Apps Script(GAS)でスプレッドシートで非表示のシートを再表示するためにshowSheetメソッドが用意されています。

sheet.showSheet()

showSheetメソッドは再表示したい非表示のシートオブジェクトに対して、実行すると、スプレッドシート上で非表示だったシートが表示されるようになります。

非表示シートを再表示するGASサンプルコード

実際にスプレッドシートの非表示シートを再表示するGoogle Apps Script(GAS)のコードを紹介します。

スプレッドシートから「拡張機能>Apps Script」を開いて作成したコンテナバインドスクリプトで以下のコードを用意します。

Google Apps Script(GAS)でスプレッドシートの非表示のシートを再表示するサンプルコード
function myFunction() {
  //スクリプトに紐づくアクティブなスプレッドシートを取得
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  //GUI上で非表示になっているシートを取得
  const sheet = ss.getSheetByName('非表示のシート名を指定');
  //showメソッドで非表示のシートを再表示
  sheet.showSheet();
}

事前に用意したスプレッドシートにはシート1、シート2があります。

Google Apps Script(GAS)のshowSheetメソッドの実行結果を確認するため、非表示にしたシートを持つスプレッドシートを用意

ただ、シート2は非表示を設定しているため、スプレッドシート画面上は表示されていません。

この状態でさきほどのshowSheetメソッドでシートを再表示するスクリプトを実行してみます。

Google Apps Script(GAS)でスプレッドシートの非表示のシートを再表示するサンプルコードを実行すると、非表示になっていたシートが再表示

スプレッドシートの画面に戻ると、非表示で表示されていなかったシート2が表示されました。

このようにsheet.showSheet()メソッドを実行することで当該シートを再表示することが可能です。

表示済みシートでshowSheetメソッド実行はどうなる?

さきほどは非表示になっているシートオブジェクトに対してshowSheetメソッドを実行して再表示しました。

では表示済みのシートでshowSheetメソッドを実行するとどうなるでしょうか?

結論から言えば、表示されているシートでshowSheetメソッドを実行しても変化はありません。

showSheetメソッドを実行したシートが非表示だった場合のみ、処理が実行されて再表示されるようになります。

非表示シートをコピーした際に利用

非表示になっているシートを再表示するshowSheetメソッドの利用ケースは、主に非表示シートをコピーした際に利用します。

毎月ごとレポートや売上のシートを作成する場合に、テンプレートから生成するのが便利です。

ただ、テンプレートシートを表示していると、共有しているユーザーに誤って編集されるおそれがあります。

誤操作を減らす対策として非表示にしておくと、ミスで削除や書き換えられる可能性が減少します。

スプレッドシートの雛形テンプレートシートを用意してGoogle Apps Script(GAS)で生成する場合、テンプレートを非表示にしておくと、誤操作による事故を防止

ただGoogle Apps Script(GAS)では非表示にしているテンプレートシートをコピーしてシートを生成すると、生成したシートも非表示状態です。

そこで、showSheetメソッドを使うことで、非表示のテンプレートシートから定例シートを表示することができます。

逆にシート非表示にしたい場合は?

Google Apps Script(GAS)で非表示のシートを再表示するのとは反対に、シートを非表示にしたい場合はsheet.hideSheetメソッドを使用します。

スプレッドシートのシートを非表示にするhideSheetメソッドの使い方・サンプルコードは以下の記事で解説しています。

hideSheetメソッドを実行すると、当該シートオブジェクトが非表示になります。

GASではhideSheet/showSheetメソッドを使えば、シートの非表示/再表示が簡単に変更可能です。

まとめ・終わりに

今回、スプレッドシートで非表示のシートをGoogle Apps Script(GAS)で再表示するshowSheetメソッドの使い方を紹介しました。

非表示になっているシートオブジェクトに対してshowSheetメソッドを実行することで表示されることが可能です。

非表示のシートをテンプレートとしてGASでコピーした際、非表示のままになるので、その時に表示されるようにshowSheetメソッドを活用しましょう。