> 用途としましては、バックカラーが任意のカラーで着色可能な > コントロールにて、その上に表示されている文字色(ForeColor) > を認識しやすい色に自動で計算して反転色にしたいのです。 > > VBで取り扱うLong値からRGBの値を取り出したりは出来るのですが、 > 反転色を作る方法がわかりません。 > 計算方法をご存知の方がいらっしゃいましたら、 > よろしくお願いいたします。
単純にRGBの各要素が取得できれば、各要素を反転すればいいですよ。 各要素の反転とはRGBの各要素は0〜255の値なので 単純に r = 255 - r のようにすればいいです。
Dim col As Long Dim r As Byte Dim g As Byte Dim b As Byte col = RGB(255, 255, 255) Debug.Print "Original Color : " & Hex(col) r = (col And &HFF&) g = (col And &HFF00&) / (2 ^ 8) b = (col And &HFF0000) / (2 ^ 16) Debug.Print "Reverse Color : " & Hex(RGB(255 - r, 255 - g, 255 - b))
|