Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


11605 / 13646 ツリー ←次へ | 前へ→

【15193】SetFocusでフォーカスされません。 tomo 04/6/17(木) 12:57 質問[未読]
【15195】Re:SetFocusでフォーカスされません。 IROC 04/6/17(木) 13:07 回答[未読]
【15196】Re:SetFocusでフォーカスされません。 つん 04/6/17(木) 13:09 回答[未読]
【15200】Re:SetFocusでフォーカスされません。 tomo 04/6/17(木) 13:24 お礼[未読]

【15193】SetFocusでフォーカスされません。
質問  tomo  - 04/6/17(木) 12:57 -

引用なし
パスワード
   はじめて質問させてもらいます。よろしくお願いします。
見積書を作成しています。
見積番号(TextBox1)が入力されるまでは、
他の項目が入力できないようにしたいと思っています。
(できればフォーカスも移らないように)
そこで以下のようにコードを入力したのですが、

Private Sub TextBox1_Exit
  If TextBox1.Text = "" Then
    MsgBox "見積番号が入力されていません。"
    TextBox1.SetFocus
  End If
End Sub

TextBox1に何も入力せずに、Tabキーや他をクリックすると、
メッセージボックスはちゃんと表示されるのですが、
フォーカスがTextBox1から他(TextBox2等)へ移ってしまいます。
TextBox1に何も入力されていないと、フォーカスがTextBox1から
移らないようにするためにはどうしたら良いでしょうか。
いい方法又は、代わりの方法がありましたら教えてください。
よろしくお願いします。

【15195】Re:SetFocusでフォーカスされません。
回答  IROC  - 04/6/17(木) 13:07 -

引用なし
パスワード
   TextBoxは、ユーザーフォーム上ですか? シート上ですか?

【15196】Re:SetFocusでフォーカスされません。
回答  つん E-MAIL  - 04/6/17(木) 13:09 -

引用なし
パスワード
   tomo さん、こんにちは

>はじめて質問させてもらいます。よろしくお願いします。
>見積書を作成しています。
>見積番号(TextBox1)が入力されるまでは、
>他の項目が入力できないようにしたいと思っています。
>(できればフォーカスも移らないように)
>そこで以下のようにコードを入力したのですが、
>
>Private Sub TextBox1_Exit
>  If TextBox1.Text = "" Then
>    MsgBox "見積番号が入力されていません。"
>    TextBox1.SetFocus
>  End If
>End Sub

テキストボックスはUserForm上ですかシート上ですか?
シート上ではExitイベントはないのでUserFormかな?
それだったら、

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
  If TextBox1.Text = "" Then
    MsgBox "見積番号が入力されていません。"
    Cancel = True
  End If
End Sub

これでOKだとは思うのですが・・・・
でも、これだと、TextBox1にフォーカスが有る状態でフォームを閉じても
イベントが発生してメッセージボックスが表示されてしまいますけどね。

【15200】Re:SetFocusでフォーカスされません。
お礼  tomo  - 04/6/17(木) 13:24 -

引用なし
パスワード
   IROCさん つんさん 質問に答えていただきありがとうございます。

>テキストボックスはUserForm上ですかシート上ですか?
>シート上ではExitイベントはないのでUserFormかな?

UserForm上です、説明不足ですいません。


>Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
>  If TextBox1.Text = "" Then
>    MsgBox "見積番号が入力されていません。"
>    Cancel = True
>  End If
>End Sub

ありがとうございます。早速試してみます。


>でも、これだと、TextBox1にフォーカスが有る状態でフォームを閉じても
>イベントが発生してメッセージボックスが表示されてしまいますけどね。

なるほど、何とか解決できるように色々やってみます。
ダメでしたら、また質問させてもらいます。

どうもありがとうございました。

11605 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free