テキストボックスを呼び出すSetFocus
と、次のエラーがスローされます。
Run-time error '438':
Object doesn't support this property or method.
SetFocus
Excel 2013 ですぐに利用できますか、それとも Excel のコンポーネントにパッチを適用したり更新したりする必要がありますか?
私はSetfocus()
おそらくそのようなエラーを決してスローしないと思います!!
オブジェクトはこのプロパティまたはメソッドをサポートしていません (エラー 438)
このメソッドまたはプロパティは、この OLE オートメーション オブジェクトには存在しません。オブジェクトの詳細については、オブジェクトのドキュメントを参照し、プロパティとメソッドのスペルを確認してください。
ここにメソッドがあるので、このメソッドがいつ存在しないSetFocus()
かを知る必要があります!
Office 2013 では、オブジェクトまたはそのコンテナーの 1 つが表示されていないか有効になっていない場合、次のエラーがスローされます。
実行時エラー '2110':
非表示 であるか、有効になっていないか、またはフォーカスを受け入れないタイプであるため、コントロールにフォーカスを移動できません。
そして、私がテストしたように、発生させてループを作成してEnter Event
もエラーは発生しません。また、同様のSetFocus()
方法を使用する場合:
Private Sub TextBox1_Enter()
TextBox2.SetFocus
End Sub
Private Sub TextBox2_Enter()
TextBox1.SetFocus
End Sub
そして、私は他の理由を理解することはできません!
この回答を参照してください: https://www.vbforums.com/showthread.php?646411-RESOLVED-How-can-I-make-setfocus-ot-Textbox-in-vba
結局のところ、Excel を使用していますが、ユーザーフォームではなくワークシートにテキストボックスがあります。Setfocus はユーザーフォームのテキストボックスに対して機能しますが、実際のワークシートにある場合は機能しません。setfocus の代わりに activate を試してください:
Private Sub CommandButton1_Click()
TextBox1.Activate
End Sub