【GAS】チェックボックスのON/OFFで項目をグレーアウトしメールを返信する方法

GAS

条件付き書式の一覧
ご訪問ありがとうございます。

Googleシートマスターのひろしです。

前回

条件により文字や背景の色を変更する方法(条件付き書式)(Gスプレッドシート)
  • 条件に合わせて文字や背景の色を変更することができます。
  • 特定の行の文字や背景の色を変更することができます。
  • 今回は、とっても価値の高い方法をお伝えします。


    これを知ることであなたは、こんな感じにできます。

    そして

    • 条件書式の効果的な使用方法がわかります。
    • チェックボックスのON/OFFにより項目のON/OFFが設定できるようになります。

    なので、サクッとマスターして

    と答えてあげてください。

    動画はこちら

    Googleスプレッドシート チェックボックスのON/OFFで項目を無効(グレーアウト)にする方法(条件書式)

    シートはこちら


    ※クリックするとシートが開きます。

     

    そして読み込み

     

     

    • GASでスプレッドシートから一気にデータを取得する方法がわかります。
    • チェックボックスのON/OFFで処理を変更する方法がわかります。

     

     

     

    スクリプト

    //★スプレッドシートのIDz*URLのユニークな長い部分
    const FORMAT__SHEET_ID = "1g1K9IlBNL4fTxvpH0h5JgUv_u83Kek5rLIHHc1L9dAM";
    
    
    //以下名称が一致しているか確認
    //シートの名称
    const FORMAT_SHEET_NAME = "返信メールフォーマット2";
    
    //フォーム内の名称
    const ITEM_MAILADDRESS = "メールアドレス";
    const ITEM_NAME_TITLE = "お名前(ニックネーム可)";
    
    function test() {
      const ss = SpreadsheetApp.openById(FORMAT__SHEET_ID)
      const sheet = ss.getSheetByName(FORMAT_SHEET_NAME)
    
      let SendInfobuf = sheet.getRange(1, 1, 7, 3).getValues()
    
      const Cchk = 0  //チェックボックスの値の位置
      const Clmv = 2  //項目の値の位置
    
    
      const Lsubject = 0  // 件名
      const Lcontents = 1 // 本文
      const Lfromadder = 2  // 送信元メールアドレス
      const Lfromname = 3 // 送信元名前
      const Latendmadder = 4  // 通知先メールアドレス
      const Latendsubject = 5 // 通知先への件名
      const Latendcontents = 6 // 通知先への本文
    
      if (SendInfobuf[Lfromadder][Cchk]) {  //送信元メールアドレスがon
        console.log("送信元メールアドレスがon")
        console.log(SendInfobuf[Lfromadder][Clmv])
        console.log(SendInfobuf[Lfromname][Clmv])
      }
      else {
        console.log("送信元メールアドレスがoff")
      }
    
      if (SendInfobuf[Latendmadder][Cchk]) {  //通知先メールアドレスがon
        console.log("通知先メールアドレスがon")
        console.log(SendInfobuf[Latendmadder][Clmv])
      }
      else {
        console.log("通知先メールアドレスがoff")
      }
    }
    

    そして完成

     

    • GASでGoogleフォームと連携する方法がわかります。
    • Googleフォーム登録時に別のメールアドレスから返信メールを送ることができます。

     

     

    動画はこちら

    【GAS28】スプレッドシートのデータ読み込みからの2次元配列完全攻略

     

    スクリプト

    //フォーム登録者にメールを送信する
    function submitForm(e) {
      let itemResponses = e.response.getItemResponses();
      let message = '';
      let username = '';
      let mail = '';
    
      const ss = SpreadsheetApp.openById(FORMAT__SHEET_ID)
      const sheet = ss.getSheetByName(FORMAT_SHEET_NAME)
    
      let SendInfobuf = sheet.getRange(1, 1, 11, 3).getValues()
    
      const Cchk = 0  //チェックボックスの値の位置
      const Clmv = 2  //項目の値の位置
    
    
      const Lsubject = 0  // 件名
      const Lcontents = 1 // 本文
      const Lfromadder = 2  // 送信元メールアドレス
      const Lfromname = 3 // 送信元名前
      const Latendmadder = 4  // 通知先メールアドレス
      const Latendsubject = 5 // 通知先への件名
      const Latendcontents = 6 // 通知先への本文
      const Lmailaddercaption = 9 // フォーム上のメールアドレスのキャプション
      const Lnamecaption = 10 //フォーム上の名前のキャプション
    
    
    
      //フォーム内の名称
      const ITEM_MAILADDRESS = SendInfobuf[Lmailaddercaption][Clmv]//メールアドレス"
      const ITEM_NAME_TITLE = SendInfobuf[Lnamecaption][Clmv]//お名前(ニックネーム可)
    
      for (let i = 0; i < itemResponses.length; i++) {
        let itemResponse = itemResponses[i];
        let question = itemResponse.getItem().getTitle();
        let answer = itemResponse.getResponse();
        if (question == ITEM_MAILADDRESS) {
          mail = answer;
        }
        if (question == ITEM_NAME_TITLE) {
          username = answer;
        }
        message += (i + 1).toString() + '. ' + question + ': ' + answer + '\n';
      }
    
    
      let subject = SendInfobuf[Lsubject][Clmv]//件名の取得
      let contents = SendInfobuf[Lcontents][Clmv] //本文の取得
    
    
      subject = subject.replace("%name%", username);//%name%を置換する
      contents = contents.replace("%name%", username);//%name%を置換する
    
      let options =
      {
        from: SendInfobuf[Lfromadder][Clmv],
        name: SendInfobuf[Lfromname][Clmv]
      }
    
    
      if (SendInfobuf[Lfromadder][Cchk]) {  //送信元メールアドレスがon
        GmailApp.sendEmail(mail, subject, contents, options) //登録者にメールを送信する
      }
      else {
        GmailApp.sendEmail(mail, subject, contents) //登録者にメールを送信する
      }
    
      if (SendInfobuf[Latendmadder][Cchk]) {  //通知先メールアドレスがon
        console.log("通知先メールアドレスがon")
        console.log(SendInfobuf[Latendmadder][Clmv])
        contents = SendInfobuf[Latendcontents][Clmv] //本文の取得
        contents += '\n\n' + message;
        GmailApp.sendEmail(SendInfobuf[Latendmadder][Clmv],
          SendInfobuf[Latendsubject][Clmv],
          contents)
      }
      else {
        console.log("通知先メールアドレスがoff")
      }
    }

     

    最後までご覧いただきありがとうございます。

    つぎはこちら

    【コピペでできるGAS】ふりがな関数(ExcelのPHONETIC)を実装する(Gスプレッドシート)
    名前のフリガナを一瞬でふることができます。 ExcelのPHONETIC関数を実現できます。 「GASって何?」状態であってもコピペでできます。

    条件付き書式の一覧

    コメント

    タイトルとURLをコピーしました