スプラウト
2012/10/30
質問があります。
日報をスプレッドシートで作成していて、一週間ごとにシートを増やしております。
スプレッドシートを開くときに一番最初のシートが表示されてしまうので
本日(今週)のシートを選択したいのですが良い案はございますでしょうか?
・今日の日付が記入されているシートに飛ぶ
・最後から5番目のシートに飛ぶ(+1ヶ月後の予定を入れられるようにし、1週間終了ごとに、次の1週間分のシートを作成しているため。)
上記のような機能がないか探しております。よろしくお願いいたします。
---
tokorotenレベル 1
2012/10/30
・最後から5番目のシートに飛ぶ
スクリプトをつくってみたので、よかったら使ってみてください。
ツール > スクリプトエディタ > 以下のコードをコピペ
関数を選択 > setTriggerを選択 > 実行
これでスプレッドシートを開いたときに後ろから5番目のシートがアクティブになります(数秒かかります)。
function activateTargetSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var targetSheet = sheets.reverse(sheets)[4].getName(); //4は後ろから5番目のシートを指定。3なら4番目のシートを指定。
ss.getSheetByName(targetSheet).activate();
}
function setTrigger() {
var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger("activateTargetSheet").forSpreadsheet(ss).onOpen().create();
}
---
tokorotenレベル 1
2012/10/30
こうすると速くなるかもしれません。
function activateTargetSheet() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sIndex = ss.getNumSheets() - 5;
ss.setActiveSheet(ss.getSheets()[sIndex]);
}