Excel用の.netアドインがあります。アドインはExcel2007のリボンUIを作成し、切り取り、コピー、貼り付け、並べ替えなどの既存のコマンドを再利用します。
切り取り、コピー、貼り付けの場合、ボタンがクリックされたときにOnAction値をオーバーライドして、独自のプロシージャを呼び出します。ただし、Sort、Sort Asc、およびSort Descコマンドの場合、大文字と小文字は少し異なります。[並べ替え]、[並べ替え]、[説明の並べ替え]ボタンのいずれかをクリックすると、通知を受け取り、デフォルトの機能を呼び出します。これは、Excel 2003コマンドバーでCommandBarControlのExecute()メソッドを呼び出すことで可能でした。
Excel 2007には、プログラムでリボン要素をクリックするExecuteMso()メソッドがありますが、OnActionがオーバーライドされると、このExecuteMso()メソッドは、そのボタンのデフォルト機能ではなく、独自のプロシージャを実行するだけです。
そこで、[ホーム]タブの[編集]グループにある[並べ替え]ボタンを非表示にして、[並べ替え]、[昇順]、[説明を並べ替え]ボタンを追加することを考えました。ボタンは最初にプロシージャを呼び出し、そこからデフォルトの動作を呼び出します。
ここで問題となるのは、編集グループ(idMso = "GroupEditing")を変更/非表示にできないことです。この組み込みグループは編集できませんか?ただし、クリップボードやその他のグループを非表示にすることはできます(ただし、ボタンを追加することはできません)。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon>
<tabs>
<tab idMso="TabHome">
<group idMso="GroupEditing" visible="false" />
</tab>
</tabs>
</ribbon>
</customUI>