1. ホーム
  2. /
  3. [GAS]
  4. /
  5. 【GAS】スプレッドシートの特定セル編集をトリガーにSlackへ自動通知する方法

【GAS】スプレッドシートの特定セル編集をトリガーにSlackへ自動通知する方法

【GAS】スプレッドシートの特定セル編集をトリガーにSlackへ自動通知する方法

スプレッドシートでのタスク管理や情報共有は非常に便利ですが、「ステータスが更新されたらSlackで通知する」といった定型作業を手動で行っていませんか?

この記事では、Google Apps Script (GAS) を使って、スプレッドシートのステータスが「新規」に変更されたら、その内容を自動でSlackに通知する方法を解説します。

ステータスを「新規」に変更

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

Slackに自動通知が届く

手動でのコピー&ペースト作業から解放され、チームの情報共有をスムーズにしましょう。

ちなみに、ステータス変更と同時に担当者名や日付を自動入力する方法はこちらで解説しています。

【GAS】スプレッドシートの特定セル編集時に日付と担当者を自動入力する方法【業務効率化】
【GAS】スプレッドシートの特定セル編集時に日付と担当者を自動入力する方法【業務効率化】

Google Apps Script(GAS)を使用して、スプレッドシートの特定の列が編集された際に、自動で日付と編集者の名前を入力する方法を解説します。onEditトリガーを活用し、課題管理票などの更新作業を効率化しましょう。

Google Apps Script 始め方 スプレッドシート 活用例
Google Apps Script 始め方 スプレッドシート 活用例 を各ショップで検索

完成した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の管理画面にアクセスし、新しいアプリを作成します。

Slack API: Applications | Slack

「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の値を先ほどコピーしたご自身のトークンに書き換えてください。

スクリプトの追加方法がわからない場合は、こちらの記事も参考にしてください。

【GAS】スプレッドシートの特定セル編集時に日付と担当者を自動入力する方法【業務効率化】
【GAS】スプレッドシートの特定セル編集時に日付と担当者を自動入力する方法【業務効率化】

Google Apps Script(GAS)を使用して、スプレッドシートの特定の列が編集された際に、自動で日付と編集者の名前を入力する方法を解説します。onEditトリガーを活用し、課題管理票などの更新作業を効率化しましょう。

2. トリガーを設定する

最後に、スクリプトが自動で実行されるように「トリガー」を設定します。 スクリプトエディタの左側メニューから「トリガー」(時計アイコン)を選択し、「トリガーを追加」ボタンをクリックします。

トリガー設定画面

以下の通りに設定し、保存してください。

  • 実行する関数を選択: sheet_postContent
  • イベントのソースを選択: スプレッドシートから
  • イベントの種類を選択: 編集時

トリガー情報の設定

これで、スプレッドシートのいずれかのセルが編集されるたびにsheet_postContent関数が実行されるようになりました。

実行結果

設定が完了したら、実際にスプレッドシートのステータス列を「新規」に変更してみましょう。 すぐに指定したSlackチャンネルに通知が届けば成功です!

まとめ

今回は、GASを使ってスプレッドシートの更新をSlackに自動通知する方法を紹介しました。 これまで手動でSlackに連絡事項を投稿していた手間が省け、ヒューマンエラーの防止にも繋がります。

このスクリプトを応用すれば、

  • タスクの担当者が割り当てられたら、その担当者にメンション付きで通知する
  • 特定の数値を超えたらアラートを飛ばす など、さまざまな業務自動化が実現できます。ぜひ活用してみてください!
Google Apps Script 始め方 スプレッドシート 活用例
Google Apps Script 始め方 スプレッドシート 活用例 を各ショップで検索

関連記事

GAS `getWraps()`でスプレッドシートのテキスト折り返しを一括制御!応用例と最適化

GAS `getWraps()`でスプレッドシートのテキスト折り返しを一括制御!応用例と最適化

Google Apps Script(GAS)でスプレッドシートを効率的に操作する際、セルのテキスト折り返し設定を一括で管理することは、大規模なデータセットの視認性を高め、プロフェッショナルなレポート作成において不可欠です。getWraps()メソッドは、このテキスト折り返し設定を複数のセルから一度に取得するための強力なツールです。

本記事では、GASのRange.getWraps()メソッドを徹底解説します。基本的な使い方から、データ量が多い場合のパフォーマンス最適化(キャッシュ活用)、さらには取得した情報を元にした列幅の自動調整、堅牢なスクリプト開発のためのエラー処理、そしてsetWraps()メソッドと連携した一括設定方法まで、具体的なコードを交えて分かりやすく紹介します。

GAS `getWrap()` / `getWraps()`徹底解説!スプレッドシートのテキスト折り返しを自動調整

GAS `getWrap()` / `getWraps()`徹底解説!スプレッドシートのテキスト折り返しを自動調整

Google Apps Script (GAS) を使ってスプレッドシートを自動化する際、セルの**「テキスト折り返し設定」をプログラムで自在に制御する**ことは、データの視認性を高め、プロフェッショナルなシートレイアウトを維持するために不可欠です。本記事では、GASの主要メソッドであるgetWrap()getWraps()に焦点を当て、その基本的な使い方からSEOを意識した応用テクニックまで、徹底的に解説します。

この記事では、以下の疑問を解決します。