
毎朝、健康観察と称してGoogleformでその日の体温や体の状態について回答を集めています。そのFORMの回答と在籍する全員の名簿を照らして回答のない者に対して回答を催促するメールを8時に送りたいと考えています。
コードのヒントとなる情報(下記)を頂いたのですが、未だにできません。
const nameList = "名簿"; // 名簿が保存されているシートの名前
const nameCol = 2; // 名簿のチェック対象となる列(1~)
const answerList = "回答"; // 検索対象の回答が保存されているシートの名前
const answerCol = 1; // 回答のチェック対象となる列(1~)
/****************************************************************************
- 指定された名簿の中から、回答していないものを探す
*/
function searchUnrespondents() {
// 名簿データを 2次元配列として読み込む
const nameSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(nameList);
const nameData = nameSheet.getDataRange().getValues();
console.log(nameData);
// 回答データのチェック対象の列だけを 1次元配列として読み込む
const answerSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(answerList);
const answerData = answerSheet.getRange(2, answerCol, answerSheet.getLastRow() - 1).getValues().flat();
console.log(answerData);
// 名簿データの行数分、回答の有無をチェックする
for (let i = 1; i < nameData.length; i++) {
searchStr = nameData[i][nameCol - 1];
if (!answerData.includes(searchStr) {
// 回答がない
console.log(i + " : " + searchStr + " is " + answerData.includes(searchStr));
}
}
以下の写真中の個人名、メールアドレスは、いずれもダミーデータです。
FORMの回答
対象は700名ほどですが、6〜7割回答があるかどうかという現状を変えたいです。
ご助言等々、お願い致します。
回答1件
あなたの回答
tips
プレビュー