こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

EXCEL VBA のテキストボックスで

EXCEL VBAのテキストボックスでボックス内にテキストを入力
しなければカーソルの移動が出来ないようにできますか?
宜しくお願いします。

投稿日時 - 2007-09-04 16:45:48

QNo.3314909

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

Cancel = True を使うとか。

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  If Len(TextBox1.Text) = 0 Then Cancel = True
End Sub

投稿日時 - 2007-09-04 19:25:03

お礼

ありがとうございました。
なんとか思っていた通りなりそうです。

投稿日時 - 2007-09-05 01:21:22

ANo.2

#01です

もう一つはExitイベントを使用する方法です。テキストボックスに何も入力されていない場合は、強制的にテクストボックスにフォーカスしなおします

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox1.Text) = 0 Then
 MsgBox "入力必須"
 TextBox1.SetFocus
End If
End Sub

投稿日時 - 2007-09-04 17:17:04

お礼

ありがとうございました。
参考になりました。

投稿日時 - 2007-09-05 01:22:30

ANo.1

ユーザーフォーム上のテキストボックスですか? それともシート上のフォームでしょうか? ユーザーフォームと想定して回答します

まず、ユーザーフォームをShowする前に、入力させたいテキストボックス以外の全てのコンポーネント(ボタン、リストボックスなど)のプロパティで
 CommandButton1.TabStop = False
のようにタブキーによるフォーカス移動を禁止する方法があります。
(テキストボックスに何らかの値が入力された時点で、プロパティを True に戻します)

ただしこの方法ではマウスで他のボタンをクリックすることは禁止できません。マウスでの操作も禁止するなら
 CommndButton1.Enabled = False
で、ボタン自体を効かない状態にしておく必要があります。

投稿日時 - 2007-09-04 17:11:58

あなたにオススメの質問