5

Excel 2010アドインの1つでカスタムリボンを作成しようとしていますが、何らかの理由でOfficeがいくつかのキーチップ(キーボードアクセラレータ)を上書きしています。Officeで競合が発生した場合、通常は「Y」、「Y2」、「Y3」などのキーチップの一方または両方が上書きされることはわかっていますが、この例では、タブにボタンが1つしかないため、他にはありません。競合するように制御します。

XMLは次のとおりです。

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
 <ribbon>
  <tabs>
   <tab id="tabid_1" label="SampleTab" keytip = "B">
    <group id="grpid_1" label="SampleGroup">
     <button id="btnid_1" label="SampleButton" keytip="Z" />
    </group>
   </tab>
  </tabs>
 </ribbon>
</customUI>

キーチップがZのSampleButtonの代わりに、「Y2」に置き換えられます。タブのキーチップ(現在は「B」)に関係なく、この動作が見られます。キーチップが「BZ」のボタンが競合している可能性があることを確認しましたが、表示されませんでした。

SampleButtonのキーチップを「Y」にしようとするとその動作もわかりますが、これはすべての「Y*」キーチップが競合のために予約されているためだと思います。

ちなみに、キーチップが「C」の場合もこの問題が発生していましたが、原因不明の理由で、のラベルがない場合にのみ発生していました<group>。にラベルを追加するとすぐに<group>、「C」は「Y2」で上書きされなくなりました。非常に奇妙な行動。

誰かがこれを引き起こしている可能性があるアイデアを持っていますか?前もって感謝します!

4

3 に答える 3

4

同じ問題が発生し、キーチップの値を大文字の「Z」から小文字の「z」に変更するだけで機能しました。理由はわかりません。うまくいけば、それはあなたのために働きます。

于 2013-06-06T15:37:59.257 に答える
0

これは、Officeアプリケーションのカスタム(組み込みではなく)タブの標準的な動作です。これを自分でテストするには、UIからいくつかのカスタムタブを追加するだけです。次にAltキーを押して、すべてのカスタムタブがY1、Y2、Y3、アクセラレータであることに注目してください。

ただし、OPが指摘しているように、これは、プログラムで、またはアドインのリボンUI要素のXMLを介してkeytipプロパティを設定する場合の動作ではありません。キーコンボの限られたサブセットでのみ発生するため、バグである可能性があると思います。これをMicrosoftConnectWebサイトに記録することをお勧めします。

于 2013-05-06T04:41:35.070 に答える
0

申し訳ありませんが、受け入れられた答えは私にはうまくいきませんでした!私のVSTOソリューションでは、有効なALTショートカットが「G」であることが経験的にわかりました。したがって、C#コードで次のように設定します。

Globals.Ribbons.GetRibbon<MyRibbon>().tabMyRibbonTab.KeyTip = "GGG";

他のアドインとの競合を最小限に抑えるために、3つのGを使用しています。これは私にとってはうまくいき、SendKeysを使用してExcel 2007でRibbonTabを選択することもできました(この他の質問を参照してください)。

よろしく、イェルク

于 2015-01-15T16:48:53.937 に答える