Googleスプレッドシートの進捗データを自動でSlackに共有する方法

当ブログがオススメする

業務自動化サービスランキング

なお、業務効率化や工数削減を目指しているものの、どの業務から自動化すべきか、どのツールや手段が自社に合っているのかがあいまいな方は、「業務自動化プラン診断」をお試しください。

かかる時間は1分ほど。4つの質問に答えるだけで、あなたに最適な自動化対象業務や、推奨される自動化手段を診断してもらえます。

効率よく自社に適した業務効率化を知りたい方は、ぜひ一度お試しください。

\ 4つの質問に答えるだけ /

目次

完成形イメージ

はじめに

日々のプロジェクト管理において、「誰がいつ進捗を更新したのか」をチーム全員で素早く把握することは非常に重要です。しかし、わざわざスプレッドシートを開いて確認するのは手間がかかります。そこで便利なのが、Googleスプレッドシートの更新を自動でSlackに通知する仕組みです。本記事では、Google Apps Script(GAS)を使って、スプレッドシートの進捗データをSlackに自動共有する方法を、初心者でも迷わず導入できるレベルで丁寧に解説します。

こんなシーンでの活用に適しています

この自動化は、以下のような場面で特に役立ちます。

  • プロジェクトの進捗をリアルタイムでチームに共有したいとき
  • スプレッドシートの更新を見逃さずにキャッチしたいとき
  • リモートワークや在宅勤務で、Slackを主な連絡手段としているチーム
  • 定例ミーティングの前に「誰がどのタスクを進めているか」を瞬時に把握したいとき

Google Apps Scriptで自動化する

メリット更新確認の手間がゼロ:Slack通知が来るので、わざわざシートを開かなくても進捗を把握できる

情報の見える化:誰が何を更新したかが自動で記録され、透明性が高まる

即時対応が可能:タスクの遅延や重要な変更をいち早く検知できる

無料で導入可能:GoogleスプレッドシートとSlackの基本機能だけで実現できる
デメリット通知が多すぎると逆に煩雑になる(全セルを対象にすると更新のたびに通知が飛ぶため、対象列やシートを絞る工夫が必要)

初期設定にやや手間がかかる(Webhook作成やGAS設定など、一度慣れる必要がある)

運用担当者がいないと放置されやすい(管理者が退職したり異動した場合、トリガーのメンテナンスが滞る可能性がある)
難易度・面倒さ難易度:★★☆☆☆(初心者でも手順を見れば導入可能)
面倒さ:中程度(最初の設定だけ丁寧に行えば、あとは放置でOK)
「コードを自分で書く」必要はなく、記事内のスクリプトをコピーしてWebhook URLを差し替えるだけなので、プログラミング経験がなくても十分対応できます。
特徴Google純正のGASを使うため、追加の外部サービスは不要
Slackへの通知はIncoming Webhookを利用し、安定して動作
対象シートや列を自由にカスタマイズ可能(例:進捗率やステータス変更時のみ通知)
無料で始められるが、必要に応じて外部の自動化サービスとも組み合わせやすい
価格完全無料で利用可能
Googleスプレッドシート:無料(Googleアカウントがあれば利用可能)
Slack:無料プランでもIncoming Webhookを利用可能
追加費用は一切かからず、導入コストゼロで始められます。

用意するもの

  • Google アカウント(Gmail が使える状態)
  • Slack アカウント(通知を送りたいワークスペースに参加済み)
  • 進捗管理用の Google スプレッドシート(例:列に「タスク名 / 担当者 / 進捗率 / ステータス / 最終更新日」など)

設定手順

🔹Step 1:Slack で Webhook URL を作成する

ブラウザで https://api.slack.com/apps を開く。

右上の [Create New App](新しいアプリを作成) をクリック。

[From scratch] を選び、アプリ名を入力(例:Sheets Progress Notifier)。

対象ワークスペースを選んで [Create App]


左メニューの Features > Incoming Webhooks を開く。


上部のスイッチ [Activate Incoming Webhooks]On にする。

ページ下部の [Add New Webhook to Workspace] をクリック。


