カーソルがあるテキストボックスの背景色を変更し、離れると元の色に戻します。
フォームに複数のテキストボックスがある場合、この設定をすると今どこを入力しているかが分かり易くなります。
これをVBAで行うには1つづつイベントプロシージャを設定すればできますが、ここでは複数のテキストボックスを一度にまとめて設定します。
作成は、Functionプロシージャとマクロを作成し行います。
フォーム内でフォーカスがあるコントロールを取得するには、ActiveControlプロパティを使用します。
背景色はBackColorで設定できます。
次に掲載している「郵便番号から住所を自動表示する住所入力支援の設定」も参照してください。
下の2つのFunctionプロシージャを標準モジュールに作成します。
Public Function Myin() As Long
Screen.ActiveControl.BackColor = QBColor(14)
End Function
Function Myout()
Screen.ActiveControl.BackColor = QBColor(15)
End Function
リボンの[作成]~[マクロ]をクリックします。
マクロの作成画面が開きます。
アクションは「プロシージャの実行」を選択します。
プロシージャ名に最初にVBAで作成した、Functionプロシージャの「Myin()」を指定します。
マクロに名前を付けて保存します。ここでは「M_Myin」にしました。
同様にマクロ「M_Myout」を作成します。
デザインビューでフォームを開き、複数のテキストボックスを選択します。
ShiftキーかCtrlキーを押しながらクリックすると複数選択できます。
プロパティシートを表示します。
イベントタブの[フォーカス取得後」にマクロ「M_Myin」を設定します。
[フォーカス喪失後」にマクロ「M_Myout」を設定します。
フォームを実行しテキストボックスに移動すると、背景色が変更されます。
別のテキストボックスに移動すると、前のテキストボックスが白色に戻り、移動先が変更になります。