以下に 「UI 自動生成ツール(リボン連携版)」 を、実務でそのまま使える形でまとめます。
内容は以下の 3 点で構成されています。
構成
- リボン XML(customUI.xml)テンプレート
- リボン → VBA コールバックの接続コード(Ribbon コールバックモジュール)
- UI 自動生成ツール本体(前回の “コード自動注入版” と統合可能)
前提
- Excel を .xlsm / .xlsb 形式で保存
- 「ファイル → オプション → セキュリティセンター → VBA プロジェクト オブジェクトモデルへのアクセスを信頼する」を有効化
- Office Custom UI Editor(または Office RibbonX Editor)を使用してリボン XML を挿入します
① リボン XML(customUI.xml)
最小構成の 「UI 自動生成」タブ を作成し、
その中に「UI 選択ドロップダウン」と「生成ボタン」を配置したテンプレートです。
customUI.xml(コピーしてそのまま使える)
<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui">
<ribbon>
<tabs>
<tab id="tabUIBuilder" label="UI 自動生成">
<group id="grpUI" label="UI 作成ツール">
<dropDown id="ddlUIType" label="UI タイプ" getSelectedItemIndex="OnGetIndex" onAction="OnUISelect">
<item id="ui1" label="カレンダー入力" />
<item id="ui2" label="日付範囲ピッカー" />
<item id="ui3" label="プログレスバー" />
<item id="ui4" label="検索ダイアログ" />
<item id="ui5" label="ログイン画面" />
<item id="ui6" label="一覧 → 詳細画面" />
<item id="ui7" label="行編集フォーム(Add / Edit / Delete)" />
<item id="ui8" label="ドロップダウンつき一覧 UI" />
<item id="ui9" label="高機能検索フォーム(AND/OR)" />
</dropDown>
<button id="btnBuild" label="生成する" size="large"
onAction="OnBuildButtonClicked"
imageMso="HappyFace" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
VB② リボン → VBA コールバック 接続コード
標準モジュールに下記を作成します。
Module: modRibbonCallback
Option Explicit
Public SelectedIndex As Long
' Ribbon ドロップダウンの初期位置
Public Sub OnGetIndex(control As IRibbonControl, ByRef index)
index = SelectedIndex
End Sub
' リボンで UI 種類を選択時
Public Sub OnUISelect(control As IRibbonControl, id As String, index As Integer)
SelectedIndex = index
End Sub
' 「生成」ボタンクリック
Public Sub OnBuildButtonClicked(control As IRibbonControl)
Dim uiType As String
Select Case SelectedIndex
Case 0: uiType = "カレンダー入力"
Case 1: uiType = "日付範囲ピッカー"
Case 2: uiType = "プログレスバー"
Case 3: uiType = "検索ダイアログ"
Case 4: uiType = "ログイン画面"
Case 5: uiType = "一覧 → 詳細画面"
Case 6: uiType = "行編集フォーム(Add/Edit/Delete)"
Case 7: uiType = "ドロップダウンつき一覧 UI"
Case 8: uiType = "高機能検索フォーム(AND/OR)"
Case Else
MsgBox "UI タイプが選択されていません", vbExclamation
Exit Sub
End Select
' 呼び出し(自動生成ツール本体)
Call BuildUI_WithCode(uiType)
End Sub
VB③ UI 自動生成ツール本体(前回コードと完全互換)
あなたが前回組み立てた
「コード自動注入版(CreateNewForm / AddControlToForm / InjectFormCode / BuildUI_WithCode …)」
そのまま利用できます。
リボンのボタンで呼び出されるのは以下の一行だけです。
Call BuildUI_WithCode(uiType)
VBそのため、ユーザーは:
Excel 上のリボン
- タブ「UI 自動生成」を開く
- ドロップダウンで UI タイプを選択
- 「生成する」ボタンをクリック
👉 自動で UserForm が生成され、コードも自動注入される
補足:より実務的に使うには
必要であれば下記追加が可能です。
- 最近使った UI タイプを記憶
- リボン側で「生成されたフォームを開く」ボタン追加
- リボン上で「テンプレート保存/読み込み」
- コントロールのフォント・配色のテーマ化
- 生成済み UI の自動整列ツール
- CRUD(行編集)UI のデータ保存先を選択可能にする
いずれも拡張可能です。

