今回はGAS(Google Apps Script)に関して書いていきます。
以前もGASに関する記事を書いています(以下リンク)。
上記の記事で、GASでGmailの下書きを1日1回作成する対応をしました。
日報の下書きを作成するイメージで、平日だけ作成するのが理想でしたが、トリガーでは「平日のみ」の設定は出来ないようでした。
ということで、トリガーの設定とプログラムの実装を組み合わせて「平日のみ」の実行に対応してみました。
今回の記事ではその辺りに関して書いてみます。
それでは本題へ。
やりたいこと
記事の冒頭でも触れましたが、以下記事への追加対応となります。
上記のGmail下書き作成機能は、トリガー設定により1日1回実行されます。
平日だけ実行されるのが理想なのですが、休日も実行されてしまいます。
トリガーで「平日のみ」実行は設定できないため、プログラムと組み合わせて「平日のみ」実行に対応します。
プログラム
プログラムは以下の通りです。
// メールアドレス const MAIL_ADDRESS = PropertiesService.getScriptProperties().getProperty('MAIL_ADDRESS'); /** * メイン処理 */ function main() { // 休日の場合は処理しない ★追加 if (isHoliday()) return; // 下書きを作成 createDraft(); } /** * ★追加 * 休日判定 */ function isHoliday() { const date = new Date(); const weekday = date.getDay(); return (weekday === 0 || weekday === 6); } /** * 下書きを作成 */ function createDraft() { // 宛先 const to = MAIL_ADDRESS; // 件名 const subject = `日報(${getCurrentDate()})`; // 本文 const body = createMailBody(); // 下書きを作成 GmailApp.createDraft(to, subject, body); } /** * メール本文を作成する */ function createMailBody() { const retBody = []; retBody.push('■今日の業務内容'); retBody.push('■所感'); retBody.push('■今後'); return retBody.join('\n\n'); } /** * 日付をフォーマットする */ function getCurrentDate() { const now = new Date(); const year = now.getFullYear(); const month = zeroPadding(now.getMonth()+1); const date = zeroPadding(now.getDate()); return year + '/' + month + '/' + date; } /** * ゼロ埋めする */ function zeroPadding(str) { return ('0' + str).slice(-2); }
前回の記事との差分を分かりやすくするため、プログラムコメントに「★追加」と書いています。
プログラム実行
上記のプログラムを実行すると、Gmailに下書きが作成されます。
ただし、作成されるのは「平日のみ」です。
実行した日が休日の場合は、下書きが作成されずに処理が終了します。
![](https://cdn-ak.f.st-hatena.com/images/fotolife/m/miyamoto-blog/20240616/20240616215001.png)
![](https://cdn-ak.f.st-hatena.com/images/fotolife/m/miyamoto-blog/20240616/20240616215015.png)
プログラムのポイント
プログラムの中からポイントとなる部分をピックアップして説明していきます。
おわりに
ということで、「GASを平日だけ実行する(トリガーとプログラム判定)」に関してアレコレ書いてみました。
今回の対応で、平日だけ実行するように出来ました。
ただ、祝日には対応できていません。
前回の記事でも触れていますが、実行してもGmailに下書きが作成されるだけです。
不要な下書きは削除してしまえばOKなので、そこまで不便ではないかなと。
ですが更に理想を追い求めるなら、祝日対応もしたいところです。
これは後ほど調べてみて実現できそうであれば、また実装して記事にしてみようかなと思います。
この記事が参考になれば幸いです。
(追記)
祝日対応してみました。
こちらも良ければぜひ。
miya-moto-memo.hatenablog.commiya-moto-memo.hatenablog.com
関連記事
GAS(Google Apps Script)に関してはいくつか記事にしています。
気になる記事があればぜひ。
GASの活用事例
GASでGmailの下書きを定期作成(1日1回:日報作成)- 派生記事