GASでスプレッドシートにあるシート数を取得する方法(getNumSheets)
Google Apps Script(GAS)でスプレッドシートに存在しているシート数がいくつか取得することができます。
GASでスプレッドシートのシート枚数を取得する方法を解説します。
GASでスプレッドシートのシート数が取得可能
Google Apps Script(GAS)でスプレッドシートを処理していると、シートがどれだけあるか知りたい場合があります。
スプレッドシートのシート数に応じて、スクリプト処理する場合に必要です。
そんな利用ニーズに備え、GASにはシート数を取得できるようになっています。
シート数を数えるgetNumSheetsメソッド
スプレッドシートのシート数を数えるGoogle Apps Script(GAS)のメソッドはgetNumSheetsです。
spreadsheet.getNumSheets()
getNumSheetsメソッドは、スプレッドシートオブジェクトで実行します。
個別のシートオブジェクトだとgetNumSheetsメソッドは実行できないので、注意が必要です。
引数は不要で、getNumSheetsメソッドを実行すると、スプレッドシートに存在するシート数を数値として取得できます。
GASでシート数を取得するサンプルコード
実際にGoogle Apps Script(GAS)のgetNumSheetsメソッドを使ってスプレッドシートのシート数を取得するサンプルコードを解説します。
上記のような3つのシートがあるスプレッドシートのコンテナバインド型スクリプトで以下のサンプルコードを用意しました。
function setSheetColor() {
//スクリプトに紐づくスプレッドシートを取得
let mySheet = SpreadsheetApp.getActiveSpreadsheet();
//スプレッドシートに存在するシート数を取得
let sheetNum = mySheet.getNumSheets();
//シート数をログ出力
console.log(sheetNum);
}
スクリプトに紐づくスプレッドシートを取得したあと、getNumSheetsメソッドでシート枚数を取得し、ログ出力します。
実際にシート数を取得するGASスクリプトを実行すると、実行ログにシート数が表示されます。
前述したスプレッドシートにあったシート数が取得できていることが確認できます。
続いて、スクリプトに紐づくスプレッドシートのシート数を3枚ほど追加してみました。
スプレッドシートのシート枚数が変化した状態で、GASサンプルコードを再度実行すると、シート数が変化します。
サンプルコードを実行したタイミングで、スプレッドシートのシート枚数を数えています。
getSheetsメソッドでもシート数がわかる
なお、スプレッドシートのシート数を取得する方法として、getSheetsメソッドを利用する方法もあります。
getSheetsメソッドはスプレッドシートに存在するシートをすべて取得するメソッドです。
シートを配列として取得するため、getSheetsメソッドで全シートを取得したあと、lengthプロパティを使えばシート数を取得できます。
getNumSheetsメソッドとの使い分けですが、全部のシート処理するのが前提であれば、getSheetsメソッドのlengthプロパティで問題ありません。
ただ、シート数に応じて、シート処理しないケースもある場合は、getNumSheetsメソッドだけ使えば、全シートの読み込みが不要です。
GASスクリプト的にも使用するメモリが少なくて済むので、getNumSheetsを使うのが効率的なプログラムに繋がります。
まとめ・終わりに
今回、スプレッドシートのシート数をGoogle Apps Script(GAS)で取得する方法を紹介しました。
getNumSheetsメソッドを使うことで、スプレッドシートに存在しているシート枚数を数えることができます。
getSheetsメソッドでスプレッドシートの全シートを取得して、lengthプロパティで枚数を得ることもできますが、シート数だけ必要な場合はgetNumSheetsメソッドが推奨です。
スプレッドシートのシート数をGASで取得したい場合は、今回紹介したサンプルコードをご活用ください。
ディスカッション
コメント一覧
まだ、コメントがありません