【Excel VBA】~右クリックメニューを独自にカスタマイズする~

あいさつ
Excel VBAを作っていて、右クリックメニューを独自でカスタマイズしなければならない場面がありました。
ということでそのプログラムを紹介します。
ソースコード
早速ソースコードを紹介します。
まずはVBAのシートモジュール(Sheet1)に下記コードを入力します。
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Dim cmdBra1 As CommandBarControl
Dim cmdBra2 As CommandBarControl
'標準状態にリセット
Application.CommandBars("Cell").Reset
'全てのメニューを一旦削除
For Each cmdBra1 In Application.CommandBars("Cell").Controls
cmdBra1.Visible = False
Next
'以下で、新規のメニューを追加
Set cmdBra1 = Application.CommandBars("Cell").Controls.Add()
With cmdBra1
.Caption = "クリア"
.OnAction = "ClearCell"
End With
Set cmdBra1 = Application.CommandBars("Cell").Controls.Add(Type:=msoControlPopup)
With cmdBra1
.Caption = "文字入力"
End With
Set cmdBra2 = cmdBra1.Controls.Add()
With cmdBra2
.Caption = "A1に入力"
.OnAction = "input_A1"
End With
Set cmdBra2 = cmdBra1.Controls.Add()
With cmdBra2
.Caption = "B2に入力"
.OnAction = "input_B2"
End With
Application.CommandBars("Cell").ShowPopup
Application.CommandBars("Cell").Reset
Cancel = True
End Sub
次に下記コードを標準モジュールのシートに入力します。
Microsoft Excel Objectのフォルダで右クリックすると「挿入→標準モジュール」があるので、そのシートに入力します。
Sub ClearCell()
Range("A1:B2").Clear
End Sub
Sub input_A1()
Range("A1").Value = "A1入力"
End Sub
Sub input_B2()
Range("B2").Value = "B2入力"
End Sub
実行結果
上記プログラムを記載後、Excelシート上で右クリックすると以下のようになります。

これで無事実装できました!!
-
前の記事
【雑学】~暇だから悩むについて~ 2022.09.23
-
次の記事
【資産運用】~お金に強くなるには、計算機を持ち歩く~ 2022.09.25