JavaScript Date サンプル

これらのサンプルは、JavaScript Date オブジェクトの使用方法を示しています。

注:

Office スクリプト コード エディターからこれらのサンプルを直接実行します。 コード エディターを開くには、コード エディター で Automate>New Script>Create に移動します。 既定のコードを実行するサンプル コードに置き換え、[ 実行] を選択します。

現在の日付と時刻を書き込む

次の例では、現在の日付と時刻を取得し、それらの値を作業中のワークシートの 2 つのセルに書き込みます。

function main(workbook: ExcelScript.Workbook) {
  // Get the cells at A1 and B1.
  let dateRange = workbook.getActiveWorksheet().getRange("A1");
  let timeRange = workbook.getActiveWorksheet().getRange("B1");

  // Get the current date and time with the JavaScript Date object.
  let date = new Date(Date.now());

  // Add the date string to A1.
  dateRange.setValue(date.toLocaleDateString());

  // Add the time string to B1.
  timeRange.setValue(date.toLocaleTimeString());
}

Excel の日付を読み取る

このサンプルでは、Excel に格納されている日付を読み取り、JavaScript Date オブジェクトに変換します。 日付の数値シリアル番号を JavaScript Dateの入力として使用します。 このシリアル番号については、 NOW() 関数 に関する記事を参照してください。

function main(workbook: ExcelScript.Workbook) {
  // Read a date at cell A1 from Excel.
  let dateRange = workbook.getActiveWorksheet().getRange("A1");

  // Convert the Excel date to a JavaScript Date object.
  let excelDateValue = dateRange.getValue() as number;
  let javaScriptDate = new Date(Math.round((excelDateValue - 25569) * 86400 * 1000));
  console.log(javaScriptDate);
}

ピボットフィルターで日付を使用する

このサンプルでは、ピボットテーブルに日付フィルターを適用して、過去 30 日間のアイテムのみを表示します。 JavaScript Date オブジェクトを使用して、フィルターの日付範囲を計算します。

function main(workbook: ExcelScript.Workbook) {
  // Get the PivotTable named "Pivot" from the workbook.
  const pivot = workbook.getPivotTable("Pivot");

  // Create Date objects for the current date and the date 30 days ago.
  const today = new Date();
  const thirtyDaysAgo = new Date(today);
  thirtyDaysAgo.setDate(today.getDate() - 30);

  // Get the "Last Updated" field from the PivotTable.
  const rowHierarchy = pivot.getRowHierarchy("Last Updated");
  const rowField = rowHierarchy.getFields()[0];

  // Apply a date filter to show only items from the last 30 days.
  rowField.applyFilter({
    dateFilter: {
      condition: ExcelScript.DateFilterCondition.between,
      lowerBound: {
        date: thirtyDaysAgo.toISOString(),
        specificity: ExcelScript.FilterDatetimeSpecificity.day
      },
      upperBound: {
        date: today.toISOString(),
        specificity: ExcelScript.FilterDatetimeSpecificity.day
      },
    }
  });
}

関連項目