| 
    
     |  | >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
 
 
 |  |