GAS活用!スプレッドシートのタスク表を使った報告メールの時短提出法【コピペOK・ソースコード付き】

GAS(Google Apps Script)講座

今回は、GoogleAppsScript(GAS)を用いてスプレッドシートで作成したタスク表とGmailを連携して完了したタスクの報告メールを自動的に送信してくれるツールの作り方をお伝えしていきます。

初めてGASでプログラミングを行う方でもわかりやすいように、ステップごとに手順をまとめてご紹介します。

サンプルコードも提供しますので、誰でも今日から利用できます。本記事を最後まで読んで、タスク管理やメール作成の時短に活用してください。

 

\ゲームで学ぶプログラミング/
独学でプログラミングを学んで開発者に!
Unity入門の森オリジナル本格ゲーム制作講座はこちら
本格ゲームの全ソースコード公開・画像&動画による解説付き

報告メールの手間をGASで一気に解決!自動化で効率UP

報告メールは、日々の作業の中でも意外と面倒な作業です。送信を忘れて怒られた経験がある方もいるかもしれません。また、タスク管理表を利用している場合、タスク表に完了を記載してからメールを送るという管理が煩雑になりがちです。

そこで、GASを使ってスプレッドシートとGmailを連携させ、タスク管理と報告メールの送信を同時に行ってしまいましょう!

この方法を行うメリットは、主に以下の3点です。

  1. 作業時間の削減
    メールを自動で送るので、これまでメール作成に使っていた時間を節約できます。空いた時間を他の仕事に使ったり、休憩を取ったりできます。
  2. テンプレートの作成と保存
    メール本文は、事前に作成したテンプレートを基に送信します。テンプレートを使えば体裁が常に統一され、読みやすく、誤字脱字も減ります。
  3. タスク管理表と報告メールの整合性
    タスク管理の内容をもとに報告メールを送ることで、完了しているのに報告していない、完了していないのに報告してしまったといったミスを防ぐことができます。

GASとスプレッドシートを組み合わせることで、手動の報告作業を自動化し、業務効率を上げながらヒューマンエラーを減少させることが期待できます。

報告メール送信スクリプトの仕様

今回は、以下のような機能を持つ報告メール送信スクリプトを作成していきます。

  • タスク管理用のスプレッドシートにてタスク完了の登録をすると起動
  • 完了したタスクの内容を読み取り報告メールを送信
  • 送信したタスクは、報告ステータス列に「報告済」と表示
  • 報告メールは、以下の定型文で送信
お疲れ様です。
以下タスクが完了しました。
【完了タスク】
タスク名:<タスク管理表上のタスク名>
タスク詳細:<タスク管理表上のタスク詳細>
期限:<タスク管理表上の期限>以上、確認お願いします。

事前準備:タスク管理用のスプレッドシートを作成

まずは、タスク管理用のスプレッドシートを作成します。

  1. Googleドライブにアクセスします。

ウェブブラウザからGoogleドライブにアクセスして、「ドライブを開く」をクリックします。

個人向けのクラウド ストレージおよびファイル共有プラットフォーム - Google
Google ドライブのファイル共有プラットフォームについてご紹介します。個人向けの安全なクラウド ストレージとして利用し、コンテンツを他のユーザーと共有できます。

Googleアカウントにログインしていない場合は、ログインページにアクセスしてから次のステップに進んでください。

新規ボタンをクリックし、スプレッドシートを作成します。

 

その他のやり方もこちらに解説
【GAS作成用】スプレッドシートの始め方

列名とファイル名を設定します。列名として1行目に以下を入力します。

  • ステータス
  • タスク名
  • タスク内容
  • 期限
  • 報告ステータス

ファイル名は「タスク管理用スプレッドシート」とします。

 

そのままコピペできる列目はこちら。

ステータス タスク名 タスク内容 期限 報告ステータス

 

GASで日報送信スクリプトを作成しよう

いよいよGoogleAppsScriptを記述していきます。

先程作成したGoogleスプレッドシートにて拡張機能-AppsScriptをクリックします。

AppScript画面に切り替わります。

まずは、簡単にAppsScript画面についてご説明します。

1.プロジェクト名

クリックすると変更できます。

2.スクリプトファイル

プロジェクトに配置されているスクリプトファイルを確認できます。

各項目横の+ボタンを押すことでファイルを新規で作成できます。

3.ツールバー

スクリプト作成時に必要な操作ボタンがまとめられています。

保存やデバッグ、実行ログ表示、操作を1つ戻るなど

4.エディターエリア

スクリプトファイルの編集を行うエリア

こちらにプログラムを記述していきます。

手始めにプロジェクト名を変更してみましょう。

今回は、メール送信スクリプトなので「CompTaskSendMail」に変更しましょう。

続いてプログラムを記述していきます。

今回作成するプログラムの完成形は以下になります。

【注意】メール設定のミスを防ぐため、テスト時には必ず宛先の確認を行い、誤送信を避けましょう。

仕組みはどうでもいいのですぐに動かしたいという方はこちらをコピー&ペーストして動作確認の項に進んでいただければOKです。

内容も理解したいという方のためにスクリプト作成の手順を説明していきます。

メイン関数を作成

最初に関数を作成します。

関数とは、1つの目的のため複数の処理を1つにまとめて記述したものです。

GASではこの関数を呼び出して処理を実行します。

今回は、CompTaskSendMailという名前のファンクションを作成します。

エディタエリアに以下のように記述します。

設定情報を記述

スプレッドシートの情報など設定情報を記述します。

以下のように記述します。

メールの送信に必要な情報を取得するための情報を設定しています。

メール文章の文頭と文末は、定型文とするのでそれぞれheaderBody 、footerBody に定型文を格納しています。

スプレッドシートのタスク情報を取得

設定情報の記述ができましたらスプレッドシートから情報を取得する処理を記載します。

スプレッドシートのタスク情報取得処理は、以下のように記述します。

この処理では、スプレッドシートのタスク情報を1行づつ取得し完了タスクかを確認します。

繰り返し処理は、for()関数を利用します。

この例では、変数 i が初期値 1 から始まり、5 以下の条件を満たす限り、1 ずつ増加するという基本的な for ループがあります。各ループの実行時には、コンソールに i の値が表示されます。

スプレッドシートのセルの値取得は、getRange().getDisplayValue()を利用します。

主な使い方は、以下。

取得した情報は、前述の設定情報で作成した各項目の格納用変数に格納します。

取得後は、判定関数であるif関数を用いて1列目のステータスが「完了」かつ5列目の報告ステータスが空白であるかをチェックします。

メールの送信処理

最後に完了したタスクを報告するメールを作成して送信します。

以下の内容をforの中括弧の中に記述してみましょう。

 

テスト用の実行したときに、

「承認が必要です」「このアプリはGoogleで確認されていません」と出た場合はこちらを参照。

GAS実行時「承認が必要です」「このアプリはGoogleで確認されていません」の対策まとめ

トリガー設定

作成したスクリプトをスプレッドシートの編集が発生した際に自動的に実行されるようにトリガーの設定をします。

AppScript画面にて以下の操作を行います。

トリガーボタンをクリック。

トリガーを追加をクリック

以下の設定でトリガーを設定して保存をクリック。

実行する関数を選択:RegisterSchedule

実行するデプロイを選択:Head

イベントのソースを選択:スプレッドシートから

イベントの種類を選択:編集時

一覧に設定したトリガーが表示されればトリガー設定完了です。

新着メールを受信して翌日に自動的にスプレッドシートに転記されていれば成功です。

動作確認

スクリプトが完成したので実際に動かして見ましょう。

メールが送信されるため、メールアドレスの設定には十分に注意しましょう。

 

タスク登録用スプレッドシートにタスクを記入します。

リマインドメールが送られれば成功です。

上手くメールが送信されない・・・そんなときはココをチェック

GASでメール送信が上手くいかない場合、スプレッドシートのデータやスクリプトに問題があることがあります。

サンプルデータを使用して、設定が正しいか確認してみましょう。

スプレッドシートのサンプルデータ

ステータス タスク名 タスク内容 期限 報告ステータス
完了 月次レポート作成 8月分の月次レポートを作成 2023/09/10
未完了 会議資料準備 次週の会議資料を準備 2023/09/15
完了 顧客対応 顧客からの問い合わせ対応 2023/09/08 送信済
完了 チームミーティング チーム会議を設定する 2023/09/12

各列の意味

  • ステータス: タスクの進捗状況(完了/未完了など)
  • タスク名: タスクの名前
  • タスク内容: タスクの詳細
  • 期限: タスクの締め切り日
  • 報告ステータス: 報告メールの送信状況(空欄が未送信、”送信済”が送信完了)

このサンプルデータを使って、スクリプトが「ステータス」が「完了」かつ「報告ステータス」が空のタスクについて、自動で報告メールを送信し、「送信済」と記録されることを確認できます。

例として

  1. 「月次レポート作成」や「チームミーティング」が完了していて、報告ステータスが空欄であれば、これらが対象のタスクとなり、メールが送信されます。
  2. 「顧客対応」は既に報告ステータスが「送信済」なので、メール送信は行われません。

まとめ

 

今回は、GASを利用してスプレッドシートで作成したタスク表から自動的に報告メールを送信するツールについてご紹介しました。

本記事の内容をまとめと以下。

  • タスク表とメールを連携して自動化すれば業務効率とミス削減が可能
  • GoogleAppsScriptを利用すればタスク表とメールを連携して自動的に報告メールの送信できる
  • トリガー機能を利用した日報メールの送信方法もご紹介

日々の業務で発生する報告メールや日報メールの作成は手間のかかる作業。

ですがGASを活用すれば、その手間を削減しながら業務の効率化が可能です。

今回の記事を参考にGASを使った業務効率化を図ってみてください。

\ゲームで学ぶプログラミング/
独学でプログラミングを学んで開発者に!
Unity入門の森オリジナル本格ゲーム制作講座はこちら
本格ゲームの全ソースコード公開・画像&動画による解説付き
タイトルとURLをコピーしました