【VBA】右クリックのメニューにマクロを追加する方法

この記事は約3分で読めます。
スポンサーリンク

右クリックにマクロを登録すると非常にマクロの有用性が広がります。
また、年配の方にも使いやすいプログラムになりますので、
ぜひ覚えていってください!!

スポンサーリンク

【VBA】右クリックのメニューにマクロを追加する方法

右クリックのメニューのVBAのプログラムを登録する方法は、下記の通りです。
※ダブルクリックでコピーできます。

'ブックが開いた時に、右クリックに登録
Private Sub Auto_Open()

    With CommandBars("Cell").Controls.Add(Before:=1)  '1が一番上
        .Caption = "RC_TEST(&P)" '表示名
        .OnAction = "TEST" 'プログラム名
    End With

End Sub
'ブックを閉じたときに、右クリックのメニューを消す。
Private Sub Auto_Close()
    
CommandBars("Cell").Controls("RC_TEST(&P)").Delete

End Sub

’実行するプログラム
Sub TEST()

MsgBox "右クリック"

End Sub

プログラム説明

メニューの登録と削除

上記の通り、

右クリックで登録するだけなら、

    With CommandBars("Cell").Controls.Add(Before:=1)  '1が一番上
        .Caption = "RC_TEST(&P)" '表示名
        .OnAction = "TEST" 'プログラム名
    End With

で終わりなのですが、
これを実行したままにすると、なんと、メニューがそのまま残り続けます。
※今回の場合、 「RC_TEST(&P)」 のメニューが残り続ける。

ですので、きちんとメニューを消すことが大事です。

そのプログラムが、

CommandBars("Cell").Controls("RC_TEST(&P)").Delete

となっています。
表示名と一致しないときちんと消えないので、ご注意ください。

Auto_Open() Auto_Close() との組み合わせ

メニューを作った後に、きちんと消す必要がありますので、
基本的にはAuto_Open() Auto_Close()との相性が抜群になります。

そのブックを立ち上げたときに、自動的にメニューが追加されますので、
そのブックで使えるプログラムを登録しておきましょう!!

途中で落ちてしまった時、、

途中でプログラムが落ちてしまった時は、

メニューが残ったままになってしまいます。。
非常に邪魔ですので、

'右クリックのメニューの初期化は
Application.CommandBars("Cell").Reset

で、初期化してあげてください。
右クリックに常時追加してあるメニューも消えますのでご注意ください。

スポンサーリンク
スポンサーリンク
マクロVBA
スポンサーリンク
nujonoaをフォローする
nujonoa_blog

コメント欄

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