[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ユーザーフォームでの入力チェックのやり方・・』(ヒロ)
WinXP EXCEL2000
いつもお世話になっております。 過去ログ探してみたのですが、見つけられなかったので、 リンク先などでもかまいませんので、教えていただけますでしょうか?
ユーザーフォームを使って、データの入力をするようにしたいのですが、 テキストボックスなどに入力された値をチェックして、 チェックがかかったら、再入力をさせたいのです。
チェックするタイミングですが、別のテキストボックスなどに移動する際 (ENTERや別テキストボックスのクリックなど)に、チェックをかけたいのです。
よくわからないので、こんな風にしてみたのですが、 チェックの後、同じテキストボックスにフォーカスすることが出来ません。 どうしたらいいのでしょうか?
Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) If Textbox1 = "" Then MsgBox ("テキストボックス1を入力してください") Textbox1.SetFocus End If End Sub
Exitイベントでのエラーチェックは、以下のようにするのですが・・・。
Private Sub Textbox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) With TextBox1 If .Text = "" Then MsgBox ("テキストボックス1を入力してください") Cancel = True End If End With End Sub
これで御希望の動作にはなりますが、Msgboxでのエラーメッセージの表示は、 エラーがはっきりしますが、面倒なところもあるんですよ!! (ユーザーフォームの閉じるボタンのクリックでもTextbox1が空白だとエラーメッセージが 表示される等)
私ならエラーメッセージ表示専用にラベルを用意し、そこにエラーメッセージを表示させますが・・・。
検討してみてください。
尚、Textbox1 = "" ではなく、きちんとプロパティまで記述することを お勧めします。思わぬ不具合に遭遇しなくて済みますから・・・。
ichinose
なるほど、Exitイベントの処理は、このようにやるのですね^^ ありがとうございます。 思い通りの処理になりました。
終了時のエラーメッセージ・・・でますね^^; ラベルを用意することにします。
ありがとうございました。(ヒロ)
あ、何度もすみません。
Exitイベントが先に実行されてしまうと、終了ボタンが押されたのか、 Enterキーが押されたのか、はたまた、別テキストボックスが選択されたのか、 どのように判断したらいいのでしょうか?
フォームは、閉じるボタンは無効にしています。 終了するには、コマンドボタンを使用するようにしています。 コマンドボタンが押された場合に、エラーメッセージを表示させないようにするには・・・・
初歩的な質問ばかりですみません、宜しくお願いします。(ヒロ)
コマンドボタンを押されてから、Unloadされるまでの間に、フラグを立てることは出来るのですね^^;
よく考えもせず、質問してしまいました。すみませんm(__)m
解決しました。
これからも宜しくお願いします。(ヒロ)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.