Excel VBA 逆引き集 | 実務向けUI部品ライブラリ

Excel VBA
スポンサーリンク

実務向け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部品を再利用できる ようになります。

タイトルとURLをコピーしました