Excelのコンテキストメニュー(右クリックメニュー)に独自のメニューを追加する。
前回の予告通り、セルを右クリックした時に現れるメニューへ独自メニューを追加するVBAサンプルコードです。
■使用上の注意
RemoveCellMenu()で追加したメニューを削除しないと、どんどん同じメニューが追加されてしまいます。 あなたが実際に使うマクロを創るときには追加したメニューを自動的に削除してから終了するようにするなり、すでに独自メニューがあるときはさらに独自メニューを追加しないようなコードを追加してください。
'AddCellMenu()で独自のメニューをコンテキストメニュー '(右クリックメニュー)に追加する。 'RemoveCellMenu()で追加したメニューを削除する。 Sub AddCellMenu() Dim MyCellMenu As CommandBarControl Application.CommandBars("Cell").Controls.Item("切り取り(&T)").BeginGroup = True '区切り線を追加しています。 Set MyCellMenu_01 = CommandBars("Cell"). _ Controls.Add(Type:=msoControlButton, before:=1) With MyCellMenu_01 .Caption = "電卓起動!" .FaceId = 50 .OnAction = "ExecCalc" End With Set MyCellMenu_02 = CommandBars("Cell"). _ Controls.Add(Type:=msoControlButton, before:=1) With MyCellMenu_02 .Caption = "数字だったら2倍する!" .FaceId = 102 .OnAction = "NumW" End With End Sub Sub RemoveCellMenu() CommandBars("Cell").Controls.Item("電卓起動!").Delete CommandBars("Cell").Controls.Item("数字だったら2倍する!").Delete CommandBars("Cell").Controls("切り取り(&T)").BeginGroup = False End Sub Sub ExecCalc() Shell "calc" End Sub Sub NumW() If IsNumeric(ActiveCell.Value) Then ActiveCell.Value = ActiveCell.Value * 2 Else 'zzz... End If End Sub