GASをつかって、スプレッドシートに記載のある内容をチャットワークへ送信したいと考えております。
※ボタンを設置し、トリガーとする
以下の内容だと、送信判断の列が空白である最終行しか送信されないため、
何行か追加した後にこのスクリプトを実行すると、送信漏れが発生してしまいます。
function newInquireNotice() { // シート情報を取得 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet = SpreadsheetApp.getActiveSheet(); // 複数シートがある場合、お目当てのシートの話じゃないならやめる var sheetName = sheet.getSheetName(); if (sheetName !== "シート名") { // ←ここは使ってるシート名を入れてあげてください return; } // ラベル列を検索して返す関数 function colSearch(label) { for (i = 1; i <= sheet.getLastColumn(); i++) { if (sheet.getRange(4, i).getValue() == label) { return i; } } } // 列数 var dateCol = colSearch("依頼日"); var taskCol = colSearch("対応内容"); var noticedCol = colSearch("送信判断"); // 最新行のnoticedがtrue入ってなければ通知出してtrueにする関数 function newNotice() { lastRow = sheet.getLastRow(); var thisNoticed = sheet.getRange(lastRow, noticedCol); if (thisNoticed.getValue() !== true) { var newtask = sheet.getRange(lastRow, taskCol).getValue(); var message ="メッセージ内容newtask"; var client = ChatWorkClient.factory({token: 'トークン'}); client.sendMessage({room_id: ID, body: message}); // 通知済のところをtrueにする sheet.getRange(lastRow, noticedCol).setValue(true); // 依頼日に日付を追加する sheet.getRange(lastRow, date1Col).setValue(new Date()); } } newNotice(); }
【現在の動き】
依頼日 | 内容 | 送信判断 |
---|---|---|
6/6 | AAA | true |
6/6 | BBB | |
6/6 | CCC |
↓スクリプト実行
依頼日 | 内容 | 送信判断 |
---|---|---|
6/6 | AAA | true |
6/6 | BBB | |
6/6 | CCC | true |
CCCの内容だけがチャットワークに通知
【希望の動き】
依頼日 | 内容 | 送信判断 |
---|---|---|
6/6 | AAA | true |
6/6 | BBB | |
6/6 | CCC |
↓スクリプト実行
依頼日 | 内容 | 送信判断 |
---|---|---|
6/6 | AAA | true |
6/6 | BBB | true |
6/6 | CCC | true |
BBBとCCCの内容が、続けてチャットワークに通知
お力を貸していただけますと幸いでございます。
コードの引用元を記載してください
引用元:https://qiita.com/sngazm/items/714ac05540c0cfd632ae
上記のサイトから引用させていただきました。
どうぞよろしくお願いいたします。
