【Outlook VBA】イベントApplication_Startupで起動時に今日の予定を表示する方法


eyecatch,outlook,application_startup

皆様こんにちは、ノグチです。

Outlookの予定、便利ですよね。

カレンダー形式で予定を把握しやすいし、予定の時刻前になるとアラートを出してくれたり…

でも、予定をすっかり忘れていたりして、予定直前にアラートが表示されて慌ててしまったりすること、ありませんか?

毎日お仕事を開始するとき、そう、例えばPCを開いてOutlookを起動したときに、今日の予定がまとめて表示出来れば…

それ、Outlook VBAなら、できるかもしれませんよ。

ということで今回は、前回ご紹介した登録済みの予定を取得する方法と、Outlook起動時イベントを組み合わせて、Outlook起動時に本日の予定をダイアログで表示する方法をご紹介します!

スポンサーリンク

イベントプロシージャのコーディング準備

まず、イベントプロシージャのコーディング準備をしましょう。

イベントプロシージャのコーディングをしたい場合は、Microsoft Outlook Object内のモジュールに処理を書いていく必要があります。

まずOutlookでVBEを開いて、画面左側に表示されている、「This Outlook Session」をダブルクリックします。

outlook,vba,VBE

すると、標準モジュールなどと同じように、コーディングの画面が右側に現れます。

そして画像のように、左側のドロップダウンリストから「Application」を選択します。

outlook,vba,VBE,リスト

すると、右側にイベントプロシージャのリストが表示されますので、この中から使いたいイベントプロシージャを選択すると…
outlook,vba,VBE,リスト,エディター

このように、イベントプロシージャがエディター部分に表示されます。

イベントに処理を追加するには、このエディター部分に表示されたプロシージャ内にコードを書いていきます。

標準モジュール内にイベントプロシージャを書き込んでも意味がないのでご注意を!!

Outlook起動時のApplication_Startup

Excel同様に、Outlookにも色々なイベントプロシージャがあります。

今回ご紹介するのは、Outlook起動時に実行される、Application_Startupというイベントプロシージャ。

Outlookを起動したときにメッセージを表示させるなどの処理をさせたいならば、このイベントプロシージャApplication_Startup内に処理を書き込めばOKなのです。

Application_StartupでOutlook起動時の処理を差し込む

試しに、このイベントプロシージャ内にメッセージを表示させる処理を差し込んでみましょう。

コードはこちら。
Private Sub Application_Startup()

MsgBox "こんにちは!"

End Sub

とっても単純ですね。

そしてOutlookを起動してみると…

outlook,vba,起動時

この通り、Outlook起動と同時にメッセージが表示されますね。

登録済みの予定をメッセージで表示させる

さて、起動時のメッセージが表示出来たら、お次は前回ご紹介した、Outlookの予定を取得する方法と組み合わせてみましょう。

まず、前回の記事はコチラ。

【Outlook VBA】登録済みの予定を日付で検索して取得する方法
Outlook VBAで、Outlookに登録した予定を取得してメッセージ表示する方法をご紹介しています。この方法と、Outlookに用意されているイベントと組み合わせて使えば、Outlookを更に使い勝手良く使うことができますよ。

実は、前回記事でご紹介したコードをまるまるそっくりもってくればOK。

前回記事のコードとの違いは、プロシージャ名がイベントプロシージャ名に変わったくらいです。

組み合わせたコードがこちら。

Private Sub Application_Startup()
Dim myNamespace     As NameSpace
Dim myFolder        As Object
Dim ObjAppo         As Object
Dim strMsg          As String

Set myNamespace = GetNamespace("MAPI")
Set myFolder = myNamespace.GetDefaultFolder(olFolderCalendar)

For Each ObjAppo In myFolder.Items
    
    If Format(ObjAppo.Start, "yyyy/mm/dd") = Format(Date "yyyy/mm/dd") Then
        With ObjAppo
            strMsg = strMsg & Format(.Start, "hh:mm") & Space(3) & _
                    ObjAppo.Subject & vbCrLf
        End With
    End If
Next ObjAppo

MsgBox strMsg

End Sub

上のコードを保存したら、今日の日付で予定をいくつか登録しておきましょう。

outlook,予定
こんな感じでいくつか予定を登録したら、Outlookを再起動させてみます。
すると…
outlook,vba,今日の予定
この通り、Outlookの起動と同時に、今日の予定がダイアログで表示されましたね。

最後に

今回は、Outlookに登録済みの予定を取得する方法と、Outlook起動時イベントを組み合わせて、Outlook起動時に今日の予定をダイアログで表示させる方法をご紹介しました。

仕事の予定などは、毎日仕事を始めるタイミングで手帳を見たり、Outlookの予定を見たりして確認するのですが、たまに抜けてしまうこともあったり…

でも、この方法を使えばそんな予定の把握もぐっと楽になりますよ。

予定以外にもToDoやタスクリストの取得と組み合わせても便利かもしれませんね。

そもそもOutlookに予定を登録し忘れる!という場合は…別の方法を考えてみましょう。

それでは、最後までお読みいただきありがとうございました!

連載目次:Outlook VBA 予定を登録してみよう

Outlook VBAで、予定の管理も便利にしてしまいましょう。

VBAでの予定の登録だけでなく、登録済みの予定への操作方法もご紹介しています。

  1. 【はじめてのOutlook VBA】Outlookの予定を登録する方法
  2. 【Outlook VBA】エクセルワークシートの内容で予定登録する方法
  3. 【Outlook VBA】登録済みの予定を日付で検索して取得する方法
  4. 【Outlook VBA】イベントApplication_Startupで起動時に今日の予定を表示する方法

タイトルとURLをコピーしました