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

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

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

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

Google Apps Script

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

ChatWork

業務の効率化を目的としたコミュニケーションツール。 グループチャット、ビデオ・音声通話、ファイル共有、タスク管理などの機能を備えています。マルチデバイス対応で、ブラウザだけでなくタブレットやスマートフォンでも利用可能です。

Q&A

1回答

4313閲覧

スプレッドシート更新時にチャットワークに通知を送りたい

nukoto

総合スコア4

Google スプレッドシート

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

Google Apps Script

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

ChatWork

業務の効率化を目的としたコミュニケーションツール。 グループチャット、ビデオ・音声通話、ファイル共有、タスク管理などの機能を備えています。マルチデバイス対応で、ブラウザだけでなくタブレットやスマートフォンでも利用可能です。

0グッド

1クリップ

投稿2020/02/22 15:05

編集2020/02/23 07:00

前提・実現したいこと

https://qiita.com/matsukazu1112/items/d47e81d4c4d08d2147d3

上記のサイトを参考に
スプレッドシートのK列(入居予定日)が入力されたら
同じ行のA列(物件名)、B列(部屋番号)、K列(入居予定日)をチャットワークに送信したいです。
イメージ説明

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

サイト下部で添削されたものを参考にしているのですが、はじめから(e)というのがどういった意味なのかわかりません。eを取り出して使っている?
status_culumn=11列目の定義の仕方。
e.range.offset(0, -5, 1, 6)が自分の場合何の値になるのか。
スラックの部分がチャットワークの場合どう書き換わるのか。
function sendMessage(token,data){
var cw = ChatWorkClient.factory({token:token});
cw.sendMessageToMyChat(data);
}

該当のソースコード

function getValue(e){ const active_sheet_column = e.range.getColumn(); if (active_sheet_column !== status_column){ return; } const targetRowData = e.range.offset(0, -5, 1, 6).getValues(); const data = '物件名:'+ targetRowData[0][0] + '\n' +'部屋番号:' + targetRowData[0][1] + '\n' +'入居予定日:' + targetRowData[0][11]; return data; } function postSheetChange(e){   const value = getValue(e); if (value) { postMessage(value); } }

試したこと

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

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

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

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

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

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

guest

回答1

0

javascript

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

投稿2020/02/23 01:44

編集2020/02/24 12:24
papinianus

総合スコア12705

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

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

papinianus

2020/02/24 12:26 編集

q242949_onEdit を編集時トリガーに設定すれば動くと思います。 ちなみによくある質問ですが、他の人がシートを触っても動くようにすることはできません。 添付した画像は無意味です。文章に書いてあること以上の情報をもたらしていません。
nukoto

2020/02/24 22:36 編集

ご回答ありがとうございます。 TypeError: Cannot read property 'value' of undefined(行 11、ファイル「サンプル」)と出てきて動作しません。 編集時トリガーに設定してK列を編集しても通知されませんでした。 いじったのは7行目 const token = PropertiesService.getScriptProperties().getProperty('CW_TOKEN'); 8行目 const sheetName = "修繕状況一覧"; のみです。
papinianus

2020/02/24 23:23

関数の実行から出たエラーなので、動かなかった参考になりません。 ログを確認して編集した頃合いでエラーが起きていないか見てください
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問