【GAS】Google 폼의 문의를 스프레드시트로 관리하고, 미응답인 것만 메일 송신

소개



Google 설문지에서 요청을 받고 응답 후 스프레드시트를 작성한 후 이메일을 보내려는 코드입니다.

처리의 흐름으로서는 이하
이 기사는 4 내용의 코드입니다.
  • Google 설문지로 요청 받기
  • 오프라인으로 대응
  • 2의 대응 후, 대응하는 내용 스프레드 시트에 기입한다.
  • 3의 대응하고 메일을 송신하지 않은 것을 1의 문의자에게 통지한다

  • 보라색 항목이 Google 양식에서 문의
    청색 항목이 수동 기입 & GAS에서 사용하는 상태



    타임스탬프
    test
    test1
    이메일 주소
    Ans
    전송 상태


    2020/06/04 21:33:02
    a
    1
    왓 x @ g 마이 l. 이 m
    Ans 기입



    코드


    function myFunction() {
      // スプレッドシート取得
      let sheet = SpreadsheetApp.getActive().getSheetByName('フォームの回答 1');
    
      // データ取得範囲指定
      const row = 2;
      const column = 1;  
      const LastRow = sheet.getDataRange().getLastRow();
      const LastColumn = sheet.getDataRange().getLastColumn();
      const numRows = LastRow - row + 1;
      const numColumns = LastColumn - column + 1;
    
      // データ取得
      let data = sheet.getRange(row, column, numRows, numColumns).getValues();
    
    
      // メール
      let recipient = ''; // 送信先メールアドレス
      let subject = '対応完了 - '; // メール件名
      let body = '';
      let sendCnt = 0;
    
      for (let i=0; i < data.length; i++) {
      // 1行ずつメール未送信かどうかチェック
        if ( data[i][5] != '' ) { // 送信ステータスチェック
          recipient = data[i][3];
          subject += data[i][1];
          body += '\ntest:' + data[i][1];
          body += '\ntest1:' + data[i][2];
          body += '\nAns:' + data[i][4];
    
          GmailApp.sendEmail(recipient, subject, body); //, options
    
          sheet.getRange(i+2, 6).setValue('');
    
          sendCnt ++;
        }
      }
    
      if ( sendCnt == 0 ) {
       console.log('送信対象無し'); 
      }
    }
    

    참고


  • 【초보자】GoogleAppsScript로 Google 스프레드 시트를 조작하는 기본 코드 베스트 3
  • 【초보자】GAS에서 웹 스크래핑, 스프레드 시트 저장, 이메일을 보내는 코드
  • 좋은 웹페이지 즐겨찾기