shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【VBA】リボン操作を自動化!CommandBars.ExecuteMsoの基本

Officeアプリを操作する際、「リボンのボタンをクリックする処理を自動化したい」と思ったことはありませんか? そんなときに役立つのが CommandBars.ExecuteMso です。このメソッドを使えば、ExcelやWordの標準コマンドを呼び出し、リボン操作も自動化できます。

今回は、CommandBars.ExecuteMsoの基本的な使い方を紹介します。

内容:

確認のWordは「Microsoft® Excel® for Microsoft 365 MSO」「Microsoft® Word for Microsoft 365 MSO」 (いずれもバージョン 2510)です。

CommandBars.ExecuteMsoとは?

CommandBars.ExecuteMso は、Officeのリボンにある既存のコマンドをVBAから実行するためのメソッドです。例えば、Excelの表示で「セルにフォーカス」を適用したり、Wordで「ナビゲーション ウィンドウ」を表示したりする操作をマクロで実現できます。

Excelのリボン画面の事例です

CommandBars.ExecuteMso で操作対象となるリボン(一例)

基本構文は以下の通りです。

CommandBars.ExecuteMso "コマンド名"

ここで指定する「コマンド名」は、Officeが内部で使用しているMso(Microsoft Office)コマンドの名前です。

さらに、作成したマクロのをショートカットキーに登録すれば、日常の作業環境をより快適にできます。

基本的な活用例

Excelで「セルにフォーカス」を適用

「ナビゲーション ウィンドウ」を表示する

Sub セルにフォーカス()

    CommandBars.ExecuteMso "FocusActiveCell"

End Sub

Wordで「ナビゲーション ウィンドウ」を適用

「ナビゲーション ウィンドウ」を表示する

Sub ナビゲーション ウィンドウの表示()

    CommandBars.ExecuteMso "NavigationPaneShowHide"

End Sub

Mso(Microsoft Office)コマンドの調べ方

Mso(Microsoft Office)コマンドについて、Microsoft 365での公式の確認方法は不明でした。自分が必要な機能については次のように「リボンのユーザー設定」の画面で、対象のメニューにカーソルをあわせて確認する方法でできました。

下図では、セルにフォーカスが「FocusActiveCell」で示されており、前述のコマンド名に利用しています。

「リボンのユーザー設定」の画面から確認しています

Msoコマンドの調べ方(セルにフォーカスのIDを調べている事例)

以下はEXCEL2007等の情報のため、最新のMso(Microsoft Office)コマンドがないものがあります。

learn.microsoft.com

 

参考情報

Wordの標準機能で、独自のショートカットキーを作成する方法

Wordは「リボンのユーザー設定」で独自のショートカットキーが作成できます。

shikumika.org

Excelの標準機能で、独自のショートカットキーを作成する方法

「クイックアクセスツールバー」を利用すると「ALT+数字」の独自ショートカットキーを作成できます。

shikumika.org

セルにフォーカスが利用できるバージョンについて

現時点で利用できるExcelはMicrosoft 365で、Windowsの場合はバージョン2410(ビルド18118.20000)以降、Macの場合はバージョン16.91(ビルド24109300)以降(バージョン2503)となっていました。

shikumika.org

 

以上、VBAでリボン操作を自動化!CommandBars.ExecuteMsoの基本でした。