スプレッドシートが変更されたら内容と標題をチャットワークに通知したい

実現したいこと

A列 B列 C列
日付 標題 内容
とGoogleスプレッドシートがあるとして

スプレッドシートでC変更があった場合に
C列と標題のB列をチャットワークに通知したいです

試したこと

他の回答を見てみようみまねで設定してみましたが
変更の内容は通知できるのですが
どうしても変更箇所以外の標題の通知の仕方がわかりませんでした

どうか助けてください

該当のソースコード

// 更新日時を記録するのスプレッドシートのID // https://docs.google.com/spreadsheets/d/【ここ】/edit var SHEET_ID = 'シートID '; //スプレッドシートのシート名 var SHEET_NAME = 'シート名'; // ChatWork用定数 // チャットルームID // https://www.chatwork.com/#!rid【ここ】 var ROOM_ID = 'るーむID '; // アクセストークン var TOKEN = 'とーくん'; function postChatwork (message) { var payload = { 'body' : message }; var headers = { 'X-ChatWorkToken' : TOKEN }; var options = { 'method' : 'post', 'payload' : payload, 'headers' : headers }; UrlFetchApp.fetch('https://api.chatwork.com/v2/rooms/' + ROOM_ID + '/messages', options); } function onUpdateBatchCheck() { // スプレッドシートを特定 var spreadsheet = SpreadsheetApp.openById(SHEET_ID); var sheet = spreadsheet.getSheetByName(SHEET_NAME); // getvaluesの実行速度が遅いのでシート内容を一括で取得 // A列1行目が[0][0]になることに注意する var data = sheet.getDataRange().getValues(); // チャット送信状態を保持する列のインデックス var stateColumnIndex = 4;// D列でチャット送信状態を保持する var targetColumnIndex = 3;// C列の更新を監視する var targetRowIndexes = []; // チャット通知対象の行リスト // チャット通知対象の行リストを生成する // ヘッダが0行目なので読み飛ばす for (var i = 2; i < data.length; i++) { // チャット未送信状態 かつ B列に何らかの入力がある if ((!data[i][stateColumnIndex]) && (data[i][targetColumnIndex])) { targetRowIndexes.push(i); } } // 通知対象行が0なら離脱 if (targetRowIndexes.length == 0) return; // シートの行ごとにメッセージブロックを生成する var msg= ''; for (var i = 0; i < targetRowIndexes.length; i++) { var row = targetRowIndexes[i];// シート上はi+1行目 var cell = data[row][targetColumnIndex];// i+1行目A列のセルの値 msg += Utilities.formatString('[info]№%d 更新されました\n標題:+ taskNo +\n編集者:%s[/info]', row + 1, cell); sheet.getRange(row + 1, stateColumnIndex + 1).setValue(true); } var message = Utilities.formatString('[%s] \n%s', SHEET_NAME, msg); // ChatWorkへメッセージを送信 postChatwork(message); }

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント