実務向けUI部品ライブラリの基本
Excel VBAで「業務用フォームを作るときに毎回同じUI部品を作るのが面倒」「標準化された部品を使いたい」といった場面では UI部品ライブラリ(雛形集) を持っておくと便利です。
初心者向けに、よく使うUI部品のコード例やテンプレートをかみ砕いて説明します。
基本の考え方
- UI部品ライブラリとは?
よく使うフォーム部品(ボタン、入力欄、リスト、チェックボックスなど)をテンプレート化しておき、業務用フォームに組み込めるようにしたもの。 - メリット:
- 毎回ゼロから作らなくて済む
- 見た目や操作性を統一できる
- 実務でよく使う「検索」「登録」「編集」などを簡単に再利用できる
テンプレ1:必須入力チェック付きテキストボックス
Private Function ValidateTextBox(tb As MSForms.TextBox, fieldName As String) As Boolean
If tb.Value = "" Then
MsgBox fieldName & " を入力してください"
ValidateTextBox = False
Else
ValidateTextBox = True
End If
End Function
VB- 使い方:
If Not ValidateTextBox(TextBox1, "氏名") Then Exit Sub - ポイント:
- 必須入力チェックを共通化。
- 複数のTextBoxで使い回せる。
テンプレ2:検索用コンボボックス(初期化処理)
Private Sub InitComboBox(cb As MSForms.ComboBox, ws As Worksheet, col As Long)
Dim lastRow As Long, i As Long
cb.Clear
lastRow = ws.Cells(ws.Rows.Count, col).End(xlUp).Row
For i = 2 To lastRow
cb.AddItem ws.Cells(i, col).Value
Next i
End Sub
VB- 使い方:
InitComboBox ComboBox1, Worksheets("Master"), 1 - ポイント:
- シートのデータをコンボボックスに流し込む。
- マスタ選択UIを簡単に作れる。
テンプレ3:一覧表示用ListBox(複数列対応)
Private Sub InitListBox(lb As MSForms.ListBox, ws As Worksheet, startCol As Long, endCol As Long)
Dim lastRow As Long, i As Long, j As Long
lb.Clear
lb.ColumnCount = endCol - startCol + 1
lastRow = ws.Cells(ws.Rows.Count, startCol).End(xlUp).Row
For i = 2 To lastRow
lb.AddItem ws.Cells(i, startCol).Value
For j = 1 To lb.ColumnCount - 1
lb.List(lb.ListCount - 1, j) = ws.Cells(i, startCol + j).Value
Next j
Next i
End Sub
VB- 使い方:
InitListBox ListBox1, Worksheets("Data"), 1, 3 - ポイント:
- 複数列のデータをListBoxに表示。
- 一覧画面を簡単に作れる。
テンプレ4:チェックボックスでオプション設定
Private Function GetOptionValue(cb As MSForms.CheckBox) As String
If cb.Value = True Then
GetOptionValue = "有効"
Else
GetOptionValue = "無効"
End If
End Function
VB- 使い方:
MsgBox "オプション設定: " & GetOptionValue(CheckBox1) - ポイント:
- チェックボックスの状態を文字列化。
- 設定画面でよく使う。
テンプレ5:共通「保存ボタン」処理
Private Sub SaveButton_Click()
If Not ValidateTextBox(TextBox1, "氏名") Then Exit Sub
If Not ValidateTextBox(TextBox2, "年齢") Then Exit Sub
Dim ws As Worksheet: Set ws = Worksheets("Data")
Dim lastRow As Long: lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
ws.Cells(lastRow + 1, 1).Value = TextBox1.Value
ws.Cells(lastRow + 1, 2).Value = TextBox2.Value
MsgBox "保存しました!"
End Sub
VB- ポイント:
- 入力チェックと保存処理をまとめた共通ボタン。
- 実務で最もよく使うパターン。
例題で練習
'例1:必須入力チェック付きテキストボックス
'例2:検索用コンボボックス
'例3:一覧表示用ListBox
'例4:チェックボックスでオプション設定
'例5:共通保存ボタン処理
VB初心者向けポイント
- UI部品を関数化して再利用 → 同じ処理を何度も書かなくて済む。
- シートデータをUIに流し込む → コンボボックスやリストで選択肢を作れる。
- 入力チェックを共通化 → 必須項目の確認を簡単に。
- 保存処理をテンプレ化 → 実務でよく使う「登録」機能をすぐ作れる。
- UI部品ライブラリを持つと効率的 → 開発スピードが大幅に上がる。
👉 この「実務向けUI部品ライブラリテンプレ」を覚えておけば、Excel VBAで 業務用フォームを効率的に作成し、標準化されたUI部品を再利用できる ようになります。

