前提
GAS(GoogleAppsScript)について質問です。
社内で共有している受付シートです。
項目を入力していき、受付まで埋まりきったところでチャットワークへ送信される
スクリプトを作りたいと考えてます。
表がすべて埋まったら次のシートへ移って行き、5まで行ったら
シート1へ戻り、中身を削除してまた利用するというサイクルで運用しています。
単純にチャットワークへ送信できるところまでは確認できました。
細かい条件式などでご教示いただければ幸いです。
実現したいこと
1.指定の列(受付)が入力されたら、入力列の情報をチャットワークへ送信したい。
2.日付から内容(B~F)まで入力されている状態で受付(G)が入力されたら送信したい。
発生している問題
1.どのセルを編集しても情報が送信されてしまう。
2.セルを削除すると編集扱いになり空データが送信される。
3.日付表記がごちゃごちゃしてしまい分かりづらい。
該当のソースコード
function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var lastRow = sheet.getLastRow(); var token = PropertiesService.getScriptProperties().getProperty('CW_TOKEN'); for(var i = 2; i <= lastRow; i++) { if(!sheet.getRange(i, 8).getValue()){ var values = sheet.getRange(i, 1, 1, 7).getValues(); var body = '[info]' body += '日付:' + values[0][1] + '[hr]'; //day body += '時間:' + values[0][2] + '\n'; //time body += '氏名:' + values[0][3] + '\n'; //person body += '番号:' + values[0][4] + '\n'; //number body += '内容:' + values[0][5] + '\n'; //naiyou body += '受付:' + values[0][6] + '[/info]'; //tantou sendMessage(token, body); sheet.getRange(i, 8).setValue(true); break; } } if(i >= lastRow) { sheet.getRange(2, 4, lastRow - 1).clearContent(); } } function sendMessage(token, body){ var cw = ChatWorkClient.factory({token: token}); cw.sendMessageToMyChat(body); }
スクリプトについてはネットからの見様見真似です。
運用上、もっと別の式を構築すべきなのでしょうか。
どなたかご教示いただけると幸いです。
どうぞ宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/02 11:41
2019/04/03 05:18
2019/04/03 10:54
2019/04/03 13:39
2019/04/04 10:54
2019/04/04 11:32 編集
2019/04/05 04:02
2019/04/05 15:25
2019/04/06 21:29
2019/04/13 07:09