GoogleSpreadSheetにおいてGASを使って、一番右のシートをアクティブにする(選択する)方法を書きます。
忘れないようにメモっておきます。
1 2 3 4 5 6 |
function rightSheet_activate() { var all_sheet = SpreadsheetApp.getActiveSpreadsheet(); var numSheets = all_sheet.getNumSheets(); var sheet = all_sheet.getSheets()[numSheets-1]; sheet.activate(); } |
簡単に説明
後でわかるように簡単に説明を書いておきます。
まずスプレッドシート全体を取得
1 |
var all_sheet = SpreadsheetApp.getActiveSpreadsheet(); |
変数all_sheetに現在アクティブなスプレッドシートが取得されました。
(全シートが取得された感じ)
アクティブなスプレッドシートのシート数を取得
1 |
var numSheets = all_sheet.getNumSheets(); |
変数numSheetsにアクティブなスプレッドシート(all_sheet)のシート数が取得されました。
一番右のシートを取得
1 |
var sheet = all_sheet.getSheets()[numSheets-1]; |
変数sheetにアクティブなスプレッドシート(all_sheet)の一番右のシートが取得されました。
一番右のシートをアクティブにする(選択する)
1 |
sheet.activate(); |
ここまで来たら別にアクティブにしなくてもいいような気はしますが、一応activate()しておきます。
どんな時に使うのか
「一番右のシートに何かを入力したい」って時にまず上記のコードを実行して一番右をアクティブにしてから実行する感じです。
(そのまんまのことしか言っていませんが…)
僕の場合、以下のように使用しました。
2つの関数を作って(1つはシートを作成する関数、2つ目は作成されたシートにデータを自動入力する関数です。)
1つめと2つめを別々(の時間)に実行した場合、1つめの関数で作成したシートがアクティブにならずに意図しないシートに書き込まれる場合があるので、「1つ目を実行⇒一番右をアクティブにする⇒2つめを実行」というふうに一番右をアクティブにする処理をはさんであげる必要があるってわけです。
(スプレッドシートを開いたときに、デフォルトでアクティブになってるのは一番左のシートなので、こういう処理が必要になっちゃうということ)
最後に
少しでも参考にして頂けたら嬉しいです。
以上です。
コメント