2014年8月4日月曜日

スプレッドシートを開くときに本日(今週)のシートを選択したい

スプラウト
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]);
}