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 2013 アイコン一覧(G)

    ・Office 2013 アイコン一覧 NUM…

  2. Office関連

    OneNoteの指定したセクションをページごとに指定した形式で出力するマクロ

    今回はOneNoteの指定したセクションをページごとに指定した形式で出…

  3. Office関連

    Faviconをダウンロードするマクロ

    WebサイトからFaviconを抜き出すAPIがあったので早速使ってみ…

  4. Office アドイン

    [Officeアドイン]マニフェストファイルをデバッグする方法

    Office アドイン本体はF12ツール等を使ってデバッグすることがで…

  5. Office関連

    文字列を横方向に移動するWordマクロ(WordBasic編)

    いつもお世話になっているWord MVPの新田さんが、まるでカニの動き…

  6. Office関連

    [リボン・カスタマイズ]カスタムタブを共有する。

    ※ 2015/2/18 コードに一部誤りがあったので修正しました。…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP