|
▼ken さん:
おはようございます。
>前回は有り難う御座いました。
>SetFocusを使ってみましたが
>フォーカスが点滅しません。
SetFocusを使ってみましたが、
今度は、マルチページ内のテキストボックスにはフォーカスされなくなりましたが、
本来フォーカスが当たるべきテキストボックスにもフォーカスされません。
というように以前と表示に変化があったことを
わかるように記述してください。
>他に良い方法はありますでしょうか?
>>▼ken さん:
>>こんばんは。
>>>ユーザーフォーム内にテキストボックスとマルチページを配置して
>>>ユーザーフォームを開いたときにのマルチページのページをセル入力により
>>>区別して開く様にしましたするとテキストボックスのフォーカスが最初にならず
>>>マルチページのテキストボックスにフォーカスがかかってしまいます。
>>>この場合どのようにしたら良いのでしょうか?
>>>プロパティを変えてみたりTextbox1.Activateと記入しても変わりません。
ユーザーフォームがモーダレスモードで表示されていませんか?
ならば、
UserForm_Initialize()
というイベントプロシジャーに処理を記述するのではなく、
UserForm_Activate に記述してみてみてください。
尚、UserForm_Activate イベントプロシャーに記述するのは、
Textbox1.Setfocusのみで
それ以前に行う Multipage1.value=xxx
等の処理は そのままUserForm_Initialize内の記述でも結構です。
Private Sub UserForm_Activate()
TextBox1.SetFocus
End Sub
Private Sub UserForm_Initialize()
With MultiPage1
If Val(Cells(1, 1).Value) >= 0 And _
Val(Cells(1, 1).Value) <= 3 Then
.Value = Val(Cells(1, 1).Value)
End If
End With
End Sub
尚、UserForm_Initialize内のコードは一例です。
以下の記述は、私は今までにも何度か同様の内容を記述したことがありますが・・。
ここに記述することに情報漏れがあれば、私とkenさんでは、
見ているブックが、コードが違うものを見ながらあれこれ言っているのと
同じです。
kenさんと私(閲覧者)が同じものを見られるような記述をしてください。
そのためには、kenさんが体験したうまくいかない内容を誰でもその記述どおりに
ブックを作成すれば、コードを実行すれば再現できる再現手順書が必要です。
この記述、結構手間が掛かりますが、VBAを本気でやる気があるならば、
これをすることがkenさんにとって、VBA上達の決して無駄にはなりません
(↑これに関してきっぱり)。
是非、次回からは上記のこと検討してみてください。
尚、これでもうまくいかない場合は、投稿は明日夕方になってしまいます。
(その場合は、どなたかよろしくお願いします)
|
|