本業で二人で回す仕事のスケジュール管理に困っていた所、Google Apps Script(GAS)が自動化に便利という情報を目にしたので、案件が増える前になんとかすべく、且つ未来の自分が忘れないように残しておくための記事たちです。
意外と単一案件単一区間の登録はたくさんあるのに、単一案件複数区間の記事って無いもんだね!
と思って書いた(for文で回すだけだけど)ものです。
- 1案件複数区間の日付をカレンダーに連携する(Google Apps Script)
- Googleカレンダー連携したイベントの日付を変更する(Google Apps Script)
- 締め切り通知メールを送る方法(Google Apps Script)
- 案件最終終了チェックをしたら行がグレーアウトする(条件付き書式)
- 特定セルにチェックを入れた時だけ指定のメール文を送る(多分Google Apps Script)
- IDを別のシートにメモ(多分Google Apps Script)
今回作成した機能
Google Apps Scriptを使って作成した機能は1記事内に納めてしまうとかなり長くなるので機能ごとに別ページでまとめています。
1案件複数区間の日付をカレンダーに連携する
Google Apps Scriptを使って1案件複数区間の日付をカレンダーに連携する
Googleカレンダーに連携したイベントの日付を変更する
Google Apps ScriptでGoogleカレンダー連携したイベントの日付を変更する
締め切り通知メールを送る方法
Google Apps Scriptで締め切り通知メールを送る方法
案件最終終了チェックをしたら行がグレーアウトする
表示形式→条件付き書式よりグレーアウトさせたい部分を選択し、該当するチェックボックスの一番上のセルを設定します。
書式ルールをカスタム数式にして=$該当列一番上のセル=trueと記入し、色を変更(この場合グレー)したら完成です。
Google Apps Scriptを使わずに簡単にできるって最高!
処理実行前

処理実行後

今回作成が叶わなかった機能
いつかGoogle Apps Scriptのアップデートor私の技量が追いついたら実装したいと思う機能。
特定セルにチェックを入れた時だけ指定のメール文を送る
チェックボックスがFALSEだった場合のアラートメールはできたんですが、チェックボックスにチェックが入った瞬間だけメールを送って欲しい場合のスクリプトは組めませんでした。
JSでできなくもなさそうでしたが、一旦仕切り直しで機能作成していません。
ちなみに試したスクリプトは以下3つ。
シンプルトリガーでの記述
→リファレンスを読んだところ、認証が必要なGmailの送信ができないとのことで挫折。
チェックボックスがTRUEの時にメールを送って時間主導型インストーラブルトリガー
→トリガー発動毎にメールがくるのでボツ。
チェックボックスがTRUEの時にメールを送って編集時インストーラブルトリガー
→該当のセルが変更された時にメールが送れればパーフェクトだったのだが、まさかの指定シートのどのセルを編集してもメールが届いてしまう事故に発展。
(値の変更に関しては空白→値の記入のみ発動するようなので、チェックボックスのFALSE矢印TRUEは発動条件外でした。)
IDを別のシートにメモ
重要度が高くなかったので、今回は見送りました。
リファレンスを見る限りスプレッドシートを名前で取得や切り替えなど色々あったので、ゆくゆくはきれいにしていきたいところです。
比較的難しく無いと自分に言い聞かせておきます。
参考リンク・書籍
書籍
Google Apps Script目的別リファレンス 実践サンプルコード付き
サイト
【Googleスプレッドシート】チェックボックス使って背景を変更する
Google Spreadsheetのトリガーの「編集時」と「値の変更」の違いを検証してみた
動画講座
【業務自動化をゼロからマスター】Google Apps Scriptの仕事効率化・自動化をプログラミングで実現証明書を取得する
その他
google翻訳単体だと「ん?」となってしまった時に、DeepLと併用することで文章の理解度を上げられます。
まとめ
Google Apps Scriptの勉強コスト<スケジュール管理の辛さで今回約2週間かけてこのスケジュール管理システムを作ってみました!
ただ単に目標なくコードの仕組みを勉強するよりも目的に向かって書いていく方が「とりあえず動くもの」が作れて良いですね。
どなたかの今後のシステム作りの参考になれば私としてもとてもありがたいです!