スプレッドシートでのタスク管理や情報共有は非常に便利ですが、「ステータスが更新されたらSlackで通知する」といった定型作業を手動で行っていませんか?
この記事では、Google Apps Script (GAS) を使って、スプレッドシートのステータスが「新規」に変更されたら、その内容を自動でSlackに通知する方法を解説します。

ステータスを「新規」に変更
このスクリプトを使えば、上記のようにステータスを変更するだけで、以下のようにSlackの指定チャンネルへ自動で通知が届きます。

Slackに自動通知が届く
手動でのコピー&ペースト作業から解放され、チームの情報共有をスムーズにしましょう。
ちなみに、ステータス変更と同時に担当者名や日付を自動入力する方法はこちらで解説しています。
Google Apps Script(GAS)を使用して、スプレッドシートの特定の列が編集された際に、自動で日付と編集者の名前を入力する方法を解説します。onEditトリガーを活用し、課題管理票などの更新作業を効率化しましょう。

完成したGASコード
まずは今回作成するコードの全体像です。コピーしてすぐにお使いいただけます。
/*
* 関数概要
* スプレッドシートのステータスが「新規」に編集されたら、Slackに内容を通知する
*
* 引数
* e イベントオブジェクト(起動時の情報が含まれています)
*
* 戻り値
* なし
*/
function sheet_postContent(e) {
// ヘッダーの行番号
const hedaerRow = 2;
// 通知させる内容が書かれている列番号
const contentCol = 5;
// 編集されたシート
const sheet = e.source.getActiveSheet();
// 編集されたセル
const currentCell = e.source.getActiveCell();
// 編集された値
const currentValue = currentCell.getValue();
// 編集されたセルの行番号
const currentRow = currentCell.getRow();
// ログ
Logger.log("行番号:" + currentRow);
Logger.log("編集された値:" + currentValue);
// ヘッダー以降で、編集された値は「新規」の場合にSlack通知させる
if (hedaerRow < currentRow && currentValue == "新規") {
var content = sheet.getRange(currentRow, contentCol).getValue();
Logger.log("送信する内容:" + content);
slack_postMessage(content);
}
}
/*
* 関数概要
* Slackに指定テキストを#sampleに送信する
*
* 引数
* message Slackに送信したいテキスト
*
* 戻り値
* なし
*/
function slack_postMessage(message) {
const token = "Slackで取得したトークン";
const apiUrl = "https://slack.com/api/chat.postMessage?token=" + token;
const payload = {
"channel": "sample",
"text": message
};
const options = {
"method": "post",
"payload": payload
};
UrlFetchApp.fetch(apiUrl, options);
}
以降のセクションで、このスクリプトを動かすための事前準備と設定方法を詳しく解説します。
事前準備:Slackのアクセストークンを取得する
GASからSlackへ通知するために、専用のアクセストークンを取得します。
1. Slackアプリを作成する
まず、以下のURLからSlack APIの管理画面にアクセスし、新しいアプリを作成します。

「Create New App」をクリックし、「From scratch」を選択。アプリ名(例: GAS-Notification-Bot)と、導入したいワークスペースを指定して作成します。
Slackアプリ情報の入力
2. トークンの権限を設定する
次に、作成したアプリに必要な権限(スコープ)を付与します。 左側メニューから「OAuth & Permissions」を選択してください。

「OAuth & Permissions」を選択
「Scopes」セクションまでスクロールし、「Bot Token Scopes」にある「Add an OAuth Scope」ボタンをクリック。「chat:write」を選択して追加します。これは、アプリがチャンネルにメッセージを書き込むための権限です。

Scopesに「chat:write」を追加
3. アプリをワークスペースにインストールする
ページ上部に戻り、「Install to Workspace」ボタンをクリックして、作成したアプリをワークスペースにインストールします。
アプリをワークスペースにインストール
権限リクエストの確認画面が表示されるので、「許可する」をクリックします。

アクセス許可
4. トークンをコピーする
インストールが完了すると、「Bot User OAuth Token」が生成されます。このトークン(xoxb-で始まる文字列)をコピーしてください。後のGASコードで使用します。

生成されたトークンをコピー
GASの実装とトリガー設定
次に、スプレッドシート側でGASの設定を行います。
1. スクリプトエディタにコードを追加する
対象のスプレッドシートを開き、「拡張機能」>「Apps Script」を選択してスクリプトエディタを起動します。
エディタ内に、この記事の冒頭で紹介したGASコードを貼り付け、slack_postMessage関数内のtokenの値を先ほどコピーしたご自身のトークンに書き換えてください。
スクリプトの追加方法がわからない場合は、こちらの記事も参考にしてください。
Google Apps Script(GAS)を使用して、スプレッドシートの特定の列が編集された際に、自動で日付と編集者の名前を入力する方法を解説します。onEditトリガーを活用し、課題管理票などの更新作業を効率化しましょう。
2. トリガーを設定する
最後に、スクリプトが自動で実行されるように「トリガー」を設定します。 スクリプトエディタの左側メニューから「トリガー」(時計アイコン)を選択し、「トリガーを追加」ボタンをクリックします。
トリガー設定画面
以下の通りに設定し、保存してください。
- 実行する関数を選択:
sheet_postContent - イベントのソースを選択:
スプレッドシートから - イベントの種類を選択:
編集時
トリガー情報の設定
これで、スプレッドシートのいずれかのセルが編集されるたびにsheet_postContent関数が実行されるようになりました。
実行結果
設定が完了したら、実際にスプレッドシートのステータス列を「新規」に変更してみましょう。 すぐに指定したSlackチャンネルに通知が届けば成功です!
まとめ
今回は、GASを使ってスプレッドシートの更新をSlackに自動通知する方法を紹介しました。 これまで手動でSlackに連絡事項を投稿していた手間が省け、ヒューマンエラーの防止にも繋がります。
このスクリプトを応用すれば、
- タスクの担当者が割り当てられたら、その担当者にメンション付きで通知する
- 特定の数値を超えたらアラートを飛ばす など、さまざまな業務自動化が実現できます。ぜひ活用してみてください!
