フォーカスのあるTextboxの背景を変える



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

フォーカスのあるTextboxの背景を変える

今回はTextboxのファーカス(カーソル)があるTextboxの背景を変えるプログラムをご紹介します。
Textboxが複数あるユーザーフォームを作成するとフォーカスのある位置が分かりにくくなってしまう場合があるためこのコードを使うと機能的、デザイン的にもよくなります。
他にも視認性がUPし、多少ですが作業効率もUPすることでしょう。

フォーム

今回はTextboxを4つ用意しました。

今回のコードを使うと画像のようにフォーカスがあるTextBoxの背景色を変化させてフォーカスが移動すると色を戻すというものです。

 

Private Sub TextBox1_Enter()
'フォーカスがTextBoxに移動したら色を変える
    TextBox1.BackColor = &HFFFFC0
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'TextBoxから出る時に色を戻す
    TextBox1.BackColor = &H8000000F
End Sub

このコードで一つのTextBoxの設定となります

Private Sub TextBox1_Enter()
    TextBox1.BackColor = &HFFFFC0
End Sub

Enterイベントはコントロールにフォーカスが移動してくる時に発生するイベントになります。
Exitイベントはフォーカスを移動させる時に発生するイベントになります。

EnterとExitでそれぞれ色を指定してあげることでフォーカスがあるTextBoxの色を変えることができます。

デメリット

デメリットというのか少し迷いますが、このコードの弱点が存在します。それはTextBoxの数の分だけEnterとExitを用意してあげなければいけないことです。ですので今回の見本のフォームのコードもTextBoxが4つしかないものでも下記のようになかなかのボリュームになってしまいます。

Private Sub TextBox1_Enter()
'フォーカスがTextBoxに移動したら色を変える
    TextBox1.BackColor = &HFFFFC0
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'TextBoxから出る時に色を戻す
    TextBox1.BackColor = &H8000000F
End Sub
Private Sub TextBox2_Enter()
'フォーカスがTextBoxに移動したら色を変える
    TextBox2.BackColor = &HFFFFC0
End Sub
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   'TextBoxから出る時に色を戻す
    TextBox2.BackColor = &H8000000F
End Sub
Private Sub TextBox3_Enter()
'フォーカスがTextBoxに移動したら色を変える
    TextBox3.BackColor = &HFFFFC0
End Sub
Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'TextBoxから出る時に色を戻す
    TextBox3.BackColor = &H8000000F
End Sub
Private Sub TextBox4_Enter()
'フォーカスがTextBoxに移動したら色を変える
    TextBox4.BackColor = &HFFFFC0
End Sub
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    'TextBoxから出る時に色を戻す
    TextBox4.BackColor = &H8000000F
End Sub

10個のTextBoxがある場合は10セットのコードが必要になるのです。今の所この弱点を解消する方法を私自身は知りません。

まとめ

今回はTextBoxのフォーカスが移動してきたときに背景色を変えるコードのご紹介をしました、このコードはcomboBoxにも応用が利きますのでぜひ利用してみてください、

フォロー・チャンネル登録お願いします

VBA以外についてのブログはこちら↓

https://yb-log.com/

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です