2

VSTO を使用して MS Word 2010 のアドオンを開発しています。Word には「キーボードのカスタマイズ」ダイアログがあります。

MS Word 2010 キーボードのカスタマイズ ダイアログ

「コマンド」リストには、メニューまたはアクションにそれぞれ割り当てられた組み込みマクロ コマンドが含まれています。メソッドを使用して VSTO から実行できますApplication.Run()

現在インストールされている Word のインスタンスについて、「メニュー項目名」-「マクロ コマンド名」-「キーボード ショートカット」の形式でレコードを取得する必要があります。

私がこれまでに試したこと:

Application.CustomizationContext = Application.NormalTemplate;
foreach (CommandBar bar in Application.CommandBars)
{
    // Name of menu group
    Application.Selection.InsertAfter(bar.NameLocal + "\n");
    foreach (CommandBarControl control in bar.Controls)
    {
        // Human-readable name
        Application.Selection.InsertAfter("\nName:" + control.accName
                   // Broad description
                   + "\nDescription:" + control.DescriptionText
                   // Keyboard shortcut
                   + "\nShortcut:" + control.accKeyboardShortcut);
    }
}

残念ながらCommandBarControl、マクロ コマンド名フィールドは含まれていません。これをどうやってまとめて接着しようか迷っています。

4

1 に答える 1

1

さて、今度はあまりにも注目を集めている私の質問に答える時が来ました。

Microsoft Officeのバージョンごとに、ID、コマンド名、デフォルトのショートカット、およびその他の情報を含む多数のExcelテーブルがあります。これが2010バージョンです。提供されているテーブルを使用すると、必要なものをすべて簡単に入手できます。

var id = // Obtain from downloaded bundle
var name = // Obtain from downloaded bundle
var control = Application.CommandBars.FindControl(Id:id);
var description = control.DescriptionText;
var caption = control.Caption;
var shortcut = control.accKeyboardShortcut;
var parentControl = control.Parent;
于 2013-03-14T09:50:14.910 に答える