VBA 複数テキストボックスが空欄時メッセージ表示 UserForm

VBA複数テキストボックスが空欄時メッセージ表示-アイキャッチ ExcelVBA

ユーザーフォームのテキストボックスが空白だったらメッセージを表示する方法をご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

ユーザーフォーム作成

ユーザーフォームを作成します。

テキストボックスのどれか1つでも入力されていない場合、
メッセージボックスを表示したいと思います。


 

Excelシート

A列~D列の1行目に、タイトル行を入れておきます。


 

マクロボタンを設置します。


 

以下コードを標準モジュール「Module1」に入力して、
ボタンをクリックしたときに、ユーザーフォームが開くようにします。


Sub ボタン1_Click()
    UserForm1.Show vbModeless
End Sub

 

マクロコードを「Module1」に入力した画面


 

マクロコードを入力

マクロコードを「UserForm1」に入力します。


Private Sub CommandButton1_Click()
'登録ボタンをクリックしたときの処理

 Dim LastRow As Long
 Dim ctrl As Control
 Dim Chk As Boolean
 
    Chk = False
 
    'ユーザーフォームのコントロールをループ
    For Each ctrl In Controls

        'テキストボックスだったら
        If InStr(ctrl.Name, "TextBox") <> 0 Then

            'テキストボックスが空欄だったら
            If ctrl.Value = "" Then
                    
                'フラグ立る
                Chk = True
            End If
        End If
    Next ctrl
    
    'テキストボックスが全部埋まっている場合
    If Chk = False Then
    
        With Worksheets("Sheet1")
            '最終行にプラス1
            LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
            
            'ユーザーフォームの内容をExcelに転記
            .Cells(LastRow, 1).Value = Me.TextBox1.Text
            .Cells(LastRow, 2).Value = Me.TextBox2.Text
            .Cells(LastRow, 3).Value = Me.TextBox3.Text
            .Cells(LastRow, 4).Value = Me.TextBox4.Text
        
            'Excelに転記後、テキストボックスを空にする
            Me.TextBox1.Text = ""
            Me.TextBox2.Text = ""
            Me.TextBox3.Text = ""
            Me.TextBox4.Text = ""
        End With
    
    'テキストボックスに未入力がある場合
    Else
        MsgBox "未入力のテキストボックスがあります"
    End If
    
End Sub

 

マクロコードを入力する場所「UserForm1」


 

動作

「登録」ボタンをクリックしたときに、テキストボックスに1つでも空がある場合、

メッセージボックスで「未入力のテキストボックスがあります」と表示します。


 

テキストボックスに未入力がない場合、

「登録」ボタンをクリックすると、ユーザーフォームの値がセルに反映されます。

(下図は「登録」ボタンをクリックする前の様子)


 

テキストボックスの値は、常に最終行に転記されます。

セルに反映した後、すべてのテキストボックスは空欄に戻ります。


 
 
この記事がお役に立ちますと幸いです。
 
・【ExcelVBA】ユーザーフォーム作成の事例まとめ
 

【VBAユーザーフォーム】何ができるの?:使用例34選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説