VBAマクロを起動するにはさまざまな方法がありますが、特にVBAをアドインとして使用する場合には、クイックアクセスツールバーを使うのがVBAアセットのスタイルです。
アドインで使えるマクロ起動方法
WordのSTARTUPフォルダに入れて自動起動するアドイン(グローバルテンプレート)を前提とした場合、ユーザー(または自分自身)がマクロを起動する方法には、以下の5つがあります。
- クイックアクセスツールバー (QAT)
- リボンメニュー
- 右クリックメニュー(コンテキストメニュー)
- ショートカットキー
- イベント(自動実行)
これ以外に、リボンの「マクロ」メニューから起動するプロシージャを選択する方法もありますが、操作が面倒なのでここでは除外します。
起動方法 比較一覧表
各方法の特性と問題点を一覧表にまとめてみました。
| 起動方法 | 特性(メリット) | 問題点(デメリット) |
| クイックアクセスツールバー (QAT) | ・常時表示: どのタブでも常に表示され、アクセス性が最強。 ・マウス操作: マウス操作の流れで即座にクリックできる。 ・視認性: アイコンで視覚的に識別できる。 | ・OS間非互換: Windowsアドインで組み込んだQAT設定は、Macでは機能しません。 ・ユーザーによる削除: ユーザーが誤ってボタンを削除できてしまう。 ・煩雑化: 複数のアドインがボタンを追加すると、QATがすぐに一杯になる。 |
| リボンメニュー | ・公式なUI: アドイン専用のタブやグループに機能を体系的に配置でき、最も「製品」らしく見える。 ・表現力: アイコン、ラベル、説明文を自由に設定でき、分かりやすい。 ・OS間互換: XMLで正しく記述すれば、Windows/Mac両対応が可能。 | ・アクセス性: リボンタブを切り替えると隠れてしまう(常時表示できない)。 ・実装難易度: 作成・編集にXML (RibbonX) の知識が必須で、最も手間がかかる。 |
| 右クリックメニュー | ・文脈依存: 「選択中のテキストに対し…」など、操作対象の直近で呼び出せる。 ・操作効率: マウスの移動距離が最小で済む。 ・省スペース: 普段は隠れており、画面を一切圧迫しない。 | ・発見性: ユーザーが右クリックするまで、機能の存在に気づかれにくい。 ・肥大化: 機能を追加しすぎると、標準のメニューが長くなり邪魔になる。 ・実装難易度: XMLまたはVBA ( CommandBars) での実装知識が必要。 |
| ショートカットキー | ・最速: 慣れたユーザーにとっては、キーボードから手を離さず最速で実行できる。 ・省スペース: UI(画面)を一切消費しない。 ・操作の継続: タイピング作業を中断しない。 | ・暗記必須: ユーザーがキーの組み合わせを覚えない限り、使えない。 ・競合(コンフリクト): Word標準やOS、他のアドインのキーと衝突する危険性が高い。 ・発見性: 機能の存在も、割り当てられたキーも、最も気づかれにくい。 |
| イベント (自動実行) | ・自動化: ユーザーの操作が不要(AutoExec: Word起動時など)。・確実性: アドインの初期設定や環境チェックなどを、ユーザーの操作に関わらず確実に実行できる。 | ・制御不能: ユーザーの意図しないタイミングで実行されるため、UI操作には絶対に使えない。 ・多用厳禁: 処理が重いと、Wordの起動が目に見えて遅くなる。 ・デバッグ: 問題発生時の原因切り分けが難しい場合がある。 |
なぜQATはWindowsとMacで互換性がないのか?
QATの最大の問題点は「非互換性」です。WindowsのWordアドインにQAT設定を組み込んでも、そのアドインをMacに持っていくとQATボタンは表示されません。
これは、Windows版とMac版のOfficeが、内部的に異なる設計になっているためです。アドインに保存された「Windows版Office向けのQAT設定」を、Mac版Officeが正しく解釈できないのです。
リボンや右クリックメニューの実装方法は?
一方、リボンや右クリックメニューの設定が難しい原因は、その実装方法にあります。
1. VBA (CommandBars) での実装
Office 2003以前の古い仕組み(Application.CommandBars)が、互換性のためにVBAに残されています。
- 右クリックメニュー: この古い仕組みを使い、VBAコードだけで比較的簡単にボタンを追加できます。
- リボン: この方法でリボンを操作することは、事実上できません。
「VA公用文」も、この方法で右クリックメニューを実装したことがありますが、動作が不安定(メニューが表示されなかったり、重複してしまったりする)だったため、使用を中止しました。
2. XML (RibbonX) での実装
Office 2007以降の標準的な方法で、アドインファイル(.dotm)自体にcustomUI.xmlという定義ファイルを埋め込みます。
- リボン: リボンをカスタマイズする唯一の正規な方法です。タブ、グループ、ボタンの配置をXMLで厳密に定義します。
- 右クリックメニュー: XMLでも定義可能で、リボンと一貫性を持たせた管理ができるため、現代的なアドイン開発ではこちらが推奨されます。
XMLをアドインに組み込むためには「Custom UI Editor」などの外部ツールを使う必要があり、VBAアセットでは試したことがありません。
結論
アドインのVBAマクロの起動には、クイックアクセスツールバーを使うのが最も簡単かつ確実な方法です。問題はMacとの互換性ですが、ユーザーで設定しなおしてもらうことで対応してもらいます。


コメント