はいこんにちは、こんなケース無いですか?
共同編集しているファイルの更新状況を知りたい、けどGoogleドライブ見に行くの面倒くさい
指定した任意のGoogleドライブ内のファイルの最終更新時刻を取得してメール通知すれば万事解決ですね!
下準備
- searchfolderIDという名前のシートのA1セルに任意のGoogleドライブのidを入力。
- 結果を入力するresultという名前のシートを準備。
てなわけで、はいコード
-
"このスプレッドシートのA1セルのUrlを取得して貼ろう!"
-
"送信したいメールアドレス"
この二つは任意に書き換えてください。
function getFileListInFolder_yesterday() {
const ss = SpreadsheetApp.getActive();
const folderIDsheet = ss.getSheetByName("searchfolderID");
const resultsheet = ss.getSheetByName("result");
const folder_id = folderIDsheet.getRange(1,1).getValue();
const folder = DriveApp.getFolderById(folder_id);
const files = folder.getFiles();
const list = [];
while(files.hasNext()) {
const buff = files.next();
list.push([buff.getName(), Utilities.formatDate(buff.getLastUpdated(), 'Asia/Tokyo', 'yyyy/MM/dd hh:mm:ss'),buff.getUrl()]);
};
const date = new Date();
const today = Utilities.formatDate(date, 'Asia/Tokyo', 'yyyy/MM/dd 00:00:00');
const day = date.getDate();
date.setDate(day-1);
const yesterday = Utilities.formatDate(date, 'Asia/Tokyo', 'yyyy/MM/dd 00:00:00');
const todayData = list.filter(x => x[1] >= yesterday);
console.log(list);
console.log(list.length);
const range = resultsheet.getRange(1,1,list.length,list[0].length);
// 対象の範囲にまとめて書き出します
range.setValues(list);
const body = ""
const ssUrl = "このスプレッドシートのA1セルのUrlを取得して貼ろう!"
// メール本文のHTMLを構築
let htmlBody = "<html><body><h1>スプレッドシートデータ</h1><table border='1' cellspacing='0' cellpadding='5'>";
// ヘッダ行を追加
htmlBody += "<tr>";
for (let i = 0; i < list[0].length; i++) {
htmlBody += "<th>" + list[0][i] + "</th>";
}
htmlBody += "</tr>";
// データ行を追加
for (let i = 1; i < list.length; i++) {
htmlBody += "<tr>";
for (let j = 0; j < list[i].length; j++) {
htmlBody += "<td>" + list[i][j] + "</td>";
}
htmlBody += "</tr>";
}
htmlBody += "</table></body></html>";
//html += `<p> ${list}</p>`;
htmlBody += `<p><a href="${ssUrl}">スプレッドシート</a>で確認!</p>`;
GmailApp.sendEmail("送信したいメールアドレス","昨日からの更新ファイルとか", body, {htmlBody: htmlBody});
}
こんな感じのGメールが届きます
これを動かすと、任意のGoogleドライブのファイルリストを作成してくれた上に最終更新日を教えてくれます。
適度な時間ベースのトリガーをつけておくと、メール通知してくれて変更があったファイルだけを開いて確認すればよくなりますね!