0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Outlook予定表にVBAで有給休暇等の予定を登録するマクロ

Last updated at Posted at 2024-11-16

Outlookをメーラーとして利用している会社も多いと思います。
Outlookの予定表上で、アクティブにしている日にちに、ワンクリックで有給休暇等の終日の予定を登録するプロシージャをご紹介します。

Outlook VBA
Sub sb予定表登録_有給休暇()
    Dim objApItem As Outlook.appointmentItem
    Set objApItem = Application.CreateItem(olAppointmentItem)
   
    Dim oExpl As Outlook.Explorer
    Dim oView As Outlook.View
    Dim oCalView As CalendarView
    Dim datStart As Date
    Dim datEnd As Date
   
    Set oExpl = Application.activeExplorer
    Set oView = oExpl.CurrentView
   
    If oView.ViewType = olCalendarView Then 'もし予定表画面を開いているなら
        Set oCalView = oExpl.CurrentView
        datStart = DateValue(oView.SelectedStartTime)  '選択中の日付を取得(DateValueで日付のみ)
        datEnd = datStart + 1
       
        With objApItem
            .Subject = "有給休暇"
            .Start = datStart '終日の予定のため0:00
            .End = datEnd '終日の予定のため0:00
            .AllDayEvent = True     '終日の予定TRUEならStart・Endの時間に関わらず0:00へ強制的に変更となる(ただし公開方法は空き時間)
            .BusyStatus = olBusy    '公開情報=予定あり
            .Categories = "プライベート"  '分類項目(個人の設定によるため未登録ならコメントアウトする)
            .ReminderSet = True
            .ReminderMinutesBeforeStart = 720  '720分=12時間で半日前(予定の開始前にアラームが発生する必要がある分数)
            .Save
        End With
    Else
        '予定表画面でない画面(例:メール画面)で実行する場合には、実行せず終了する
         MsgBox "処理未実行で終了です。", , "処理結果通知"
        Exit Sub
    End If
 
    MsgBox "処理が終了しました。", , "処理結果通知"
   
End Sub

予定表のクイックアクセスツールバーに登録して、Outlook予定表で有給休暇等の予定を登録したい日付をアクティブにした状態でマクロを実行してください。

他にもOutlook予定表に関するマクロですと、私は「分類項目」で『作業中』や『済』等のステータス管理をしているので、選択中の予定の「分類項目」をクリアしたうえで分類項目を『済』に、リマインダーを無効化する(もう完了したタスクなので)マクロを作成して使っています。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?