3

現在、クライアントの出席を記録するために使用するスプレッドシートを Google Apps で作成しています。スプレッドシートには 12 枚のシートが含まれています。各シートは月を表し、シート 1 は 1 月、シート 2 は 2 月などを表します。

現在の日付に基づいて関連するシートを自動的に開くために、On_Open 関数を使用して Google Apps Script を作成しようとしています。

たとえば、現在の日付が 2013 年 2 月 18 日の場合、スプレッドシートは自動的に開き、シート 2 (2 月) がフォーカスされます。

SpreadsheetApp.setActiveSheet の使用は正しいと思いますが、Google App Script を使用して特定の月の日付を取得する方法がわかりません。

スクリプトは次のように流れると思いますか?

Date = 18/02/2013 の場合、SpreadsheetApp.setActiveSheet 2

どんな助けでもありがたく受け取られます。

4

2 に答える 2

4

月を取得するには、0 ~ 11 を指定します。

var month = (new Date()).getMonth();

1 月から 12 月を表す{ Sheet1.. }があると仮定すると、これは機能します。Sheet12

/**
 * Selects a monthly sheet
 */
function onOpen() {
  var month = (new Date()).getMonth();

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[month];
  ss.setActiveSheet(sheet);
};

または、月ごとにシートに名前を付けて、適切な月ごとのシートを名前で見つけることもできます。これにより、スプレッドシートに月次以外のシートを含めることができます。

/**
 * Selects a monthly sheet
 */
function onOpen() {
  var monthTabs = [ "January", "February", "March", "April", "May", "June",
    "July", "August", "September", "October", "November", "December" ];

  var month = (new Date()).getMonth();
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(monthTabs[month]);
  ss.setActiveSheet(sheet);
};
于 2013-09-10T18:07:40.117 に答える