プロが教えるわが家の防犯対策術!

Excel(関数orマクロ)でセルを参照して、
そのセルの背景色、文字色それぞれのRGB値(255,255,255 等)を自動取得することは可能でしょうか?

例えば、
A1セルの背景色RGB値をB1セルに。
A1セルの文字色RGB値をC1セルに、というイメージです。

※バージョンはExcel2007です

宜しくお願い致します。
背景色、文字色のRGB値を求める方法

教えて!goo グレード

A 回答 (3件)

次のコードを参考に。


Sub test()
c = Right("000000" & Hex(Range("A1").Interior.Color), 6)
r = Val("&H" & Right(c, 2))
g = Val("&H" & Mid(c, 3, 2))
b = Val("&H" & Left(c, 2))
MsgBox "RGB(" & r & "," & g & "," & b & ")"
End Sub
    • good
    • 3
この回答へのお礼

ありがとうございます。
出来ました。
これでやりたかったことが実現できそうです。
勉強になりました。

お礼日時:2009/08/20 11:55

文字色はfontのプロパティで取得できますので


先のお二人の方法などを適用すればRGB別に取得できます。

clr = Range("A2").Font.Color
    • good
    • 2
この回答へのお礼

補足回答ありがとうございます。
助かりました。

お礼日時:2009/08/20 11:58

http://msdn.microsoft.com/ja-jp/library/cc410286 …
に式
Function RevRGB(red, green, blue)
RevRGB= CLng(blue + (green * 256) + (red * 65536))
End Function
が載ってます。
このRGB値よりR,G,B値を計算する。
テストはC1セルに任意のパターン色を設定。 
Sub test02()
x = Cells(1, "C").Interior.Color
B = x Mod 256
MsgBox B
G = Int(x / 256) Mod 256
MsgBox G
R = Int(x / 65536)
MsgBox R
End Sub
以上のR,G,B値をメモし下記RGB(0, 255, 255)のRGBに数字入れ替えて入れ替えて実行。同じ色になることを確認
Sub test03()
Cells(2, "C").Interior.Color = RGB(0, 255, 255)
End Sub
あわてているので、色んな色で念入りにテストしてください。
    • good
    • 1
この回答へのお礼

なるほど。
こういった方法もあるんですね。
いろいろ試してみようと思います。
ありがとうございました。

お礼日時:2009/08/20 11:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

教えて!goo グレード

人気Q&Aランキング