- 締切済み
エクセルVBAについての質問です
VBAについて質問です。 開始入力ボタンと、完了入力ボタンがエクセルシート上にあります。 ボタンを押すとそれぞれのユーザーフォームが立ち上がり、フォーム内の指定したテキストボックスにフォーカスが合うように設定しています。 ユーザーフォームを立ち上げた状態で、エクセル上のボタンを押し、フォームの切り替えが行いたいと考えていて、ユーザーフォームのShowModal プロパティをFalseにしました。 エクセル上のボタンを押すことができるようになったのですが、ユーザーフォーム立ち上げ時にテキストボックスへフォーカスが合わなくなりました。 どうにか解決する方法はないものでしょうか? 教えていただきたいです。 ※完了入力も同じようなユーザーフォームです
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kkkkkm
- ベストアンサー率66% (1719/2589)
回答No.2の追加です。 SetFocusが可変なのでしたら ボタンのClickイベントの UserForm1.Show の後でSetFocusしたいTextBoxにSetFocusすればいかがでしょう If 〇〇 Then UserForm1.TextBox1.SetFocus End If とか 可変でない場合はTextBoxにたいして無条件で実行すればいいと思います。 プロパティのTabindexを0に変更する必要もありません。
- kkkkkm
- ベストアンサー率66% (1719/2589)
> ユーザーフォーム立ち上げ時にテキストボックスへフォーカスが合わなくなりました。 立ち上げた時でしたら UserForm_Initialize() のSetFocusをやめて UserFormのフォーカスしたいテキストボックスのプロパティで TabStop True で Tabindexを0 に設定してください。
- kon555
- ベストアンサー率51% (1842/3559)
アイデアレベルですが幾つか解決案を書いておきます。 1.ユーザーフォームの立ち上げ時にはShowModal プロパティをTrueにしておき、後からFalseにする。 2.ユーザーフォーム上に、フォーム切り替え用のボタンを設置する。 3.ユーザーフォーム上に、ShowModal プロパティをFalseにする用のボタンを設置する。