質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
PhpSpreadsheet

PhpSpreadsheetは、PHPExcelの後継であるPHPライブラリです。新規Excelファイルの作成や既存Excelファイルの読み書き、ファイル編集など一連の操作を無償で行うことができます。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

解決済

GoogleFORM未提出者に毎朝8時に回答催促メールを自動で送りたい

Kimoty
Kimoty

総合スコア13

PhpSpreadsheet

PhpSpreadsheetは、PHPExcelの後継であるPHPライブラリです。新規Excelファイルの作成や既存Excelファイルの読み書き、ファイル編集など一連の操作を無償で行うことができます。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

1回答

-2評価

0クリップ

246閲覧

投稿2022/05/20 12:21

毎朝、健康観察と称して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割回答があるかどうかという現状を変えたいです。

ご助言等々、お願い致します。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

qnoir

2022/05/20 12:50

そのヒントのコードはもらった状態そのままなのでしょうか。 それともご自分で少しいじって実行してみたりしたものなのでしょうか。
Kimoty

2022/05/20 12:58

もらったままです。恥ずかしながら正直、どこをいじれば良いのかさえ分かりません。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

PhpSpreadsheet

PhpSpreadsheetは、PHPExcelの後継であるPHPライブラリです。新規Excelファイルの作成や既存Excelファイルの読み書き、ファイル編集など一連の操作を無償で行うことができます。

Gmail

GmailとはGoogleによって提供されているウェブメールのサービスのことです。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。