ユーザーフォームのテキストボックスが空白だったらメッセージを表示する方法をご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
ユーザーフォーム作成
ユーザーフォームを作成します。
テキストボックスのどれか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秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク