0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【GAS】ガントチャートの進捗が変更されたらChatworkに送信したかった

Last updated at Posted at 2020-09-04

①スプレッドシートでガントチャートを作る
②ガントチャートに管理上必要なカラムを追加
③進捗が即全体に周知できるように、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();
  
 }




#参考
ガントチャートアドオン

Chatworkライブラリ

更新時、Slackに通知する方法

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?