通知を送りたい チャンネル(例:#project-progress)を選んで [Allow](許可)


表示された Webhook URL[Copy](コピー) を押して、メモ帳などに貼り付けて保存。

Webhook URL は例:https://hooks.slack.com/services/XXXX/YYYY/ZZZZ のような長い文字列です。外部に漏らさないでください。

🔹Step 2:スプレッドシートを用意する

Google スプレッドシートを開く(既にある場合はそれを開く)。

1行目(ヘッダー)を以下のようにしておくと後で見やすいです。

A列:タスク名
B列:担当者
C列:進捗率(%)
D列:ステータス(未着手 / 進行中 / 完了など)
E列:最終更新日(自動入力にする例を後で記載)

🔹Step 3:GAS(スクリプト)を設定する

  1. スプレッドシートの上部メニューから [拡張機能] > [Apps Script] をクリック。
  2. 新しいタブでエディタが開きます。左上の「無題のプロジェクト」をクリックし、
    プロジェクト名を Progress to Slack などに変更。
  3. 画面中央の Code.gs に、下記の「かんたん版スクリプト」 を丸ごと貼り付けます。
  4. 左上の フロッピーディスクアイコン(保存) をクリック。
//かんたん版スクリプト(まずは確実に動かす)
/**
 * 編集があったときに Slack へ通知する(インストール型トリガー用)
 * トリガーは後の手順で設定します。
 */
function sendSlackNotification(e) {
  var webhookUrl = "https://hooks.slack.com/services/XXXX/YYYY/ZZZZ"; // ←Step1 で作成した URL に置き換え
  if (!e) {
    // e(イベント引数)がないときは何もしない
    return;
  }

  var sheet = e.source.getActiveSheet();
  var range = e.range; // 変更された範囲(セル)
  var newValue = e.value; // 新しい値(単一セルのとき)
  var oldValue = e.oldValue; // 変更前の値(単一セルのときのみ取得できることがあります)

  // Slack に送るメッセージの本文を作成
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheetName = sheet.getName();
  var a1 = range.getA1Notation();
  var ssUrl = ss.getUrl();

  var messageLines = [];
  messageLines.push("📣 スプレッドシートの進捗が更新されました");
  messageLines.push("シート: " + sheetName);
  messageLines.push("セル: " + a1);
  if (typeof oldValue !== 'undefined') {
    messageLines.push("変更: " + (oldValue === undefined ? "(不明)" : oldValue) + " → " + (newValue === undefined ? "(不明)" : newValue));
  } else {
    messageLines.push("新しい値: " + (newValue === undefined ? "(複数セルまたは不明)" : newValue));
  }
  messageLines.push("📄 シートを開く: " + ssUrl);

  var payload = {
    text: messageLines.join("\n")
  };

  var options = {
    method: "post",
    contentType: "application/json",
    payload: JSON.stringify(payload),
    muteHttpExceptions: true
  };

  UrlFetchApp.fetch(webhookUrl, options);
}

/**
 * 初回の権限付与&動作確認用のテスト送信
 */
function sendTestToSlack() {
  var webhookUrl = "https://hooks.slack.com/services/XXXX/YYYY/ZZZZ"; // ←同じ URL を設定
  var payload = { text: "✅ テスト送信:GAS から Slack へメッセージを送れました" };
  var options = { method: "post", contentType: "application/json", payload: JSON.stringify(payload) };
  UrlFetchApp.fetch(webhookUrl, options);
}

ポイント

  • 上のコード中の https://hooks.slack.com/… を あなたの Webhook URL に差し替えてください。
  • sendTestToSlack() はテスト送信用。まずこれを実行して権限を許可すると、以後の自動通知が安定します。

🔹Step 4:権限を許可してテストする

  1. エディタ上部の 関数プルダウン(▼)から sendTestToSlack を選ぶ。
  2. 右向き三角の [実行] ボタンをクリック。
  3. 初回は「このアプリは確認されていません」などの画面が出ることがあります。
    • [詳細] をクリック → [(安全ではないページ)に移動] → 使用する Google アカウントを選択。
    • 権限一覧が出たら [許可] を押す。
  4. Slack の選んだチャンネルに「✅ テスト送信…」が届けば OK!

ここで届かない場合:Webhook URL のコピーミスが多いです。全て含めて正しく貼り付けられているか確認してください。

こちらの処理は初回実行時のみ必要です。

🔹Step 5:自動実行の「トリガー」を設定する

  1. Apps Script エディタの左側メニューから [トリガー](時計アイコン) をクリック。
  2. 右下の [トリガーを追加] をクリック。
  3. 下記のように設定します:
    • 実行するデプロイ:Head
    • 実行する関数を選択:sendSlackNotification
    • イベントのソースを選択:スプレッドシート(または From spreadsheet)
    • イベントの種類を選択:編集時(On edit)
    • エラー通知設定:自分のメールアドレスに通知(任意)
  4. [保存] をクリック。

これで、スプレッドシートのセルを編集するたびに Slack へ通知が飛ぶようになります。

🔹Step6:動作確認

  1. スプレッドシートに戻り、任意のセルを編集して Enter
  2. 数秒〜十数秒以内に、Slack のチャンネルへ通知が届けば成功です。

よくある質問

通知が多すぎて困ります。調整できますか?

はい。対象となるシートや列を指定することで、必要な更新だけを通知するように調整できます。

誰が更新したかはSlackで分かりますか?

GASでは直接取得できませんが、Googleスプレッドシートの「変更履歴」から確認可能です。運用ルールとして「更新者の名前を入力する列」を作るとより便利です。

初心者でも本当にできますか?

はい。記事内で紹介しているコードをそのまま貼り付ければ動作します。唯一の注意点は「Webhook URLを正しく設定する」ことだけです。

なかなかうまくいかないときは?

プログラミングが未経験の方にとっては少しハードルが高く「諦めるしかない⋯」と挫折するきっかけを生みかねません。

「社内で自動化したは良いものの、自分がやめたら引き継ぐ人がいない⋯」

「一つ自動化したら、他部署からも自動化を依頼されて自分の仕事が進まない⋯」

と不安な方もいますよね。

そこで、おすすめしたいのが「ジドウカ」です。

ジドウカは、これまで合計800タスク以上の業務の自動化をしてきた実績のある法人専用の自動化サービスです。

業務の一部を“タスク単位”で自動化し、【月額1万円から】安定運用できるサブスクリプション型のサービスです。 タスクを外注するため手離れもよく、技術のことが分からなくても、「こういう作業をラクにしたい」と伝えるだけで自動化することが可能です。

「わたしが自動化したい内容って自動化できるんだろうか⋯」という方には、少額・短期間での「お試し開発」があるので、お気軽にご活用ください。

まとめ

Googleスプレッドシートの更新をSlackに自動通知する仕組みは、無料で導入できて効果が大きい業務効率化の第一歩です。最初に一度設定してしまえば、以後は放置でOK。チーム全員がリアルタイムで進捗を共有できるようになり、会議の準備や進捗確認の時間を大幅に削減できます。

「毎日スプレッドシートを開いて確認するのが面倒」「更新の見落としを防ぎたい」という方は、ぜひ本記事を参考に導入してみてください。

自社で自動化する際によくある失敗ランキング

自動化ツールを導入すれば業務が自動化され、効率が劇的に向上する——。 そう考えている企業は多いですが、実際には多くの企業が自動化ツールを十分に活用できていません。 有名な自動化ツールであるRPAを例にあげても、導入した企業の実態は理想と大きく異なった結果となっています。

RPA導入企業の約60%が「あまり活用できていない」と回答

多くの企業がRPAを導入しているにも関わらず、約60%の企業が「期待したほど活用できていない」と感じているというデータです。これは、「導入しただけでは、業務改善につながらない」という現実を示しています。

RPAの効果を実感できない要因は『RPA開発が進んでいない』

「RPAの効果を実感できていない」と回答した企業の多くが、その理由として「RPA開発が進んでいない」「他業務・他部署への展開ができていない」ことを挙げています。   「〇〇業務はツールを導入すればすぐにラクになるはず」と思って、自社で自動化に挑戦した方も多いのではないでしょうか?しかし私たちには、こんな“あるあるの失敗談”がよく届きます。

🥇 第1位:初期設定でつまずき、結局断念…

思っていたより設定が複雑で、ツールの仕様を理解する前に挫折してしまうケース。 特にRPAツールやノーコードツールは、「慣れるまでが大変」という声が多いです。

🥈 第2位:担当者が辞めて、運用不能に…

担当者が社内で唯一のキーマンだった場合、その人がいなくなると全て止まってしまうという問題が発生します。 しかも、「誰も中身が分からないから触れない」という状況になりがち。

🥉 第3位:不具合や修正対応に時間がかかる…

自動化が止まったとき、「誰が見ればいいのか分からない」「ベンダーに相談するのも手間」という理由で、対応が後手に。 気づけばその対応に何時間も時間を取られ、本業に集中できなくなってしまうことも…。   実はよくある…自社で自動化に挑戦したときの“落とし穴” 共通するのは「すべて自社で完結しようとした」こと。 このようなケースに共通するのが、「最初から最後まで、すべて自社で完結しようとした」点です。 最初はうまくいっても、長期的に安定した自動化運用には、継続的な保守や柔軟な調整が不可欠です。

安定的に自動化したいならジドウカがおすすめ

 「ツールを入れただけ」では業務はラクになりません 「業務をラクにする自動化」のためには、設定・運用・トラブル対応まで含めてプロに任せるのが最も確実です。

ジドウカとは?

業務の一部を“タスク単位”で自動化し、月額で安定運用できるサブスクリプション型のサービスです。 技術のことが分からなくても、「こういう作業をラクにしたい」と伝えるだけでOK。

ジドウカでできること(業務例)

・定期レポートの自動作成とSlack送信 ・受注データのExcel整形とkintone登録 ・競合サイトの自動モニタリングとアラート通知 ・営業リストの自動生成とCRMへの投入 など

ジドウカが選ばれる理由

弊社の自動化サービス「ジドウカ」は、1社1社、1タスク1タスクに合わせて完全オーダーメイドで開発するサービス担っています。
  • ヒアリングから開発・運用まで丸ごとサポート
  • トラブル発生時には即時対応
  • 月額料金内で自由に修正をご依頼可能
実際に多くのお客様から「自社での自動化運用に失敗した後に依頼してよかった」と高評価をいただいています。
目次