Accessフォームを作成すると、フォーム起動時に特定の場所にカーソルを合わせたいというニーズが出てくることがあります。この場合、コントロールソースが設定されているテキストボックスが優先的にフォーカスが合うなど、上手くいかないこともあります。
そこで、今回は特定の場所にカーソルを合わせる方法を紹介します。
サンプルフォーム
図1に示すように、フォームヘッダーに非連結のテキストボックス(「t_入力」という名前にします。)を、詳細セクションにレコードソースのテーブルに含まれるフィールドをコントロールソースに設定した連結テキストボックスを配置した「F_Main」フォームを作成しました。
この状態で「F_Main」フォームを開きます。すると図2に示すように詳細セクションのテキストボックスにカーソルがセットされます。
そこで、これから紹介する方法でフォーム起動時に「t_入力」テキストボックスにフォーカスを合わせるようにしていきましょう。
特定の場所にカーソルを合わせる方法
まずは、「F_Main」フォームのプロパティを開くため、図3に示す赤丸部分を左クリックします。
続いてフォームプロパティを開くため、ツールの「プロパティシート」アイコンをクリックします。次に「読み込み時」プロパティに「イベントプロシージャ」を設定し、「…」ボタンをクリックします(図4)。
これにより、図5に示すようにVBA画面が起動します。
ここで、フォーム起動時に「t_入力」テキストボックスにカーソルが合うようにコードを追記します。
コード全体は次のようになります。
Private Sub Form_Load() Me.t_入力.SetFocus End Sub
以上で、設定は完了しますので、フォーム自体を保存してください。
設定後の動作確認
改めて「F_Main」フォームを開くと、図6に示すようにフォームヘッダーの「t_入力」テキストボックスにカーソルが合うようになりました。
今回は、テキストボックスにカーソルを合わせるようにしましたが、コマンドボタンなど様々な箇所にフォーカスを合わせることもできます。
まとめ
今回は、SetFocusを用いてフォーム起動時の初期カーソル位置を決定する方法を紹介しました。サンプルでは簡単なものを用いましたが、例えばユーザーに特定のオブジェクトしか操作できないようにしたい場合や、入力手順に合わせてカーソルを合わせたい場合など、様々な場面で用いることで業務効率の改善にも繋げることが期待できますので、是非活用してみてください。
以下の書籍は、私がAccessを勉強する際に参考になったものです。是非、1冊用意してスキルアップを目指してください。
スポンサーリンク
コメント