「googleapps script date 翌日」
「appsscript 一日加算」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あることに気が付きました。
何らかの日付データに、1日加算して翌日の日付を求める、GAS(Google Apps Script)のコードを探している方による検索です。
VBA(Visual Basic for Applications)の場合、日付の加算・減算を行うDateAdd関数を使うのが簡単です。
アクティブセルの日付の翌日の日付を入力するサンプルスクリプト
GASの場合どうするのか気になりましたので、簡単なスクリプトを作ってみました。
var bk = SpreadsheetApp.getActiveSpreadsheet();
var sh = bk.getActiveSheet();
var rng = sh.getActiveCell();
var date = new Date(rng.getValue());
date.setDate(date.getDate() + 1);
rng.offset(0, 1).setValue(date);
}Googleスプレッドシートで、日付の入力されているセルを選択しておいてから上記のスクリプトを実行すると、右隣のセルに、翌日の日付・1日加算した日付が入力されます。
サンプルスクリプトの解説
アクティブなセルの値を、GASのRange.getValueメソッドで取得して、その値を元にJavaScriptのDateクラスのインスタンスを作成します。
var date = new Date(rng.getValue());
Date.getDateメソッドで、その日付の日だけを取得してから、「+ 1」することで翌日の日付を求めて、Date.setDateメソッドでその日付をdateにセットしておきます。
date.setDate(date.getDate() + 1);
最後に、GASのRange.offsetメソッドで取得したアクティブセルの右隣のセルに、Range.setValueメソッドで、一日加算した日付を書き込んでいます。
rng.offset(0, 1).setValue(date);
JavaScriptのDateクラスを使うところが、VBAの日付計算の考え方とは大きく異なるなぁと感じます。
- Newer:Excelマクロ入門講座 2015-4-19(日)10:30より
- Older:Excel VBAで2次元配列を宣言する
Home » Googleスプレッドシートの使い方 » Google Apps Scriptで1日加算した日付・翌日の日付を入力する