Access VBAとマクロで入力するテキストボックスの背景色を変更する

マクロにFunctionプロシージャを設定し、そのマクロを複数のテキストボックスに割り当てます。

BackHome Backフォーム

カーソルがあるテキストボックスの背景色を変更し、離れると元の色に戻します。
フォームに複数のテキストボックスがある場合、この設定をすると今どこを入力しているかが分かり易くなります。
これをVBAで行うには1つづつイベントプロシージャを設定すればできますが、ここでは複数のテキストボックスを一度にまとめて設定します。
作成は、Functionプロシージャとマクロを作成し行います。
フォーム内でフォーカスがあるコントロールを取得するには、ActiveControlプロパティを使用します。
背景色はBackColorで設定できます。

次に掲載している「郵便番号から住所を自動表示する住所入力支援の設定」も参照してください。




フォーカスがあるコントロールの背景色を変更するVBAの作成

下の2つのFunctionプロシージャを標準モジュールに作成します。

Functionプロシージャを標準モジュールに作成する

  • ActiveControlプロパティでフォーカスがあるコントロールを取得し、 BackColorで背景色を設定します。
  • QBColor関数で色を設定しています。QBColor(14)で明るい黄色、QBColor(15)で明るい白色になります。

Public Function Myin() As Long
    Screen.ActiveControl.BackColor = QBColor(14)
End Function

Function Myout()
    Screen.ActiveControl.BackColor = QBColor(15)
End Function


プロシージャを実行するマクロを作成する

リボンの[作成]~[マクロ]をクリックします。

リボンの[作成]~[マクロ]をクリックする

マクロの作成画面が開きます。
アクションは「プロシージャの実行」を選択します。

アクションは「プロシージャの実行」を選択する

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

VBAで作成したFunctionプロシージャを指定

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

マクロに名前を付けて保存する

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

マクロ「M_Myout」を作成する


複数のテキストボックスにマクロを割り当てる

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

複数のテキストボックスを選択する

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

[フォーカス取得後」にマクロ「M_Myin」を設定

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

フォームを実行しテキストボックスに移動する

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

別のテキストボックスに移動する


BackHome Backフォーム

Copyright(C) FeedSoft