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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

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

Q&A

1回答

570閲覧

Google Apps script 変更があった時に変更の場所のみをスラックに送る

pon244

総合スコア59

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Google

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

0グッド

0クリップ

投稿2020/04/03 02:00

編集2020/04/03 05:43

【環境】
Macbook pro. Google spread sheet , google apps script

function SlackPTR() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var sh = ss.getSheetByName("test"); var data = sh.getDataRange().getValues(); var lastRow = sh.getLastRow(); for(let i = 1; i <= lastRow; i++) { var sentence=sh.getRange(i, 1).getValue(); const q251046 = (e) => { if(!e.value) return; const rng = e.range; const c = rng.getColumn(); if(c !== 3) return; const payload = { 'text':e.value, }; const options = { 'method':'post', 'contentType':'application/json', 'payload':JSON.stringify(payload), }; const url = 'xxx'; UrlFetchApp.fetch(url, options); }}}

スプレッドシート 内容

名前番号列3
アキラ2
佐藤2
田辺1

【したいこと】
上記の番号の場所には関数が入っており、Vlookupで数字が2→1などに更新されます。
その番号の数字が変わったタイミングで、変わった場所の名前をスラックに送りたいです。

【試したこと】
上記のコードプラス、トリガーで変更時に通知を送る設定
変更されてない場所も変更時に送られてしまいます。
変更された場所のみの名前を送るのは可能でしょうか。
初心者で拙い質問で恐縮ですが、お力を貸して頂けますと幸いです。

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

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

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

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

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

guest

回答1

0

javascript

1const q251046 = (e) => { 2 if(!e.value) return; 3 const rng = e.range; 4 const c = rng.getColumn(); 5 if(c !== 3) return; 6 const sheetName = rng.getSheet().getName(); 7 if(sheetName !== "test") return; 8 const payload = { 9 'text':e.value, 10 }; 11 const options = { 12 'method':'post', 13 'contentType':'application/json', 14 'payload':JSON.stringify(payload), 15 }; 16 const url = 'xxxx'; 17 UrlFetchApp.fetch(url, options); 18}

vlookup で trigger が発動するかは見てないが、発動してはいるみたいなので未検証
トリガーにq251046を編集時で登録してください。
これ以外のコードをまぜないでください。
他の関数の途中にかくものでもありません。

投稿2020/04/03 04:57

編集2020/04/05 01:57
papinianus

総合スコア12705

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

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

pon244

2020/04/03 05:18

ありがとうございます! こちら2以外にも3や4があるのですが、 2から変更ではんく、数字が変わったらにできますでしょうか泣?
papinianus

2020/04/03 05:22

c が 2 のときの c は番号列が B 列だから 2 なのであって、値をみて動作するようなプログラムは私は書きません。
papinianus

2020/04/03 05:23

アキラが明になったときに動いてほしければ変える必要があると思います。
pon244

2020/04/03 05:44

そうなんですね、、、!知識不足ですいません。 実際は3行目なので、3に変更しましたが、自分で3行目の数字を変更した時に、スラックにいかないのですが、 僕の合体の仕方が間違っておりますでしょうか?
papinianus

2020/04/04 13:39

3行目ですか?3列目(C列)ですか? C列なら、3にする必要があります。 3行目(B3)なら2のままです。そもそも行数で動きを制御していません。 合体というのが何をしているかわかりませんが 2 を 2,3 のようにしても正常に動かなくなるだけです。 やりたいことを小出しにするのはやめてください。また、コードを変更したときのデバッグができないのに、嘘のシート情報を出すのはやめてください。 今判明していないであろうことでも、下記の制限があります。 ー シート名で制御していないので他にシートがある場合にも動作してしまいます。 ー 値を消した場合には動きませんし、vlookup関数を変更した場合も動くと思います。
pon244

2020/04/04 13:45

質問がわかりずらくて申し訳ないです。 質問のコードを変更をさせていただきました。 ご確認いただけますでしょうか。 シートの名前も指定しております。
papinianus

2020/04/04 13:52 編集

> c が 2 のときの c は番号列が B 列だから 2 なので > 3行目ですか?3列目(C列)ですか? > C列なら、3にする必要があります。 > 3行目(B3)なら2のままです。そもそも行数で動きを制御していません。
pon244

2020/04/05 01:46

> 3行目ですか?3列目(C列)ですか? →3列目です。C列です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問