スポンサーリンク

Outlookカレンダーで「毎月最初の平日」に予定を入れる方法

テックハック

こんにちは! みなさんはOutlookカレンダーで「毎月の最初の平日」に予定を自動で登録したいと思ったことはありませんか? 例えば、

  • 月初の定例ミーティング
  • 経理処理の締め日リマインダー
  • ルーチンワークのスケジュール

など、「毎月の最初の平日」に特定の予定を入れたいケースはよくあります。

ちなみに私がこの方法を模索したきっかけは、仕事で個人情報の管理チェックが月初にあるのですが、どうも毎回忘れてしまうのです。。。

カレンダーにスケジュールを定例でいれようと思ったのですが、Outlookの標準機能では「毎月の最初の平日」に限定した繰り返し設定はできないです。 そこで今回は、 VBA(マクロ)を使って自動化する方法 をご紹介します!


スポンサーリンク

方法1:VBAで「毎月の最初の平日」に予定を自動作成

VBAを使うと、Outlookカレンダーに毎月の最初の平日に予定を登録できます。

1. VBAエディターを開く

まず、OutlookのVBAエディターを開きます。

  1. Outlookを開く
  2. Alt + F11 を押してVBAエディターを開く
  3. Microsoft Outlook Objects 内の ThisOutlookSession をダブルクリック

2. 以下のコードをコピー&ペースト

Sub AddFirstWeekdayAppointment()
    Dim olApp As Outlook.Application
    Dim olNS As Outlook.Namespace
    Dim olFolder As Outlook.MAPIFolder
    Dim olAppointment As Outlook.AppointmentItem
    Dim dt As Date
    Dim i As Integer
    
    Set olApp = Outlook.Application
    Set olNS = olApp.GetNamespace("MAPI")
    Set olFolder = olNS.GetDefaultFolder(olFolderCalendar)
    
    ' 12ヶ月分の予定を作成(1年分)
    For i = 0 To 11
        dt = DateSerial(Year(Date), Month(Date) + i + 1, 1) ' 各月の1日
        ' もし1日が土日の場合は最初の平日を探す
        Do While Weekday(dt, vbMonday) > 5
            dt = dt + 1
        Loop
        
        ' 予定を作成
        Set olAppointment = olApp.CreateItem(olAppointmentItem)
        With olAppointment
            .Subject = "月初の平日"
            .Start = dt & " 09:00" ' 9時開始(必要に応じて変更)
            .Duration = 60 ' 1時間(必要に応じて変更)
            .Save
        End With
    Next i
    
    MsgBox "予定を作成しました!", vbInformation
End Sub

上記は例になります。

コード内の.Subject = “月初の平日” の内容を自分がつけたい名称にしてみてください。私は、「個人情報保護運用チェックリスト」にしてカレンダーを作っています。

3. 実行する

  1. VBAエディターの画面で F5 キーを押す
  2. メッセージが表示されれば成功!

このマクロを実行すると、 現在の月から1年分の「各月の最初の平日」に予定が自動登録 されます。

「毎月の最初の平日に予定を入れる」作業を自動化して、効率的にスケジュール管理をしましょう!

ぜひ試してみてください!


コメント

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