Exce-VBA条件によりラベルの色を変えるRGB関数とColorIndex

パソコン難しい Excel-VBA
スポンサーリンク

こんにちは、とりっぷぼうるです。

元々エクセルとは全く縁のない生活をしていましたが、人員不足などで少しでもデータ入力作業や集計作業を効率化するしか方法が無く、仕方がなくエクセルに取り組み始まました。

なぜならば、大きな会社ならば専用ソフトやクラウド上でデータ集計や管理を行うのでしょうけど、小さなところではそのようなお金もないのでエクセルで解決するしか方法が無いのですよね。

このような理由からエクセルに取り組み始めましたので、当然ながらエクセルの専門知識もなく、学校に通うこともできずにただ単にエクセルの書籍とにらめっこしながら取り組んでいます。

波乗りアヒル
波乗りアヒル

でも書籍のままだと実用的でないことが多く、VBAコードを組み合わせてみたら動いた!という実用例・体験談を書いています。

Excel-VBAの専門学校通学や・資格があるわけではありませんので、あくまでエラーにならずに動いてくれているVBAコードになりますので、掲載のVBAコードが同じように動く保証はできません。
実際に動いているエクセルは2009と2016です。

ラベル色指定ForeColor=RGBとIfの組み合わせ

ユーザーフォームに配置しているラベル(Label)の色を初期設定の黒色ではなくて、目立つように「赤色」にしたいと思いませんか

常時赤色にするならば、ラベルのプロパティ内「ForeColor」➡「パレット」で変更することができますが、条件に合えば「赤色」に変更してそうでなければ「黒色」のままってできないものか

波乗りアヒル
波乗りアヒル

Excel-VBAで色の指定はよく見るけど条件付きって見つからない

Ifステートメントと組み合わせて!

波乗りアヒル
波乗りアヒル

もし○○だったら赤色、そうでなかったら色変更なしって事だね!

ここでは、「ボウリング成績表印刷設定方法~LTB個人リーグ編」で実際に使っているExcel-VBAコードを書いていきますが、詳細についてはここでは省略しますので使い方などについては下記も参考にして下さい。

ボウリング成績表印刷設定方法~LTB個人リーグ編
エクセルで作成しているボウリングリーグ成績表を自動化で、リーグ戦参加者の成績表を作成・印刷専用フォームの使い方

まずは基本となるラベルの色をプロパティからではなくExcel-VBAコードで書くとこうなります。

UserForm7.Label64.ForeColor = RGB(255, 0, 0)

これは、ユーザーフォーム7のラベル64の色を赤色にするというExcel-VBAコードです。

それでは次にラベルの色は初期設定の黒色ですが、条件を付けてセルの値によりラベルの色を赤色にしてみましょう。

ここでは、実際に使っているボウリングリーグ戦の成績表で1位と2位が同点の場合に、メッセージを出して知らせて赤色に変更していますが、この部分だけ切り取っていますのでマクロ開始と終了の表記は省略しています。

If Range(“AE3”).Value = Range(“AE4”).Value Then
MsgBox “男性HGが同点です”
UserForm7.Label64.ForeColor = RGB(255, 0, 0)
UserForm7.Label65.ForeColor = RGB(255, 0, 0)
End If
  1. もしセルAE3の値とセルAE4の値が一緒だったら
  2. メッセージで「男性HGが同点です」と表示する
  3. ユーザーフォーム7のラベル64の色をRGBで指定した「赤色」にする
  4. ユーザーフォーム7のラベル65の色をRGBで指定した「赤色」にする
  5. Ifステートメント終了

となっています。

これで、1位と2位のラベル表示が同点である事を目立つように同スコアー(ラベル)を赤色しています。

ColorIndex色見本

エクセルで設定できる色はRGBを使えば、ほぼ無限にできますが、基本的な色だけならばColorIndexの番号指定で簡単にできます。

COLORINDEX色見本

ぜひ参考にしてくださいね。

Excel-VBA関連記事

表で条件に合ったセルを見つけたら背景色を変える方法
色見本・番号付き!表の中のデータが目立つように自動的に条件に合致した時だけ、背景色変えたいと思いませんか?しかも表の中のデータ全て検索して。意外と簡単の出ぜひコピペして使ってみてね。

各コントロールまとめて転記シリーズ

ユーザーフォームを使うと配置したコントロール(テキストボックスやラベルなど)とセルとの間で値のやり取りが多くなります。

よく使うのでまとめてみました。

値の場所転記したい場所説明ページ
セルの値ラベル名VBAコード
セルの値テキストボックスの値VBAコード
セルの値コマンドボタンの表示名VBAコード
セルの値セルの値VBAコード
テキストボックス入力値セルの値VBAコード
波乗りアヒル
波乗りアヒル

成績表作成には知っておきたいExcel-VBAもくじ

ボウリングハンデキャップのつけ方
HDCPの種類はリーグのルールにより複雑に ボウリングの成績表(リーグ戦)で必ず必要になるのが、ハンデキャップ(HDCP)です。 ボウリングご予約の時に一番多く使われているのが、女性にだけハンデキャップをつけてあげることが多いですね。 だいだい何点ぐらいのハンデキャップが多いの?
ボウリングリーグ対戦表の数字を名前に自動変換する方法
リーグ戦の対戦表をエクセルで作る時、数字で表されている番号を名前に自動的に変換できると作業時間が短くなり効率的ですね。たった2つのエクセル関数を使うだけで、簡単にできるんです。今回の回戦数を入力するだけで一発変換完了。もちろんお客様にスケジュール対戦表として渡すことも簡単ですよ。
人数に応じてリーグ対戦表を自動選択する方法
複数の表があり、条件に合った表を選んで、さらにセルの値を選んで数字を名前に自動変換できると、とても便利なエクセルができますよね。ボウリングのリーグ対戦表も人数により表が異なるので、参加人数が決まったら、自動的に表を選んで対戦番号がこれも自動的に参加者名に変換されると便利で作業効率がアップして時間短縮になりますよ。
波乗りアヒル
波乗りアヒル

エクセルの勉強お疲れ様です。ちょっとひと休みしませんか?

コメント