ご訪問ありがとうございます。
Googleシートマスターのひろしです。
前回
【GAS】シート一覧からシートを一括削除する方法(Gスプレッドシート)
今回は、とっても価値の高い方法をお伝えします。
これを知ることであなたは、
- GAS(JavaScript)における日付の作成方法がわかります。
- GASでシート一覧の取得や削除する方法がわかります。
なので、サクッとマスターして
と答えてあげてください。
ご質問
やりたいことは、シート名が月日のチェックシートを作成後、不要になったシートを削除するんですが、本日より2日後以降のシートをすべて削除したいんです。例えば今日が10月7日なら10月5日以降のシートを削除します。見よう見まねで作ってみたんですが、うまく動きません。
動画はこちら
シートはこちら
*クリックすることでシートが開きます。(コピーしてお使いください)
スクリプト
function samp1() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
let date = new Date();
//今年の文字列
let str_year = Utilities.formatDate(date, 'JST', 'y')+"/";
date.setDate(date.getDate() - 2)//今日の2日前
let days2ago = Utilities.formatDate(date, 'JST', 'M/d');
// console.log(days2ago);
let sheets = ss.getSheets();
//シート一覧のループ
for (let i = 1; i < sheets.length; i++) {
let tempdate = sheets[i].getName()
//シート名から日付データを生成する
tempdate = new Date(str_year + tempdate);
//2日前以前であれば
if (tempdate < date) {
let trashsh = ss.getSheetByName(sheets[i].getName());
console.log("削除するシート", sheets[i].getName())
ss.deleteSheet(trashsh); //シートの削除
}
}
}
ポイント
文字列から日付を作成
シート名を日付として認識させるには、GAS(JavaScript)で、
文字列を日付データ変換する必要があります。
2023年10月17日の日付データ
let date = new Date( “2023/10/17”)
シート名が「10/17」なので「年/」を付加して
作成します。
let str_year = "2023/"
let tempdate = "10/17"
let date = new Date( str_year + tempdate)
今年の年を文字列で取得する
現在の日付から年を抽出すればOKです。
const str_year = Utilities.formatDate(date, ‘JST’, ‘y’)
最後までご覧いただきありがとうございます。
つぎはこちら
【GAS】シート一覧の取得と表示/非表示の設定(Gスプレッドシート)