①スプレッドシートでガントチャートを作る
②ガントチャートに管理上必要なカラムを追加
③進捗が即全体に周知できるように、Chatworkに通知したい
③にあたり、進捗が更新されたら任意の内容をChatworkに飛ばすbotをGASを使って作成した。
その時のメモ。
大体コピペさせていただいた。
gas
var status_column = 7; //スプレッドシートのG列が編集された時のみ通知したい。
/**
* メイン処理
*
* 取り出したデータをCWに送信する
* トリガーは更新時
*
*/
function postSheetChange(){
const value = getValue();
var client = ChatWorkClient.factory({token:"cw_API_token"}); //Chatwork API
if (value) {
client.sendMessage({ //メッセージの投稿を行う
room_id: roomID, // room_ID
body:value });
}
}
/**
* スプレッドシートから必要なデータを取り出す
*
*/
function getValue(){
var notifySheet = SpreadsheetApp.getActiveSpreadsheet();
var active_sheet = SpreadsheetApp.getActiveSheet();
var my_cell = active_sheet.getActiveCell();
var active_sheet_column = my_cell.getColumn();
var rowNum = my_cell.getRow();
var data =
'WBS:'+ notifySheet.getRange('A' + rowNum).getValue()+ '\n'
+'タスク:' + notifySheet.getRange('B' + rowNum).getValue() + notifySheet.getRange('C' + rowNum).getValue() + '\n'
+'ステータス:' + (notifySheet.getRange('G' + rowNum).getValue())*100 + '%' + '\n'
+'該当のスプレッドシートのURL';
if (active_sheet_column !== status_column){
return ;
}
return data;
}
function all() { //複数の関数を順番に実行するための関数を用意
getValue();
postSheetChange();
}
#参考
ガントチャートアドオン