目的
マイルストーンをGoogleスプレッドシートを使って管理していると、各タスクのステータスの変化はスプレッドシートを見にいかないと確認できない。タスクの添削をお願いしたいときにこの状態だと作業が滞ってしまう可能性がある。
この問題を解決するために、添削をお願いしたいタスクをSlackに通知するスクリプトをGoogle Apps Script(以下、GAS)で作成した。
マイルストーン
今回はマイルストーンの作成の仕方については、以下のサイトを参考に作成した。
【テンプレDL可能】ガントチャートをGoogleスプレッドシートで作ろう
作成したマイルストーンでは、以下のようにステータスを設定している。
このうち、「添削お願い」を選択したときに通知がいくようなシステムを構築する。
仕組み
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通知設定方法を参考に作成した。
トリガー
内容を変更したときにスクリプトが動くようにトリガーを、「編集」->「現在のプロジェクトのトリガー」から設定する。
「イベントの種類」を"変更時"にすることで内容が変更されたかどうか探知できる。