質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

0回答

1504閲覧

GASでスプレッドシートからslackに通知が来るようにしたいです。

gazzasa

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Slack

Slackは、Tiny Speckという企業からリリースされたコミュニケーションツールです。GoogleDriveやGitHubなど、さまざまな外部サービスと連携することができます。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2020/08/20 09:59

編集2020/08/20 10:02

前提・実現したいこと

GASでスプレッドシートに、自分が対応が必要な案件が入力されたらスラックに入力されるようにしたいと思っております。
某企業で営業として勤務しております。
営業なのですが、プログラミングにも興味があり、現在苦戦中です。
3日間ほど調べたのですが答えがわからず、質問させていただきます。

GASで、スプレッドシートに自分が対応が必要な案件が入力されたら、スラックに入力されるようにしたいと思っております。

発生している問題・エラーメッセージ

エラーメッセージ 関数の実行をするとエラーは出ないのですが、通知がなされません。

該当のソースコード

function sendSlack2test(slackText){

var activeSpreadsheet = SpreadsheetApp.getActiveSpreadsheet(); // スプレッドシート
var activeSheet = activeSpreadsheet.getActiveSheet(); // アクティブシート
if(activeSheet.getName() != "テスト"){
return;
}
var activeCell = activeSheet.getActiveCell(); // アクティブセルの取得

if((activeCell.getColumn() == 7 && getColumn.getValues() == "必要な対応") && (activeCell.getColumn(0, -1) == 6 && getValues() == "自分の名前")){
var newInputRow = activeCell.getRow();

// Step1で取得したWebhook URLを設定
var webHookUrl = "webhookのURL";

var recieveday = activeSheet.getRange(activeCell.getRow(), 3).getValue(); var recieveman = activeSheet.getRange(activeCell.getRow(), 5).getValues(); var needcbday = activeSheet.getRange(activeCell.getRow(), 4).getValue(); var tocbman = activeSheet.getRange(activeCell.getRow(), 2).getValues(); var requirement = activeSheet.getRange(activeCell.getRow(), 7).getValues(); var otherspace = activeSheet.getRange(activeCell.getRow(), 8).getValues(); var recieveday2 = Utilities.formatDate(recieveday,'JST','yyyy年MM月dd日'); var needcbday2 = Utilities.formatDate(needcbday,'JST','yyyy年MM月dd日');

var slackText = "CB依頼があります" + "にタスクが追加されました\n" +
"受電日 : " + recieveday2 + "\n" +
"受電者 : " + recieveman + "\n" +
"要CB日 : " + needcbday2 + "\n" +
"CBスタッフ名 : " + tocbman + "\n" +
"用件 : " + requirement + "\n" +
"備考 : " + otherspace + "\n" +
"スプレッドシートのURL";

var jsonData =
{
"channel": "#タスク", // 通知したいチャンネル
"text" : slackText,

};

var payload = JSON.stringify(jsonData);

var options =
{
"method" : "post",
"contentType" : "application/json",
"payload" : payload,
};

// リクエスト
UrlFetchApp.fetch(webHookUrl, options);
}}

GAS

試したこと

if(activeCell.getColumn() == 7 && getColumn.getValues() == "必要な対応"){
(activeCell.getColumn(0, -1) == 6 && getValues() == "自分の名前")
この部分を上記のようにしたりしてみたのですが、上手く通知が来ません。

おそらく下記の部分が間違っていると覆うのですが、複数条件の指定がうまくできません。

if((activeCell.getColumn() == 7 && getColumn.getValues() == "必要な対応") && (activeCell.getColumn(0, -1) == 6 && getValues() == "自分の名前")){

基本的に7列目の、必要な対応の種類の入力が最後になります。
7列目が入力された段階で、通知が来るといいと思っております。
また、7列目に入力されるのは4種類程度あるので、その条件分岐の指定方法も教えて頂けると幸いです。

補足情報(FW/ツールのバージョンなど)

初めての質問となり、至らない点があるかと思いますが、何卒宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問