2009-06-24 19 views

答えて

2

ツールバーに加えてコンテキストメニューに使用されるCommandBarsコレクションを使用します。少なくとも3つのコンテキストメニュー - セル(任意のセル上で右クリック)、行と列(A、B、Cまたは1,2,3ヘッダー上で右クリック)があります。行コンテキストメニューに新しい要素を追加するための非常に基本的なコードは以下の通りです。

MSDN documentation for CommandBarsもご覧ください。old Office 2000 list of commandbar elementsもあります。

Sub AddToContextMenu() 
    Dim element As CommandBarButton 
    Set element = CommandBars("row").Controls.Add 
    element.Caption = "Menu Item Name" 
    element.OnAction = "VBAToRunOnRow" 
End Sub 
+0

これはCommandBars( "Shapes")では機能しません –

0

私はあなたがC#ソリューションを求めていないが、私は、私はちょうどアリスターの答えからそれを働いたので、1つを投稿することが有用であるだろうと思って知っている:

public void AddContextMenuItem(Microsoft.Office.Interop.Excel.Application application, string label) 
{ 
    var button = (CommandBarButton)application.CommandBars["cell"].Controls.Add(); 
    button.Caption = label; 
    button.Click += button_Click; 
} 

void button_Click(CommandBarButton Ctrl, ref bool CancelDefault) 
{ 
    //Button click 
} 
+0

これはCommandBars( "Shapes")では機能しません –

5

これはかなり遅れていますしかし、私はそれをやろうとしている誰にとっても重要だと思いました。

Excel 2007および2010では、グラフや図形のコンテキストメニューを変更できません。エラーはありませんが、変更は適用されません。マイクロソフトはこれについて知っています。少なくとも、製品グループのスマートな人たちですが、私はこれらのバージョンがこの問題に対処する予定はないと考えています。

関連する問題