Office関連

クイックアクセスツールバーに登録してあるコントロールのIDを取得するVBAマクロ

先日、 @furyutei さんが(CommandBars).ExecuteMsoメソッドの引数となるコントロールIDの取得方法についてツイートされているのを目にしました。

@ExcelVBAer さんが当ブログの下記記事を紹介してくださっていますが、対象のコントロールをクイック アクセス ツール バーに追加すれば、オプション画面からポップアップでIDを確認できます。

ただ、ポップアップからIDを直接文字列として取得するのは手間が掛かるため、私としてはクイック アクセス ツール バーの情報が記録された設定ファイル(「%LOCALAPPDATA%\Microsoft\Office」フォルダにある「officeUI」ファイル)からIDを取得する方法をお薦めします。

officeUIファイルの実体はXMLで、下記のような構造になっています。

<mso:customUI xmlns:mso="http://schemas.microsoft.com/office/2009/07/customui">
  <mso:ribbon>
    <mso:qat>
      <mso:sharedControls>
        <mso:control idQ="mso:AutoSaveSwitch" visible="true" />
        <mso:control idQ="mso:FileNewDefault" visible="false" />
        <mso:control idQ="mso:FileOpenUsingBackstage" visible="false" />
        <mso:control idQ="mso:FileSave" visible="true" />
        <mso:control idQ="mso:FileSendAsAttachment" visible="false" />
        <mso:control idQ="mso:FilePrintQuick" visible="false" />
        <mso:control idQ="mso:PrintPreviewAndPrint" visible="false" />
        <mso:control idQ="mso:Spelling" visible="false" />
        <mso:control idQ="mso:Undo" visible="true" />
        <mso:control idQ="mso:Redo" visible="true" />
        <mso:control idQ="mso:SortAscendingExcel" visible="false" />
        <mso:control idQ="mso:SortDescendingExcel" visible="false" />
        <mso:control idQ="mso:PointerModeOptions" visible="false" />
        <mso:control idQ="mso:OfficeExtensionsGallery2" visible="true" />
        <mso:control idQ="mso:OfficeExtensionsAppStore" visible="true" />
        <mso:control idQ="mso:OfficeExtensionsGallery3" visible="true" />
        <mso:control idQ="mso:AddInManager" visible="true" />
      </mso:sharedControls>
    </mso:qat>
  </mso:ribbon>
</mso:customUI>

これを見れば分かる通り、クイック アクセス ツール バーに登録されている各コントロールのIDはmso:control要素のidQ属性の値を取得すれば良いので、そのための簡単なマクロを書いてみました。

visible属性の値がtrueになっているmso:control要素からコントロールIDを取得し、(CommandBars).GetLabelMsoメソッドで取得したコントロールのラベルと一緒にクリップボードにコピーするだけのシンプルな処理です。
(Excelだけではなく、WordやPowerPointでも動くようにしてあります。)

OfficeアプリケーションのコントロールIDは、Microsoftが公開しているリストからも取得できますので、お使いのバージョンに合わせてリストをダウンロードしてお使いください。

関連記事

Microsoft 365 Virtual Marathon 2021でOffice Scriptsについてお話ししてきました。前のページ

Windows 10 May 2021 Update(21H1)をクリーンインストールしてみました。次のページ

関連記事

  1. Office関連

    Word 2013では文書にオンライン ビデオを挿入できるようになりました。

    ※ この情報はOffice 2013 カスタマー プレビュー版を元にし…

  2. Office アドイン

    [Officeアドイン]Word JavaScript APIの機能紹介

    Office Dev Center - Changelogを見ると分か…

  3. Office関連

    モヤさまのショウ君にいろいろ喋らせるVBAマクロ(2)

    前回に引き続き、HOYAサービス株式会社様が公開されている「Voice…

  4. Office関連

    Yahoo!翻訳で文字列を翻訳するマクロ

    「Google翻訳で文字列を翻訳するマクロ」ではGoogle翻訳を利用…

  5. Office関連

    外部アプリケーションのコンボボックスの内容を取得するVBAマクロのサンプル

    Q&Aサイトに下記質問がありました。(この質問も何となく似たような…

  6. Office アドイン

    OfficeJS Snippet Explorerを使って新しいOffice アドインを体験する。

    前回の記事と打って変わって元のOffice アドインの記事に戻ります(…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP