EXCEL VBAで・・・。
テキストボックス34に入力した値を、ExcelのA列の値より検索し
その隣の値をテキストボックス4に表示させる、と言う処理をしています。
検索時に検索データが見当たらない場合、メッセージボックスを表示し、
更に、テキストボックス34のデータを消去→テキストボックス34にフォーカス移動
させたいのです。
下記のコードですと、メッセージボックス表示と
テキストボックス34のデータ消去までは出来るのですが
フォーカス移動してくれません。
イベントをexitにしている理由は特にないのですが、changeを使うと、
テキストボックス34に1文字入力された時点でメッセージボックスが表示されたり、
1文字でも一致するデータが順に表示されてしまいます。
(テキストボックス34に入力するデータの文字数は3文字固定です。)
何か良いお知恵がありましたら、お教え下さい。
-----------------------------------------------------------
Private Sub Textbox34_exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim Result As Variant
Set Result = Range("A:A").Find(what:=TextBox34.Text, MatchCase:=True, matchbyte:=True)
If Result Is Nothing Then
MsgBox ("入力されたコードは登録されていません。")
TextBox34.Text = ""
TextBox34.SetFocus
Else
Range("A:A").Find(what:=TextBox34.Text, MatchCase:=True, matchbyte:=True).Activate
ActiveCell.Offset(0, 1).Select
TextBox4.Text = ActiveCell.Value
End If
End Sub
お礼
早速ご回答ありがとうございます。 私のやり方が悪いのか、うまく動きませんでした。 もしお時間よろしいようでしたら、 宣言方法、省略部分を教えていただけたら幸いです・・・。 まだまだ初心者なのでご容赦ください。