見出し画像

【徒然GAS38】今週参考になったリンク・記事~フィルタとslack通知

明けましたねおめでとう✨
3週間以上ぶりに、再開します❗️

定義された要件・要求

⒈スプレッドシートに特定の値を持つ行に背景色をつけてほしい
⒉⒈で色分けした中で、ステータスが未完了のものを通知してほしい

選択肢

⒈について

色分けする方法として、
①セルの値を一旦取得して、特定の値をもつ行を検索し、色分けするか、
②フィルタを使って、一気に色分けするか
があるんだけど、対象のシートが12枚で、計30000行以上のデータがあったので、
①で全行を検索すると、6分の壁でタイムアウトになるので、現実的ではない。
そこで、②フィルタを使うことに。

⒉について

色分けが終わった後で、特定のステータスの値をもつものをシートごとに検索して、見つかればslack通知となると、ここも6分の壁で処理時間を超える可能性があるため、
①通知対象のシートを追加

②通知対象のシートに、各シートから通知対象行を抽出して絞り込む

③上から下に処理を繰り返し流して、一気に通知する方法を選択。

参考リンク

⒈について

①フィルタを作成、解除などの基本

②フィルタ周りの詳細コード一覧で参考にしたのはコレ

③一応読んだけど、あくまでもフィルタリング後の可視セルの値取得で、今回の色分けには使えないけど重要だなと思ったものはコレ

④結局、VBAみたいなコードでの機能はないのかもしれないと参考にしたのはコレ

じゃ、結局どうしたかというと、、、
⑴マクロの記録で、操作のコードを起こす
⑵マクロの記録でVBAの手法で、余計なコードを消しつつ、加工
⑶余計な空白行が最終行以降にあると、条件に該当するデータがない場合、最終行以降を色付けしてしまうので、
スプレッドシートでのコードやデータ管理の基本=余計な空白行を残さない
に立ち返り、処理実行の最初の段階で、余計な空白行を削除するコードをかます
で対処しました。
※あくまでも、対処的な方法なので、他にもこんな方法があると知っている人には参考にならないかも、、、。

⒉について

①slack通知の基本で参考にしたのはコレ

②スプレッドシートからslack連携で参考にしたのはコレ

まとめ

時間とか売上とか必ず、スプレッドシート上で多くの値を持っているはずだから、
使いこなせると、色々と応用が効くなあ。
しかも、slack通知をトリガーにしておくと、GamilでもCalenderでも応用が効くし。

今回、記事にしようと思ったきっかけ(1/16追記)

一番大事なところが昨日の記事では記載漏れてたので、追記🙇‍♂️

普段、呼び出しているスクリプトを誤って実行をしないように

関数名_(){
  処理
}

で、隠蔽するんだけど。

slackに通知するスクリプト_(){
  通知処理
}

でやると、slack側に、

「〇〇を送信しています」
メッセージが表示されるだけで、通知の中身が表示されない
仕様みたいだから気をつけて。

※ネットで1時間くらい検索したけど、見当たらなかった。。。💦

slackに通知するスクリプト(){
   通知処理 
}

でやると、きちんとスプレッドシートの内容が一行ずつ通知されます。

あと、slackには1分間に最大40回までしか送信できないがあるので、そこも気をつけて。

この記事が気に入ったらサポートをしてみませんか?