2017-10-27 54 views
0

図形の色を変更する際に問題があります。私はこの色データ基地変数を使用して図形の色を変更する

BK = RGB(0, 0, 0) 'Black 
BN = RGB(140, 78, 2) 'Brown 
RD = RGB(239, 2, 2) 'Red 
OG = RGB(255, 192, 0) 'Orange 
YE = RGB(255, 255, 0) 'Yellow 
GN = RGB(0, 176, 80) 'Green 
BU = RGB(0, 176, 240) 'Blue 
VT = RGB(112, 48, 160) 'Violet 
GY = RGB(113, 113, 113) 'Grey 
WH = RGB(255, 255, 255) 'White 

及びセルにいくつかのデータを読み出し、最初の2人の文字列メンバーを返すコードのこの部分を有しています。などWH、GY、VT、のようなテキストを返し、私は積極的にリターンをwire_color1何た内容に応じて、形状の色を変更したいwire_color1

color_value1 = .Range("D9").Value 
wire_color1 = Mid(color_value1, 1, 2) 

m.Shapes("wire_1").Fill.ForeColor.RGB = wire_color1 

動作しないと私はあなたに感謝し、他に何

を行うには知らない。問題は、これはということです!

+0

(直接ではなく、それを使用して)。 –

+0

color_value1は何を返しますか? – sktneer

答えて

1

名前を表す文字列を使用して変数を参照することはできません。文字列(例: "BK")をRGB値にマッピングする関数を作成する必要があります(Select Caseを使用するなど)。

m.Shapes("wire_1").Fill.ForeColor.RGB = MyRGB(wire_color1) 

機能:

Function MyRGB(clr as String) 

    Select Case clr 
     Case "BK": MyRGB = RGB(0, 0, 0) 'Black 
     Case "BN": MyRGB = RGB(140, 78, 2) 'Brown 
     Case "RD": MyRGB = RGB(239, 2, 2) 'Red 
     'etc... 
    End Select 

End function 
あなたの色データベースからRGB値をルックアップするために `wire_color1`の値を使用する必要があります
関連する問題