見出し画像

Outlookの会議設定で開始,終了時刻を15分刻みで変更するVBAマクロをつくった

困りごと

Outlookの会議設定で開始,終了時刻を設定するとき、プルダウンで選択できるのは30分刻みしかできないんですよね。例えば開始時刻を9:00から9:15に変えるとき、"00"を一度消して再度"15"をキーボードで打たないといけない。これはめんどくさい!そもそも15分刻みで設定されていれば/変更できればカーソルキーだけで変更できるのに。

結論

VBAマクロを作成し、タブやクイックアクセスツールバーに出すことで解決としました。直接解決ではなく間接的な解決です。使うぶんには十分です。

諸事情でスクショできないのでそれっぽいイメージです。

プルダウンを15分刻みに変更することはできませんでした。Outlookの設定画面には選択肢がなく、カスタムフィールドを作ってみたけれど思ったような動作せず(ここは熟知した人が工夫したらできるかもしれません。少なくとも知識ゼロで3時間ほど触ったけど無理だった。)

マクロの設定方法

開発タブを出してVisual Basic Editorを起動。
ThisOutlookSessionにマクロを書いていけば良いです。
(諸事情で手元に環境がないのでスクショ駆使しながらの記事になります。)

マクロの関数を書いていく

開始時刻に15分足すマクロ

Public sub MtgStart15mPlus()

    Dim objIns As Inspector
    Dim objItem As Object
    Set objIns = Application.ActiveInspector
    Set objItem = objIns.CurrentItem

    ' 現在の開始時刻を取得
    Dim NowMtgStart As Date
    NowMtgStart = objItem.Start

    ' 現在の開始時刻に15分足す
    Dim ReNowMtgStart As Date
    ReNowMtgStart = DateAdd("n",15,NowMtgStart)

    With objItem
        ' 開始時刻を設定
        .Start = ReNowMtgStart
        .Display
    End With

End sub

15分戻す場合は”ReNowMtgStart = DateAdd("n",-15,NowMtgStart)”と引数を-15にする。
このマクロの内容ではなく、Outlookのデフォルトとして、開始時刻に15分足すと、終了時刻も連動して15分後ろになります。

終了時刻に15分足すマクロ

Public sub MtgEnd15mPlus()

    Dim objIns As Inspector
    Dim objItem As Object
    Set objIns = Application.ActiveInspector
    Set objItem = objIns.CurrentItem

    ' 現在の終了時刻を取得
    Dim NowMtgEnd As Date
    NowMtgEnd = objItem.End

    ' 現在の終了時刻に15分足す
    Dim ReNowMtgEnd As Date
    ReNowMtgEnd = DateAdd("n",15,NowMtgEnd)

    With objItem
        '終了時刻を設定
        .End = ReNowMtgEnd
        .Display
    End With

End sub

終了時間はobjItem.Endを操作する。15分戻す場合はDateAddの引数を-15に設定する。

MTG時間を所定時間にするマクロ

Public sub SetMtg15m()

    Dim objIns As Inspector
    Dim objItem As Object
    Set objIns = Application.ActiveInspector
    Set objItem = objIns.CurrentItem

    ' 現在の開始時刻を取得
    Dim NowMtgStart As Date
    NowMtgStart = objItem.Start

    ' 終了時刻を現在の時間の15分後にする
    Dim ReNowMtgEnd As Date
    ReNowMtgEnd = DateAdd("n",15,NowMtgStart)

    With objItem
        ' 終了時刻を設定
        .End = ReNowMtgEnd
        .Display
    End With

End sub

終了時刻を開始時刻+15分にする。
私は30分、45分、60分、75分、90分をそれぞれ関数で用意した。

使いやすくするために

使いやすくするためにクイックアクセスツールバーやタブに設定すると楽です。冒頭のイメージですね。ありがたいことにOutlookでは各ポップアップウインドウごとにクイックアクセスツールバーやタブを設定できます。そこで、会議設定画面上でクイックアクセスツールバーやタブを設定します。

諸事情でスクショできないのでそれっぽいイメージです。

クイックアクセスツールバーやタブの表示形式もいじれるのでお好きなように。
”コマンドの選択”のタブをマクロにすると作成したマクロを選択できます。
右に追加したあと、下の変更をクリックすると表示名やアイコンを変えられます。

こんな感じ

おわりに

ググってもあまり解決策がヒットしなかったので記事にまとめました。
ほんの少しだけど、めんどうに感じていた部分が解決できて嬉しい!
おしまい。

この記事が気に入ったらサポートをしてみませんか?