Excel

クイックアクセスツールバーに登録してあるコントロールの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関連

    表示モードを変更するPowerPointマクロ

    PowerPointには様々な表示モードがありますが、私のお気に入りは…

  2. Office関連

    ヘッドレス ChromeをSeleniumBasicで動かしてみました。

    Chromeがヘッドレスモードに対応した頃、Seleniumで操作した…

  3. Office関連

    「Excel VBAでラクラク Win64 APIプログラミング」(大村あつし著)レビュー

    当ブログでも以前書評を書いた「Excel VBAの神様 ボクの人生を変…

  4. Office関連

    「文書のスタイル」を設定するWordマクロ

    Wordのオプション画面 → 文章校正 → Word のスペル チェッ…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP