Google Apps Script(以下GAS)は比較的、最近勉強し始めたのもあって、こちらにはあまり記事を書いていないですが、noteの方には有料記事を結構書いています。
どういう用途で使えるかの参考のため、どんなGASを作ったのかまとめてみようと思います。(noteとか無関係に単に他の方が書いていただいたコードをコピーペーストして改変し、利用しているものものもあります。)
Googleカレンダー
業務的にデイリー業務や毎月の繰り返し業務が多いので、カレンダー関連の動作が多いです。
まず最初に汎用的に利用する祝日を正しく判定するコードを作成したので、だいだいのものはそれを汎用コードとして利用してます。
毎月の第N営業日や最終営業日にイベントを登録するGAS
noteの自分の記事(有料):第〇営業日と指定して毎月繰り返す予定をGoogleカレンダーに登録するGAS
毎月の所定日にやるタスクが業務内容によってあると思います。例えば、月初第3営業日までに前月の勤怠を申請するとか、最終営業日に何かをするとかです。
Googleカレンダーの標準では毎月1日とかで登録できますが、営業日での判定ではないのでそれが土日だと、平日のみのカレンダーを見ているとタスクを漏らしてしまい困ります。
そのため、正確に営業日でイベント登録して、タスクの漏れがないようにしています。
最終営業日は、月初から数えると第N営業日に該当するかは月によって異なるので、負の値(例:‐1)で指定すれば最終営業日からカウントしてイベントを登録できるようにしました。
毎月N日にイベントを登録するGAS(休祝日考慮)
noteの自分の記事(有料):毎月N日を指定して毎月繰り返す予定をGoogleカレンダーに登録するGAS
上記に記載したように、そもそもGoogleカレンダーの標準では毎月1日とかで登録できます。そのため、日にちが固定ならわざわざGASを使う必要はありません。
しかし、その日が休祝日であった場合に、前倒ししたり、後ろ倒しになる場合があるため、それを考慮してイベント登録できるようにしました。例えば、給与支給日(例:毎月25日)とかは通常前倒しになりますよね。
毎営業日にイベント登録するGAS
noteの自分の記事(有料):毎営業日繰り返す予定をGoogleカレンダーに登録するGAS
標準機能で平日にデイリー業務をイベント登録すると祝日にもイベント登録されるため、より正確に営業日のみにイベントを登録します。
ただ、他と比較すると実用性▲です。というもの、設定期間が約5ヶ月ぐらいまではいけるのですが、イベントを登録する営業日の合計日数が100日以上だと登録失敗するため。(その代わりに、他の有料記事より安くしてます。)
指定日の登録予定を一括で削除するGAS
noteの自分の記事(有料):Googleカレンダーで指定した日付のイベントをすべて削除するGAS
毎営業日にイベント登録するGASを作る前は、標準機能で平日にデイリー業務をイベント登録していました。
それでもほぼ正しく登録できるので良いのですが、祝日に業務が登録されていたり、自分が有給休暇で休みの日にも予定が登録されてしまいます。複数のイベントがあると手動で削除するのが面倒なので、指定日のイベントを一括して削除するようにしました。(繰り返し予定の場合に、指定日以外には影響させないように工夫しています。)
特定の色ラベルをつけたイベントの集計
1ヶ月等の一定期間を指定して、特定業務にかけた時間を集計します。
タイムトラッカーアプリを導入していない会社は、簡易的に集計できるのでこの方法が便利です。
Googleドライブ
Googleドライブ関連では現時点では3つほどあります。
Googleドライブの指定フォルダのファイル一覧をスプレッドシートへ出力するGAS
noteの自分の記事(有料):GASでGoogleドライブの指定フォルダのファイル一覧をスプレッドシートへ出力する
Googleドライブの検索機能は、エクスプローラーより優れているので、なくても困りませんが、フォルダ体系を把握するのに結構、役立ちます。
フォルダIDの指定方法を2パターン(スプレッドシートのセルで自分で入力する場合と、スクリプトを保存したスプレッドシートが保存されたフォルダを自動で対象にする場合)を作成して業務利用しています。
ファイル名以外に共有リンクもスプレッドシートに出力するようにしているので、そのファイルに移動するのも便利です。
サブフォルダごとフォルダ内にあるファイルをコピーするGAS
noteの自分の記事(無料):GoogleドライブはフォルダコピーができないのでGASで解決
ドライブ内にある複数ファイルやフォルダをコピーすると、下記のような問題があります。
- ファイルをコピーしたときに、コピーしたファイルに「~ のコピー」となる
- フォルダはCTRL+C等のショートカットキーでコピーできない
GASでコピーすると、一部コメントがコピーできない(手動で1ファイルずつならコメントもコピーするか選択できる)等の問題はありますが、ファイル名に「~ のコピー」がつかないので便利です。
指定フォルダ内にあるファイル名を置換するGAS
上記と類似部分もあるのですが、「~ のコピー」がついたのを「」(何もなし)にトリムする用途に使ったり、コピーしたファイルの年度情報を置換(置換前:2025 → 置換後:2026)することに使っています。
Googleスプレッドシート系
フィルター範囲の補正するGAS
フィルターをかけているシートの最終行にデータを追加すると、追加した行がフィルター範囲から漏れることがあります。
データ追加方法によってはフィルター範囲が自動拡張されますが、更新するユーザーが複数いて最終行への入力方法をコントロールできないため、スプレッドシートを開く度に自動でフィルターを掛け直すGASを埋め込んでいます。
フィルタービューの作成&削除
他の方のQiitaの記事:スプレッドシートの個人フィルタをGoogle Apps Scriptで作成する方法
通常のフィルターを使うと他の人の画面でもフィルターがかかってしまうので、個人作業用にはユーザーごとにフィルタービューを用意してそれを使ってもらいます。
同じ範囲の複数フィルターを作るのがちょっと面倒なので、フィルタービューをたくさん作る必要がある場合は、GASで作ったりするのが便利です。
Googleメール系
下書きメールを複製するGAS
メール系は自分の業務内容的に定型メールを大量に作成・送信すること機会があまりないので、正直、そんなにGASを作ってまで業務効率化する余地が個人的にはあまりないですね。
以上、参考になれば幸いです。