[[20080722185201]] 『ユーザーフォームでの入力チェックのやり方・・』(ヒロ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ユーザーフォームでの入力チェックのやり方・・』(ヒロ)

 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.