【VBA】右クリックメニューに自作したVBAマクロを追加する

自作したVBAマクロを
 ・右クリックメニューへ追加する方法
を記載します!

自作したVBAマクロを右クリックメニューへ追加
自作したVBAマクロを右クリックメニューへ追加
PR

VBAコード(右クリックメニューから実行する処理)

標準モジュールに、右クリックメニューから実行するSubプロシージャを作成します。
※ここでは例としてSubプロシージャ「showMessage」を作成します。

Sub showMessage()
    MsgBox "右クリックメニューに追加しました!", vbInformation, "メッセージ"
End Sub
PR

VBAコード(右クリックメニューへ項目を追加する処理)

モジュール「ThisWorkbookに」、イベント「Workbook_SheetBeforeRightClick」を作成し、右クリックメニューに追加する「項目名」と「処理名」を指定します。
※ここでは「処理名」に先ほど作成したSubプロシージャ「showMessage」を指定しています。

'右クリックした際に発生するイベント
Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)

    '右クリックメニューを初期化
    Application.CommandBars("Cell").Reset
    
    '右クリックメニューに項目を追加
    With Application.CommandBars("Cell").Controls.Add()
        '項目名
        .Caption = "オリジナルメニュー!(^^)!"
        '処理名(Subプロシージャ名)
        .OnAction = "showMessage"
        'アイコン(任意)
        .FaceId = 931
    End With

End Sub

イベント「Workbook_SheetBeforeRightClick」は、シート上で右クリックした際に発生する(実行される)イベントです。

「Caption」に「項目名」を指定します。
※上記では『オリジナルメニュー!(^^)!を指定しています。

「OnAction」に「実行するSubプロシージャ」を指定します。
※上記では先ほど作成した「showMessage」を指定しています。

「FaceId」の指定は任意です。
※指定しなくても問題はありません。

PR

実行結果

シート上で右クリックし追加した項目をクリックすると、紐づけたSubプロシージャが実行されます。

自作したVBAマクロを右クリックメニューへ追加
自作したVBAマクロを右クリックメニューへ追加
右クリックメニューから自作したVBAマクロを実行した結果
右クリックメニューから自作したVBAマクロを実行した結果
PR

参考

上記のVBAコード使用した以下の詳細は、公式サイトをご確認ください。

●右クリックイベント「Workbook_SheetBeforeRightClick」