ユーザーフォームに配置したコマンドボタンの文字色を条件に応じて変更したいと思いませんか?
Excel-VBAのForeColorプロパティとStaticステートメントを使うことで、コマンドボタンをクリックするたびに黒色文字と赤色文字が交互に表示できるようになります。
ForeColorプロパティ
エクセルに標準機能として用意されているVBA「ForeColorプロパティ」は、RGBの色番号を指定することで文字色を変更することができます。
文字色変更するVBAコード
まず基本となるユーザーフォームに配置したコマンドボタン1をクリックすると文字色を初期設定の「黒色」から「赤色」に変更するだけならば、下記のようにVBAコードを記述すれば簡単にできます。
Private Sub CommandButton1_Click()
UserForm1.CommandButton1.ForeColor = RGB(255, 0, 0)
End Sub
- コマンドボタン1がクリックされたら
- ユーザーフォーム1のコマンドボタン1の文字色を赤色にする
- マクロ記録終了
これで赤色の文字に変更できるのですが、このVBAコードには色を戻すことはできないので、次に戻せるようにVBAコードを追加します。
IFステートメント追加で戻せるようにする
それでは、次に黒色文字の時にクリックすると赤色文字になり、赤色文字の時は黒色文字に変更できるようにするには、条件分岐のIFステートメントを追加します。
Private Sub CommandButton1_Click()
Static onoff As Boolean
If onoff Then
CommandButton1.ForeColor = RGB(0, 0, 0)
Else
CommandButton1.ForeColor = RGB(255, 0, 0)
End If
onoff = Not onoff
End Sub
- コマンドボタン1がクリックされたら
- Staticステートメントを宣言してonoffという変数名で真偽を判定する
- もし変数名onoffの状態が
- コマンドボタン1の文字色が黒色だったら
- コマンドボタン1の文字色を赤色にする
- そうではなかったら
- 赤色ならば黒色へ、黒色ならば赤色にする
- マクロ記録終了
このようなVBAコードを記述すると、コマンドボタンをクリックするたびに文字色が黒色と赤色を繰り返し表示されるようになります。
Staticステートメント
マイクロソフトのサイトを見るとこのように記載されています。
プロシージャ レベルで変数を宣言し、ストレージ領域を割り当てるために使用します。 Static ステートメントで宣言された変数は、コードが実行されている間はその値を保持します。
マイクロソフト公式サイトより引用
難しいことが書いてありますが、簡略すると・・・
好きな名前で変数を宣言(ここではonoff)してEnd Ifまでは、状態が有効になっているので、文字色が今何色なのかを見続けることができています。
そして真偽を判定でき「Boolean (ブール型変数)」を使う事で、黒色の場合・赤色の場合と判定ができるようになります。
そして最後に「変数」=Not「変数」でスイッチのように入り切りできるようになるので、黒文字と赤文字がクリック毎に切り替わるようになります。
これができるととても便利なので、ぜひ活用してみてはいかがですか?
関連記事
-
文字色・背景色
同じ点数のセルを見つけたらエクセルVBAでラベルの色を変える方法
コピペOK!ユーザーフォームに配置しているラベル(Label)の色を初期設定の黒色ではなくて、目立つように赤色に変更したいと思ったことありませんか? ForeColorとRGB… -
データの操作
エクセル関数とVBAを組み合わせて商品期限切れ通知を表示する方法
小さな会社や個人では、アプリや専用ソフトを使って商品管理とかはコストが見合わず、エクセルで商品管理していませんか? このエクセルによる商品管理でリストの中にあ… -
文字色・背景色
エクセルVBA色見本(ColorIndex・RGB・16進数)
色見本(ColorIndex一覧) エクセルのワークシート上での文字やセルの背景色、ユーザーフォームのラベルなど各パーツの文字色・背景色に指定できる色見本です。 IF関数… -
文字色・背景色
エクセルVBAで条件に一致する複数セルを見つけて背景色の変更方法
表の中で特定の値を目立たせるためにセルの背景色を変更したいと思った事ありませんか? Excel-VBAを使えば、一瞬で見つけ出して目立つように色を変更することができるF… -
コマンドボタン
コマンドボタンの色をクリックするたびに黒色と赤色を入れ替える方法
ユーザーフォームに配置したコマンドボタンの文字色を条件に応じて変更したいと思いませんか? Excel-VBAのForeColorプロパティとStaticステートメントを使うことで、コ… -
文字色・背景色
条件に一致したセルを繰り返し探してVBAで文字色を変える方法
表の中で特定の値を目立たせるために色を変更したいと思った事ありませんか? Excel-VBAを使えば、一瞬で見つけ出して目立つように色を変更することができるFont.ColorI…
紅葉スポット
-
鬼怒川温泉駅からバスで川俣ダムと瀬戸合峡渡らっしゃい吊橋紅葉へ
【紅葉見頃】10月中旬~11月上旬 紅葉を見に日光を訪れて中禅寺湖周辺を目指して、大渋滞や混雑に巻き込まれて大変な思いをした方多いと思いますが、関東エリアの紅葉… -
乗り鉄必見の紅葉列車でわたらせ渓谷鉄道車窓の紅葉景色へ
【紅葉見頃】11月上旬~11月下旬 旧国鉄・足尾線を引き継いだわたらせ渓谷鉄道は、渡良瀬川沿いを走るローカル線で渓谷沿いの紅葉がとても綺麗に見ることができるので… -
片品村「菅沼」の紅葉へ奥日光湯元温泉から無料バスで紅葉穴場へ
全国屈指の透明度を誇る菅沼に周囲の山々の色づいた木々が鏡のように反射する紅葉絶景が見られる、穴場紅葉スポットです。 菅沼には電車とバスを利用していくことができ… -
縁起だるま発祥の少林山達磨寺境内の真っ赤に染まる紅葉景色へ
【紅葉見頃】11月下旬~12月上旬 高崎市内循環バス「ぐるりん」バスのフリーエリア内にあるので、縁起だるま発祥の少林山達磨寺へ紅葉の時期になったら訪れてみてはい… -
9月中旬から始まる尾瀬ヶ原の草紅葉へ日光駅や沼田駅からバスで行く
まだまだ残暑厳しい夏日が続く東京ですが、ひと足早く奥日光の更に山奥の尾瀬ヶ原では、9月中旬ごろから湿原の草がオレンジ色・黄金色・赤色と移り変わる姿を見ることが… -
古峯神社の天狗の御朱印と紅葉名所へ鹿沼駅からバスで行く
御朱印を集める趣味が流行っていますが、ここ古峯神社の御朱印は天狗をイメージしたデザインで何種類あるかわかないぐらい様々あります。 そして、紅葉見頃となる10月中…