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

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

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

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

Google Apps Script

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

Q&A

1回答

422閲覧

ma-スプレッドシートの日々のタスクをチャットワークに通知。

yupon

総合スコア12

Google スプレッドシート

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

Google Apps Script

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

0グッド

1クリップ

投稿2020/01/29 01:51

編集2022/01/12 10:55

スプレッドシートで以下のような、タスク表を作成しています。
H列の2行目はMatch関数を使用し、その日が何行目かを表示させています。=MATCH(H1,A1:A50,0)

D列はVLOOKUPでG列3行目・4行目、H列3行目・4行目表示さえてます。
=VLOOKUP(C3,$G$3:$H$7,2,FALSE)

ABCDEFGH
1日付曜日担当メンションtextToday2020/1/28
22020/1/26A[To:●●]掃除機掛け3
32020/1/27B[To:△△]窓拭きA2020/1/28
42020/1/28A[To:●●]机拭きB2020/1/28

チャットワークで以下のように表示をさせています。

「Aさん 掃除機掛けの担当です。よろしくお願いいたします」

var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("list"); var num = sheet.getRange('H2').getValue(); var name = sheet.getRange(num,3).getValue(); var toMes = sheet.getRange(num,4).getValue(); var text = sheet.getRange(num,5).getValue(); var toDay = new Date(); [省略] var client = ChatWorkClient.factory({token: '*********'}); //チャットワークAPI client.sendMessage({ room_id:14*455****4, //ルームID body:toMes + name + "さん" + text + 'の担当です。よろしくお願いいたします。'}); return false; }

1日に2つのタスクがある日が出てきた際、チャットワークに二つ送りたいと思っていますが、そのようなことは可能でしょうか?

「Aさん 掃除機掛けの担当です。よろしくお願いいたします」
「Bさん 窓拭きの担当です。よろしくお願いいたします」

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

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

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

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

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

papinianus

2020/01/29 22:40

表はマークダウンの表形式にしてくださいませんか?無理ならこの状態を消さずにスクリーンショットを追加していただけないですか?
yupon

2020/01/29 23:36

コメントありがとうございます。 修正いたしました。 ご確認いただければ幸いです。
macaron_xxx

2020/02/03 04:19

今のスプレッドシートの作りじゃ無理なんじゃないですか?
guest

回答1

0

ABCDEFGH
1日付曜日担当メンションtextToday2020/1/28
22020/1/26A[To:●●]掃除機掛け3
32020/1/27B[To:△△]窓拭きA[To:●●]
42020/1/28A[To:●●]机拭きB[To:△△]

こういう表だと思います。

やりたいことは原理的にはいくらでも可能ですが。現在の作り、提示された部分的なコードからだと、こういう感じですかね

  • I2 に 2 つめのタスクの行数を入れます。

javascript

1var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("list"); 2var num = sheet.getRange('H2').getValue(); 3var name = sheet.getRange(num,3).getValue(); 4var toMes = sheet.getRange(num,4).getValue(); 5var text = sheet.getRange(num,5).getValue(); 6var toDay = new Date(); 7 8//[省略] 9 10 11var client = ChatWorkClient.factory({token: '*********'}); //チャットワークAPI 12 client.sendMessage({ 13 room_id:14*455****4, //ルームID 14 body:toMes + name + "さん" + text + 'の担当です。よろしくお願いいたします。'}); 15 16// ここまでが 1 回目。既存のコードのままとする。 17 18num = sheet.getRange('I2').getValue(); 19if(num === "") return; // 1 つしかない日はここでやめる 20name = sheet.getRange(num,3).getValue(); 21toMes = sheet.getRange(num,4).getValue(); 22text = sheet.getRange(num,5).getValue(); 23 24//[省略] 25// var client = ChatWorkClient.factory({token: '*********'}); //チャットワークAPI // 2 回目は不要 26 client.sendMessage({ 27 room_id:14*455****4, //ルームID 28 body:toMes + name + "さん" + text + 'の担当です。よろしくお願いいたします。'});

投稿2020/03/09 15:08

papinianus

総合スコア12705

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

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

papinianus

2020/03/09 15:09

同じようにあいているセルを利用すればいくらでも数は増やせます。 ただ、0 個の場合を含め合理的に対処するには全面書きかえをしたほうがいいとは思います。
macaron_xxx

2020/03/10 04:26

>I2 に 2 つめのタスクの行数を入れます。 ここが無理筋でしょう。 H2はMATCH関数で日付をいれたら自動で引っ張ってくるようになっているので、同じような仕掛けにしないと、実用的でなさそうです。 (そもそも実用的かは置いといて)
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問