Celdas para colorear en Excel con valores de células CMYK
Pregunta
Estoy buscando una manera que posiblemente use VBA para aplicar el valor de relleno de una celda mirando los campos específicos en el mismo registro.Esta sería una pestaña de muestra Hoja de Excel delimitada:
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
Los campos 3-6 contienen los valores para CMYK, respectivamente.Me gustaría aplicar un relleno de fondo de celda al campo 1 analizando cada registro para los valores CMYK combinados como punto de partida.
Es posible que la conversión a RGB o HSL debe realizarse inicialmente a menos que haya un método de puerta trasera para configurar los valores de CMYK en el selector de color de Excel / Windows.
Solución
Esto le dará el RGB del CYMK en sus datos:
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
Uso de range("A1").Interior.Color=cymk2rgb(...)
establecerá el color: NOTA No va a ser una coincidencia exacta, ya que CYMK es sustractiva, y RGB es aditivo.Este sitio: http://www.printernational.org/rgb-versus-cmyk.php tiene más detalles comparando los dos.