フォーム、VBA帳票形式のサブフォームを持ったメイン/サブフォームにおいては、サブフォーム側にいったんフォーカスが移動すると、マウス操作などを行わなければメインフォーム側にフォーカスを戻すことができません。フォーカス移動用のキーであるTabキーやEnterキーで自動的にメインフォームにフォーカスが戻ることはありません。ここでは、そのような動作の制限をVBAで変更し、サブフォームからメインフォームへのフォーカス移動を実現する方法を紹介します。※ただしサブフォームが"データシートビュー"で表示されているときは、サブフォームの最終レコードの最後のコントロールでTabキーなどを押すことによってフォーカスがメインフォームに戻ります(このときメイン側の「Tabキー移動」プロパティの設定によっては次レコードへの移動も起こります)。したがってその場合には、このような特別なことを行う必要はありません。ここではまず、次のようなメイン/サブフォームでの動きを考えてみます。フォームを開いた直後、TabキーもしくはEnterキーを押していくと、次のような順でフォーカスが移動します。最下の新規レコードの最後のコントロールである「割引」でTabキーなどを押すと、同じレコードの「受注コード」に移動、以降は、そのレコード以外のレコードに進むことはありません。そこで、『サブフォームのカレントレコードが画面最下の新規レコードである状態で、「割引」のコントロールから次のコントロールに移動しようとしたら、強制的にメインフォーム側にフォーカスを移動させる』という考え方でプログラムを付け加えてみます。サブフォームの「割引」コントロールからフォーカスが失われたタイミングでアクションを起こせばよいので、次のような"LostFocus/フォーカス喪失後"イベントプロシージャをサブフォームのモジュールに記述します。Subこのイベントプロシージャを使ってフォームを実行すると、次のような順番でフォーカス移動が行われるようになります。そのような場合には、次のようなコードで"最終レコードである"ことを検出します。|この情報は参考になりましたか?、問題は解決しましたか?、もしまだなら......T'sWareのワンポイトテクニカルアドバイスをご利用ください。3000円/件〜でご支援します。