|
>VBEの画面からツールバーのユーザーフォームの実行を押して動かすと、
>思った通りに動いてくれるのですが、
>なぜか、普通に作成したコマンドボタンから、実行させると、
>まったく、効かないのです。
そのコマンドボタンのコードを示してもらわないと?ですが、
想像するによくある話としてモードレスで表示しているとか。
以下はモードレスの場合の話です。
Cancel = Trueはやめて、
OnTimeメソッドを用いイベントプロシージャが完了したあとで
SetFocusメソッドを発行する方法があります。
'省略・・・
If MyD.exists(品番txt.Text) Then
MsgBox "品番が重複してます。", vbCritical
'Cancel = True
Application.OnTime Now(), "FormsSetFocus"
With 品番txt
.SelStart = 0
.SelLength = Len(.Value)
End With
End If
'標準モジュール
Sub FormsSetFocus()
UserForm1.品番txt.SetFocus 'UserForm名は適宜設定
End Sub
|
|