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テンプレート

    Wordで自作のテンプレートを利用して文書を作成するとき、2007以降…

  2. Office関連

    Excel 2013 新関数一覧

    「関数一覧(Excel 2010)」と「関数一覧(Excel 2013…

  3. Office関連

    スライドショーをループ再生設定するPowerPointマクロ

    PowerPointでスライドショーを作成するとき、投影した後流しっぱ…

  4. Office関連

    住所から郵便番号を取得するVBAマクロ

    「住所から郵便番号 VBA」といったキーワード検索でのアクセスがあった…

  5. Office関連

    テスト用の文字列を挿入するWordマクロ

    文字列操作を行うマクロを書いているとき、テスト用に「あいうえおかきくけ…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP