ToDo完了後に毎回リスト更新、メール送信――VBAでその手順、削減しませんか?:働く価値を上げる“VBA/GAS”術(13)(4/4 ページ)
「この作業が終わったら報告しないと」――しかし、毎回メールで報告するのは面倒くさい作業です。今回は、ToDo完了してリストを変更したら自動でメールが送信される仕組みを紹介します。
マクロ全体を再度確認
解説は以上です。再度、ToDo完了メール送信マクロの内容を確認してみましょう。まず、シートモジュールに記載するイベントプロシージャ「Sub Worksheet_Change(ByVal Target As Range)」です。
Private Sub Worksheet_Change(ByVal Target As Range) Dim myRange As Range Set myRange = Sheet1.ListObjects(1).ListColumns("ステータス").DataBodyRange Dim r As Range For Each r In Target If Not Intersect(myRange, r) Is Nothing And r.Value = "完了" Then Call ToDo完了メール送信(r.row) End If Next r End Sub
以下が標準モジュールに記載する列挙体eの定義と、「Sub ToDo完了メール送信(ByVal row As Long)」の内容です。
Public Enum e no = 1 記入日 タスク 期限 ステータス End Enum Sub ToDo完了メール送信(ByVal row As Long) '各要素の作成 With Sheet1 Dim myNo As Long: myNo = .Cells(row, e.no).Value Dim myTask As String: myTask = .Cells(row, e.タスク).Value End With Const MY_TO As String = "example@example.com" Const RECIPIENT As String = "皆様" Dim mySubject As String mySubject = mySubject & "タスク完了メール: [" & myNo & "] " & myTask Dim myBody As String: myBody = "" myBody = myBody & RECIPIENT & "<br>" myBody = myBody & "以下のタスクが完了しました<br>" myBody = myBody & "[" & myNo & "] " & myTask 'メールの送信 Dim olApp As Outlook.Application: Set olApp = New Outlook.Application Dim myMail As MailItem: Set myMail = olApp.CreateItem(olMailItem) With myMail .To = MY_TO .Subject = mySubject .Display .HTMLBody = myBody & .HTMLBody .Send End With End Sub
次回は
今回は、Excel VBAで「ToDoリストの完了メール送信マクロ」を作成しました。イベントやイベントプロシージャを使うことで、「実行する」手順も省略できます。他にも多くのイベントプロシージャが用意されているので、ぜひ活用してみてください。
次回は、「ToDoリストの完了メール送信マクロ」をGASで作成する方法をお伝えします。
著者プロフィール
高橋宣成
プランノーツ 代表取締役
「ITを活用して日本の『働く』の価値を高める」をテーマに、ExcelやVBA、G Suite、Google Apps Script、クラウドなどによる企業または個人事業主向けのシステムおよびツールの開発やコンサルティング、セミナー講師などを務める。「IT×働き方」をテーマに運営するブログ「いつも隣にITのお仕事」は月間60万PV達成。
書籍紹介
高橋宣成著 秀和システム 1800円(税別)
動くコードが書けたその先、つまり「ExcelVBAを実務で使う」という目的に特化した実践書。ExcelVBAを楽に効果的に使いこなし続けるための知恵と知識、そしてそのためのビジョンと踏み出す勇気を提供する1冊。
詳解! Google Apps Script完全入門 〜Google Apps & G Suiteの最新プログラミングガイド〜
高橋宣成著 秀和システム 2600円(税別)
Google Apps Scriptの完全入門書として、JavaScriptの基本から自作ライブラリまでを徹底解説。これ一冊だけで基礎から実践まで体系的にマスターできます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「数百のファイルを1つ1つ開くの面倒……」、複数のExcelデータを1箇所に集約するマクロ術
経費精算書のように「バラバラのデータを1箇所に集約すること」は、多く発生する業務の1つです。しかし、1つ1つのファイルを開きコピー&ペーストするのは手間が掛かる業務。その業務を、マクロを使って自動化する方法を紹介します。 - 「計算式エラーで残業確定……」、GASで入力データのチェックツールを作成
1つのGoogleスプレッドシートを複数人で共同編集するとき、想定していた形式とは違うデータを入力されると、不備が発生してしまう場合があります。そのような問題を、GASで解決するにはどうすればいいのでしょうか。 - プログラム自動実行で仕事を楽に! APIでSlackなどと連携できる「Google Apps Script」とは
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、Googleが提供する数々のアプリケーションを操作できる「Google Apps Script」を紹介する。※ショートカットキーの解説あり