1
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.

スプレッドシートで管理しているタスクのステータスをSlack通知する

Last updated at Posted at 2020-08-30

目的

マイルストーンをGoogleスプレッドシートを使って管理していると、各タスクのステータスの変化はスプレッドシートを見にいかないと確認できない。タスクの添削をお願いしたいときにこの状態だと作業が滞ってしまう可能性がある。
この問題を解決するために、添削をお願いしたいタスクをSlackに通知するスクリプトをGoogle Apps Script(以下、GAS)で作成した。

マイルストーン

今回はマイルストーンの作成の仕方については、以下のサイトを参考に作成した。
【テンプレDL可能】ガントチャートをGoogleスプレッドシートで作ろう

作成したマイルストーンでは、以下のようにステータスを設定している。
このうち、「添削お願い」を選択したときに通知がいくようなシステムを構築する。
プルダウン.png

仕組み

GASは、getActiveCell()を使って変更されたセルを取得することができる。
そして、取得したセルと以下のメソッドを合わせることで様々な値を取得することができる。

  • getValue():取得したセルに入力されている値
  • getRow():取得したセルの行番号
  • getColumn():取得したセルの列番号

タスク名や担当者などは、getRange(row, column)を使って指定することで取得できる。

var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getActiveCell();
if(cell.getColumn()==7){
  var row = cell.getRow();
  if(cell.getValue() === "添削お願い"){
    var body = "「" + sheet.getRange(row,3).getValue() + "」の添削をお願いします。\n担当者:" + sheet.getRange(row,6).getValue() + "さん";
    sendToSlack(body, "チャンネル名");
  }
}
  • getActiveSheet():アクティブなシートを取得する。
  • if(cell.getColumn()==7):変更されたセルが上記のプルダウンであるか、if分で確認する。
  • if(cell.getValue() === "添削お願い"):タスクのステータスを確認し、"添削お願い"のときにSlackに通知する。
  • sendToSlack:Slackに通知するために作成した関数。bodyは通知する内容を指す。Googleformからのslack通知設定方法を参考に作成した。

トリガー

内容を変更したときにスクリプトが動くようにトリガーを、「編集」->「現在のプロジェクトのトリガー」から設定する。
「イベントの種類」を"変更時"にすることで内容が変更されたかどうか探知できる。

参考にしたサイト

1
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
1
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?