Excel アドインを「リボン追加」で UI 化する方法
アドイン (.xlam) を作ったら、リボンに専用タブやボタンを追加して、ユーザーがワンクリックで呼び出せるようにすると便利です。
以下に VBA でのリボン UI 化の流れを解説します。
手順概要
1. アドインを保存
- すでに作成した
.xlamファイルを準備 - このファイルに「リボン XML」を埋め込みます
2. リボン XML を追加
Excel のリボンは CustomUI XML で定義します。
これをアドインに埋め込むことで、専用タブやボタンを表示できます。
例:リボン XML
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="tabGoldenPatterns" label="黄金パターン">
<group id="grpSales" label="売上表">
<button id="btnSalesTax" label="税込計算" onAction="RunSalesTax" />
<button id="btnSalesSummary" label="月別集計" onAction="RunSalesSummary" />
</group>
<group id="grpAttendance" label="勤怠表">
<button id="btnWorkHours" label="勤務時間集計" onAction="RunAttendanceSummary" />
</group>
<group id="grpStock" label="在庫表">
<button id="btnStockCheck" label="在庫チェック" onAction="RunStockSummary" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
XSL👉 ポイント
- tab → 新しいタブを追加
- group → タブ内のグループ
- button → ボタンを配置、
onActionに VBA マクロ名を指定
3. VBA 側でマクロを用意
XML の onAction に対応するマクロを作成します。
' 売上表:税込計算
Sub RunSalesTax(control As IRibbonControl)
Call AddTaxColumn(GetTableRange(Range("A1")), 0.1)
End Sub
' 売上表:月別集計
Sub RunSalesSummary(control As IRibbonControl)
Call MonthlySummary(GetTableRange(Range("A1")), Range("H2"))
End Sub
' 勤怠表:勤務時間集計
Sub RunAttendanceSummary(control As IRibbonControl)
Call AddWorkHoursSummary(GetTableRange(Range("A1")))
End Sub
' 在庫表:在庫チェック
Sub RunStockSummary(control As IRibbonControl)
Call MarkNegativeStock(GetTableRange(Range("A1")))
End Sub
VB4. アドインに XML を埋め込む
- Office Custom UI Editor というツールを使うと簡単
.xlamファイルを開いて XML を貼り付け- 保存すると、Excel のリボンに反映されます
✅ まとめ
- CustomUI XML でリボンを定義
- onAction に VBA マクロを紐付け
- Office Custom UI Editor を使って
.xlamに埋め込む - Excel を再起動すると「黄金パターン」タブが追加され、ワンクリックで処理が実行可能
💡 これで「黄金100パターン」を リボン UI 化 して、誰でも直感的に使えるようになります。


