Softex CelwareTech Blog
VSTO Officeアドイン2026-05-21

VSTO Ribbon XMLで既存のOfficeタブへボタンを追加する

VSTOアドインのリボンボタンを新規タブではなく、開発タブや数式タブなど既存Officeタブへ追加するidMsoの使い方を紹介します。

VSTORibbon XMLidMsoExcelアドインOffice開発

はじめに

VSTOアドインでボタンを追加するとき、毎回専用タブを作るとExcelのリボンがすぐに混雑します。

機能が1つか2つだけなら、新しいタブを増やすより、既存の「開発」「数式」「データ」などのタブへ自分のグループを追加した方が自然です。

この記事では、Ribbon XMLidを使った専用タブから、idMsoを使った既存タブ追加へ切り替える方法を紹介します。

使う場面

  • Excelアドインのボタンが1つだけ
  • 専用タブを増やすほどの機能数ではない
  • 既存の「開発」タブや「数式」タブの中へ自然に置きたい
  • リボンUIを整理して、利用者が迷わないようにしたい

before / after

変更の中心は、<tab id="..."><tab idMso="...">へ変えることです。

Ribbon XML before / after
xml
コードを読み込み中...

グループやボタン、onActionのコールバックはそのまま使えます。

主なidMso

| idMso | タブ | |---|---| | TabHome | ホーム | | TabInsert | 挿入 | | TabFormulas | 数式 | | TabData | データ | | TabReview | 校閲 | | TabView | 表示 | | TabDeveloper | 開発 |

開発タブは環境によって非表示の場合があります。常に見せたい機能なら、TabFormulasTabDataなどの常設タブを選ぶ方が安全です。

実装時の注意点

  • Ribbon XMLは.csprojEmbeddedResourceとして登録します。
  • IRibbonExtensibilityGetCustomUIでXML文字列を返します。
  • onActionのメソッドはvoid Method(Office.IRibbonControl control)の形にします。
  • リボンXMLを変更しただけでは、インストール済みアドインにすぐ反映されない場合があります。再発行・再インストールを確認します。
  • 既存タブ内での位置を指定したい場合は、insertAfterMsoなども検討します。

このテクニックを使っているアプリ

このノウハウは、配布アプリ「階層化フォーム (IKI-Kaiso VSTO版)」で実装・確認しています。

まとめ

VSTOのリボンボタンは、必ず専用タブを作る必要はありません。

idMsoを使うと、Office標準の既存タブへ自分のグループを追加できます。機能数が少ないアドインでは、利用者にとっても自然で見つけやすい配置になります。

この技術で業務改善しませんか?

Excel VBA・GAS・Webアプリで業務の自動化ツールを開発しています。 「こんなことできる?」というご相談だけでもお気軽にどうぞ。

無料相談はこちら →