をそれを行うことができ、あなたのシートに名前を付けるためのパターン「MM_YYYY」に固執しようとしている場合は、次のコードは、常に最新の日付でシートをアクティブにします。 1つのドキュメントで異なる命名パターンを使用する計画がある場合は、これを可能にするために以下のコードをリファクタリングする必要があります。
onOpen()関数は、GASのいわゆるシンプルトリガーの1つで、この関数内のすべてのコードは、ドキュメントを開いたときに実行されます。 sort()メソッドは、指定された条件に基づいて配列要素をソートします。 sort()はSheetオブジェクトをソートするためにどの基準を使用するのか分からないので、デフォルトのものをオーバーライドするためにコンパレータ関数を渡す必要があります。
コンパレータ関数は、シート名を解析し、年月日(この順番で)を新しいDate()コンストラクタに渡すことによって、日付オブジェクトを作成します。次に、日付減算の結果を使用して、 'シート'配列を降順でソートします(最高値から最低値まで)。
最後に、ソートされた配列の最初の要素(最後に作成されたシート)を取得し、アクティブシートとして設定します。
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
sheets.sort(function(a,b) {
var arr1 = a.getName().split("_");
var arr2 = b.getName().split("_");
return new Date(arr2[1], arr2[0]) - new Date(arr1[1], arr1[0]);
});
if (sheets.length < 1) {
return;
}
ss.setActiveSheet(sheets[0]);
}
あなたがPropertiesService中とSpreadsheetApp.getActive()あなた開く時]機能使用中のシートの名前を格納することができます。(getSheetByName)とscriptPropertiesから名前のファイル名を取得します。 'var scriptProperties = PropertiesService.getUserProperties(); var sheetname = scriptProperties.getProperty( 'sheetname'); ' – Cooper