スポンサーリンク

【VBA応用】ユーザーフォームやInputBoxと組み合わせてテーブルを登録フォーム化する方法

Excelのテーブル(ListObject)は、単にデータを整理するだけでなく、VBAと組み合わせることで「簡易データベース」 として活用できます。
特にユーザーフォームやInputBoxを利用すれば、入力フォームを作ってデータを登録 する仕組みを簡単に作成できます。

本記事では、テーブルを「登録フォーム化」する方法を解説します。


スポンサーリンク

1. InputBoxを使ってシンプルに登録する方法

まずは簡単な例として、InputBoxで入力を受け取り、その内容をテーブルに自動登録 する方法です。

サンプルコード

Sub AddDataWithInputBox()
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim newRow As ListRow
    Dim nameVal As String, ageVal As String
    
    'シートとテーブルを指定
    Set ws = ThisWorkbook.Sheets("Database")
    Set tbl = ws.ListObjects("tblDatabase")
    
    'InputBoxでユーザー入力を受け取る
    nameVal = InputBox("名前を入力してください")
    If nameVal = "" Then Exit Sub '入力キャンセルで終了
    
    ageVal = InputBox("年齢を入力してください")
    If ageVal = "" Then Exit Sub
    
    '新しい行を追加
    Set newRow = tbl.ListRows.Add
    
    '値を登録(列順に対応)
    newRow.Range(1, 1).Value = nameVal
    newRow.Range(1, 2).Value = ageVal
    
    MsgBox "データを登録しました。"
End Sub

ポイント

  • InputBox を使うと、簡単な入力フォームを即座に実装可能。
  • ListRows.Add で新しい行を追加し、値を格納する。
  • 複数項目がある場合は、列の順番と合わせて入力させる。

スポンサーリンク

2. ユーザーフォームを使った本格的な入力フォーム

InputBoxでは1項目ずつ入力する必要があり不便なので、実務ではユーザーフォーム(UserForm) を使う方法が一般的です。

手順概要

  1. VBAエディタで「挿入 → UserForm」を作成
  2. 「テキストボックス」や「コンボボックス」を配置(例:名前・年齢・部署など)
  3. 「登録ボタン」を配置し、クリック時にテーブルへ書き込み処理を実行

登録ボタンクリックの例

Private Sub btnRegister_Click()
    Dim ws As Worksheet
    Dim tbl As ListObject
    Dim newRow As ListRow
    
    Set ws = ThisWorkbook.Sheets("Database")
    Set tbl = ws.ListObjects("tblDatabase")
    
    '新しい行を追加
    Set newRow = tbl.ListRows.Add
    
    'フォームの値を転記
    newRow.Range(1, 1).Value = Me.txtName.Value
    newRow.Range(1, 2).Value = Me.txtAge.Value
    newRow.Range(1, 3).Value = Me.cmbDept.Value
    
    MsgBox "ユーザーフォームからデータを登録しました。"
    
    '入力欄をクリア
    Me.txtName.Value = ""
    Me.txtAge.Value = ""
    Me.cmbDept.Value = ""
End Sub

スポンサーリンク

3. フォーム化のメリット

  • 入力ミスを防止(プルダウンや数値制限が可能)
  • 見た目がわかりやすい(エクセル初心者でも操作しやすい)
  • 業務システムっぽい運用が可能(Excelを簡易データベースにできる)

スポンサーリンク

4. 応用アイデア

  • 条件付き書式と組み合わせて入力後に強調表示
  • 登録前に確認ダイアログを表示(OKなら追加、キャンセルなら終了)
  • ボタン配置でワンクリック登録

5. まとめ

  • InputBox:すぐに導入できるシンプルな入力方法。
  • ユーザーフォーム:実務向けの本格的な登録フォームを作れる。
  • ListRows.Add を使えば、ユーザー入力をテーブルに自動で保存できる。

Excelを「ただの表」から「簡易データベース」へ進化させたいとき、ユーザーフォームやInputBoxを活用した登録フォーム化は非常に有効です。

コメント

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