Home
フォームカーソルがあるテキストボックスの背景色を変更し、離れると元の色に戻します。
フォームに複数のテキストボックスがある場合、この設定をすると今どこを入力しているかが分かり易くなります。
これを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
リボンの[作成]~[マクロ]をクリックします。
![リボンの[作成]~[マクロ]をクリックする](imagef/imgf87_2.gif)
マクロの作成画面が開きます。
アクションは「プロシージャの実行」を選択します。

プロシージャ名に最初にVBAで作成した、Functionプロシージャの「Myin()」を指定します。

マクロに名前を付けて保存します。ここでは「M_Myin」にしました。

同様にマクロ「M_Myout」を作成します。

デザインビューでフォームを開き、複数のテキストボックスを選択します。
ShiftキーかCtrlキーを押しながらクリックすると複数選択できます。

プロパティシートを表示します。
イベントタブの[フォーカス取得後」にマクロ「M_Myin」を設定します。
[フォーカス喪失後」にマクロ「M_Myout」を設定します。

フォームを実行しテキストボックスに移動すると、背景色が変更されます。

別のテキストボックスに移動すると、前のテキストボックスが白色に戻り、移動先が変更になります。

Home
フォーム