エクセルVBAをOutlookClassicのリボンに登録すれば一押しでマクロを実行できます。単に登録だけだとリボンには表示されないですが、リボン表示を増減させることで目的のマクロを表示させすぐに実行させることができます。
画面
今回の登録マクロは、以前紹介したエクセルVBAによるメールシステムです。outlookのタブにボタンを登録し、一度クリックすることでマクロを実行し動的なメール作成が可能です。

登録するだけだとタブに直接表示されませんが、登録されたタブ機能を削除することで優先表示させることができます。
コード
➤コードはこちら
Option Explicit
Sub RunExcelMacro_VisibleFalse_CloseOnlyTarget()
Dim xlApp As Object
Dim xlBook As Object
Dim filePath As String
Dim macroName As String
Dim startedNewExcel As Boolean
Dim wbFound As Boolean
Dim wb As Object
' 実行したいExcelファイルとマクロ名を指定
filePath = "●●●●.xlam" ' ← 実際のパスに変更
macroName = "モジュール名○○.プロシージャ名○○"' ← 実際のマクロ名に変更
startedNewExcel = False
wbFound = False
' 既存のExcelインスタンスに接続(失敗したら新規起動)
On Error Resume Next
Set xlApp = GetObject(, "Excel.Application")
On Error GoTo 0
If xlApp Is Nothing Then
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True '
startedNewExcel = True
End If
' 対象のブックが既に開かれているか確認
For Each wb In xlApp.Workbooks
If wb.FullName = filePath Then
Set xlBook = wb
wbFound = True
Exit For
End If
Next wb
' 開かれていなければ開く
If Not wbFound Then
Set xlBook = xlApp.Workbooks.Open(filePath)
End If
' ブックのウィンドウを最小化
xlApp.Windows(xlBook.Name).WindowState = -4140 ' xlMinimized
' マクロを実行
xlApp.Run macroName
' Excel自体は閉じない(他の作業に影響しないため)
' オブジェクト解放
Set xlBook = Nothing
Set xlApp = Nothing
End Sub
ポイント
以下設定を行います。
- Outlookにエクセルマクロ呼び出し用プロシージャ作成
- Outlook表示設定からタブを新しく作成し、上のプロシージャを登録
- 登録したマクロを優先表示するため、既定のタブを削除する
Outlookにエクセルマクロ呼び出し用プロシージャ作成
今回はOutlookメール作成するマクロを登録します。まずはOutlookを開き、Alt+F11で標準モジュールを作成し、プロシージャを作成します。やり方はエクセルと同様です。


例えばモジュール名が●SHOW_MAILUF、プロシージャ名がShowMailUfである場合、●SHOW_MAILUF.ShowMailUfのようにマクロ名を転記します。
Outlook表示設定からタブを新しく作成し、上のプロシージャを登録
次にアプリ上部のリボンに登録したマクロを実行できるタブを作成します。やり方はエクセルと同様です。4ステップあります。
①ファイルを開き、オプションを選択します。


②その後、リボンユーザ設定を選択します。ここでマクロを登録する場所を作る為、新しいタブを押し、マクロ実行のタブを追加します。これがリボンに表示される場所のようなものになります。

③追加後、画面左側のコマンド選択からマクロを選択します。開くと、先ほどチェックしたマクロがあるので選択します(名前はプロシージャ名)。そして、②で作ったマクロタブを押して開くと、新しいグループと出るので選択それを選択した状態にします。追加するマクロと、登録するタブ左右を選択した状態で、追加(A)を押しマクロをタブに追加します。

追加後は見た目や表示名を名前の変更から設定できます。

④作ったタブをoutlookアプリ上で優先表示させるため、タブの順番と現在表示されているタブを削除します。ホーム(メール)はoutlookを開いた際のリボン表示される項目を表しています。この部分に優先表示させるために、③で作ったタブの位置をドラッグアンドドロップで上に移動させます。

その後アプリに戻り、マクロが表示されていない場合は、現在表示されているタブで使わない物を削除してください。削除しても設定をすれば再表示可能です。不要なタブを削除することで目的のマクロタブを優先表示させ、ボタンのように使用ができます。
なお今回Outlookに登録したエクセルマクロ呼び出しプロシージャは、開いたエクセルを最小限にしてマクロを実行させています。