GASでスプレッドシートのシートを非表示にする方法(hideSheetメソッド)
Google Apps Script(GAS)を使うと、スプレッドシートにあるシートを表示しなくする操作も可能です。
GASでシートを非表示する方法と注意点を解説します。
スプレッドシートでシートを非表示
Googleスプレッドシートはエクセル同様の表計算ソフトで、1つスプレッドシートファイルで複数シートを管理することができます。
あるシートは顧客データを管理するシートとして活用し、別のシートは商品データを管理するシート、そしてそれらを組み合わせた売り上げ管理のシートといった使い分けができます。
ただ、スプレッドシートのシートの中には、ユーザーに操作させると困るシートもあります。
そんなときスプレッドシートでは、シートを保護する以外にシートを非表示にすることができます。
シートを非表示にしておけば、意図的に再表示しない限りシートを誤って操作するケースを防止可能です。
GASでシート非表示が可能
Google Apps Script(GAS)では、そうしたスプレッドシートにあるシートを非表示にするといった操作もスクリプトで実現可能です。
あらかじめ存在しているシートの場合は、人間が非表示にすれば事足ります。
しかし、GASスクリプトで挿入したシートを非表示にする場合は、スクリプト処理の中でシート非表示まで行うのが効率的です。
※GASによるスプレッドシートのシート追加・挿入方法
GASのシート非表示はhideSheetメソッド
Google Apps Script(GAS)のスクリプトでスプレッドシートのシートを非表示にするにはhideSheetメソッドを使用します。
Sheet.hideSheet()
あらかじめ非表示にしたいシートオブジェクトを取得し、シートオブジェクトのメソッドでhideSheetを実行します。
実行すると、スプレッドシート上でシートが非表示になります。
シートを非表示にするGASサンプルコード
実際にGoogle Apps Script(GAS)でスプレッドシートのシートを非表示にする方法をサンプルコードで解説します。
上記のスプレッドシートにある「非表示シート」という名前のシートをGASのhideSheetメソッドで非表示にします。
function myFunction() {
//削除したいスプレッドシートのシートを読み込み
let mySheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("非表示シート");
//hideSheetメソッドでシートを非表示
mySheet.hideSheet();
}
シート非表示のGASサンプルコードを実行すると、スプレッドシートから読み込んだシートが非表示になります。
ただ、シートはスプレッドシート上から削除されたわけではなく、左側にあるシートのアイコンをクリックすると、グレーアウトされています。
非表示シートをクリックすると、再度スプレッドシート上でシートを再表示可能です。
hideSheetメソッドの注意点
Google Apps ScriptのhideSheetメソッドの注意点としては、非表示を実行できる条件があります。
スプレッドシート上でのシート非表示操作でも同様ですが、すべてのシートを非表示にすることはできません。
スプレッドシートで表示されているシートが1個しかない場合には、GASスクリプトでhideSheetメソッドを実行しても、エラーが発生します。
「スプレッドシート内のシートをすべて非表示にすることはできません」とメッセージが出てスクリプト実行が失敗します。
そのため、hideSheetを使ってシート非表示にするGASの自動処理を実装する際は、少なくとも1個のシートは表示するようにしましょう。
まとめ・終わりに
今回、Google Apps Script(GAS)でスプレッドシートのシートを非表示にする方法を紹介しました。
スプレッドシートでも他のユーザーに操作されないようシートを非表示にすることがありますが、GASでシート非表示をスクリプト実行できます。
Sheetオブジェクトに対し、hideSheetメソッドを実行することでスプレッドシートからシートが一覧から表示されなくなります。
GASで自動生成したシートを非表示にしたい場合などにhideSheetメソッドを活用しましょう。
ディスカッション
コメント一覧
まだ、コメントがありません