即効テクニック |
セルの右クリックメニューにコマンドを追加するには、次のようにします。Sub Sample1() With CommandBars("Cell").Controls.Add(Type:=msoControlButton) .Caption = "Button" .OnAction = "myMacro" End With End Sub Sub myMacro() MsgBox "Hello" End SubSample1を実行すると右クリックメニューに[Button]コマンドが追加され、クリックするとmyMacroが実行されます。 追加コマンドを削除するには、Deleteメソッドを使います。Sub Sample2() CommandBars("Cell").Controls("Button").Delete End Sub右クリックメニューに追加できるのはボタンだけではありません。 メニューに、文字列を入力できるエディットボックスを追加するには次のようにします。Sub Sample3() With CommandBars("Cell").Controls.Add(Type:=msoControlEdit) .Caption = "Edit" .OnAction = "myMacro2" End With End Sub Sub myMacro2() MsgBox CommandBars("Cell").Controls("Edit").Text End Sub実行すると、セルの右クリックメニューにエディットボックスが追加され、文字列を入力してEnterキーを押すと、OnActionプロパティで設定したプロシージャが実行されます。 入力した文字列は、追加したコントロールのTextプロパティで取得できます。 ほかにも、ドロップダウンリストボックスを追加することも可能です。Sub Sample4() With CommandBars("Cell").Controls.Add(Type:=msoControlDropdown) .AddItem "Data1" .AddItem "Data2" .AddItem "Data3" .Caption = "List" .OnAction = "myMacro3" End With End Sub Sub myMacro3() MsgBox CommandBars("Cell").Controls("List").Text End Sub追加したドロップダウンリストボックスにデータを追加するには、AddItemを使います。 なお、Excel 2007では、エディットボックスとドロップダウンリストボックスを追加しても表示されないようです。