ユーザーフォームのテキストボックスが空欄の時にメッセージを出す方法

メッセージ

スポンサーリンク


スポンサーリンク


スポンサーリンク

コマンドボタンの誤操作を防ぐために

ユーザーフォームでテキストボックスに入力後、コマンドボタンを押してワークシートに転記することが多いともいますが、作成者の意図と違う操作をされた時に、入力漏れがないようにテキストボックスが空欄の時にメッセージを出す方法をプログラムとして組んでおくと何かと便利です。

例えば、ユーザーフォームのTextBox1に文字や数字を入力してCommandButton1を押す、ワークシートの指定したセルに転記するようにしますが、もしTextBox1が空欄だった時にCommandButton1を押したてしまった場合に、メッセージを表示してセルへの転記を中止するようにします。

次のようにVBAコードを記述すると、未入力の時にメッセージ「商品名が未入力です」と表示されます。

Private Sub CommandButton1_Click()
If TextBox1.Value = “” Then
MsgBox “商品名が未入力です”
Else
Worksheets(“sheet1”).Range(“A1”).Value = TextBox1.Value
End If
End Sub

  1. コマンドボタン1が押されたら
  2. もし、テキストボックス1の値が空欄だった時
  3. メッセージを出す「商品名が未入力です」
  4. そうでない場合
  5. ワークシートの【シート1】のセル【A1】にテキストボックス1に入力された文字を転記する
  6. IFステートメントの終了

これだけです。

複数のテキストボックスが空欄の場合は

実際にユーザーフォームを使う時はテキストボックスが1つだけって事は少なく、複数のテキストボックスを配置してあり、ひとつでも空欄があったらメッセージを表示することが必要な場合もありますよね。

例えば、商品名・単価・個数などで、複数配置しますよね。

その場合は下記のように記述すれば大丈夫です。

Private Sub CommandButton1_Click()
If TextBox1.Value = “” Or TextBox2.Value = “” Or TextBox3.Value = “” Then
MsgBox “商品名・単価・個数が未入力です”
Else
Worksheets(“sheet1”).Range(“A1”).Value = TextBox1.Value
Worksheets(“sheet1”).Range(“B1”).Value = TextBox2.Value
Worksheets(“sheet1”).Range(“C1”).Value = TextBox3.Value
End If
End Sub

  1. コマンドボタン1が押されたら
  2. もし、テキストボックス1の値が空欄、またはテキストボックス2の値が空欄、またはテキストボックス3の値が空欄だった時
  3. メッセージを出す「商品名・単価・個数が未入力です」
  4. そうでない場合
  5. ワークシートの【シート1】のセル【A1】にテキストボックス1に入力された文字を転記する
  6. ワークシートの【シート1】のセル【B1】にテキストボックス2に入力された文字を転記する
  7. ワークシートの【シート1】のセル【C1】にテキストボックス3に入力された文字を転記する
  8. IFステートメントの終了

こうすると3つのTextBoxのうち、ひとつでも空欄があればメッセージが表示され、すべて入力していれば、TextBox1の文字はA1へTextBox2の文字はB1へTextBox3の文字はC1へそれぞれ転記されます。
意外と簡単でしょう。これを応用してメッセージ表示で「はい」「いいえ」を選べるようにもできるんですよ。

印刷実行ボタンを作った時に「印刷しますか?」と表示して選べるので便利ですよね

各コントロールまとめて転記シリーズ

ユーザーフォームを使うと配置したコントロール(テキストボックスやラベルなど)とセルとの間で値のやり取りが多くなります。

よく使うのでまとめてみました。

値の場所転記したい場所説明ページ
セルの値ラベル名VBAコード
セルの値テキストボックスの値VBAコード
セルの値コマンドボタンの表示名VBAコード
セルの値セルの値VBAコード
テキストボックス入力値セルの値VBAコード
波乗りアヒル
波乗りアヒル

成績表作成には知っておきたいExcel-VBAもくじ

ボウリングハンデキャップのつけ方
HDCPの種類はリーグのルールにより複雑に ボウリングの成績表(リーグ戦)で必ず必要になるのが、ハンデキャップ(HDCP)です。 ボウリングご予約の時に一番多く使われているのが、女性にだけハンデキャップをつけてあげることが多いですね。 だいだい何点ぐらいのハンデキャップが多いの?
ボウリングリーグ対戦表の数字を名前に自動変換する方法
リーグ戦の対戦表をエクセルで作る時、数字で表されている番号を名前に自動的に変換できると作業時間が短くなり効率的ですね。たった2つのエクセル関数を使うだけで、簡単にできるんです。今回の回戦数を入力するだけで一発変換完了。もちろんお客様にスケジュール対戦表として渡すことも簡単ですよ。
人数に応じてリーグ対戦表を自動選択する方法
複数の表があり、条件に合った表を選んで、さらにセルの値を選んで数字を名前に自動変換できると、とても便利なエクセルができますよね。ボウリングのリーグ対戦表も人数により表が異なるので、参加人数が決まったら、自動的に表を選んで対戦番号がこれも自動的に参加者名に変換されると便利で作業効率がアップして時間短縮になりますよ。
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?

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