teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

2020/02/24 12:24

投稿

papinianus
papinianus

スコア12705

answer CHANGED
@@ -1,13 +1,32 @@
1
1
  ```javascript
2
+ // 実行メニューから「Chorme V8 を搭載した新しい Apps Script ランタイムを有効にする」を選択してください
2
- if (value) {
3
+ /*
4
+ スプレッドシートのK列(入居予定日)が入力されたら
5
+ 同じ行のA列(物件名)、B列(部屋番号)、K列(入居予定日)をチャットワークに送信したいです。
6
+ */
3
- postMessage(value);
7
+ const q242949_onEdit = (e) => {
4
- }
5
- ```
8
+ const token = ""; // token of ChatWork
9
+ const sheetName = "ぶっけんちょうせいシート(最新)(コピー)_new"; //本当のシート名にしてください。
6
- ところで
10
+ const watchColumn = "K"; // 動作きっかけになるのは K 列
7
11
 
8
- ```javascript
9
- if (value) {
12
+ if(!e.value) return;
13
+ const curRange = e.range;
14
+ const c = curRange().getColumn();
15
+ if(!getColNumbersA1(watchColumn).includes(c)) return;
16
+ const r = curRange.getRow();
17
+ if(r === 1) return;
18
+ const sheet = curRange.getSheet();
19
+ if(sheet.getName() !== sheetName) return;
20
+ const [building,room] = sheet.getRange(r,1,1,2).getValues()[0]
21
+ const message = `物件名:${building}
22
+ 部屋番号:${room}
23
+ 入居予定日:${e.value}`;
10
- sendMessage("token",value);
24
+ sendMessage(token, message);
11
- }
25
+ }
26
+ const sendMessage = (token,data) => {
27
+ const cw = ChatWorkClient.factory({token:token});
28
+ cw.sendMessageToMyChat(data);
29
+ }
30
+ const getColNumbersA1 = str => str.split("").map(getColNumberA1);
31
+ const getColNumberA1 = alpha => "_ABCDEFGHIJKLMNOPQLSTUVWXYZ".indexOf(alpha.toUpperCase());
12
- ```
32
+ ```
13
- だと思います。