Colorir células no Excel com valores de células CMYK
Pergunta
Estou procurando uma maneira de usar o VBA para aplicar o valor de preenchimento de uma célula, observando os campos especificados no mesmo registro.Este seria um exemplo de planilha do Excel delimitada por tabulações:
BEGIN_DATA_FORMAT
SampleID SAMPLE_NAME CMYK_C CMYK_M CMYK_Y CMYK_K LAB_L LAB_A LAB_B
BEGIN_DATA
1 1 100 0 0 60 34.16 -19.52 -27.46
2 2 100 100 0 60 22.02 6.27 -23.25
3 3 100 0 0 0 54.56 -31.12 -45.29
END_DATA
Os campos 3 a 6 contêm, cada um, os valores para CMYK, respectivamente.Gostaria de aplicar um preenchimento de plano de fundo de célula ao campo 1 analisando cada registro para os valores CMYK combinados como ponto de partida.
A conversão para RGB ou HSL pode precisar ser feita inicialmente, a menos que haja um método backdoor para definir valores CMYK no seletor de cores do Excel/Windows.
Solução
isso lhe dará o RGB do CYMK em seus dados:
Function CYMK2RGB(c As Integer, y As Integer, m As Integer, k As Integer) As Long
Dim R As Integer
Dim G As Integer
Dim B As Integer
Dim colors As Integer
colors = 255 * (100 - k) / 100
R = colors * (100 - c) / 100
G = colors * (100 - m) / 100
B = colors * (100 - y) / 100
CYMK2RGB = RGB(R, G, B)
End Function
usando range("A1").Interior.Color=cymk2rgb(...)
definirá a cor - observe que não será uma correspondência exata, pois CYMK é subtrativo e RGB é aditivo.esse site: http://www.printernational.org/rgb-versus-cmyk.php tem mais detalhes comparando os dois.