Today's guest blogger is Michael Merlin, Lead Software Developer at Electronic Communities. I recently wasted an hour trying to set a field's Back Color property to the hex code generated by the color picker. I figured it out after some searching, but still nobody online had the exact correct answer. I wrote a function that lets you easily use the hex color in code. The secret is to swap the R and the B, and then convert the hex to long. Further explanation follows in the comments of the function. Cheers!
Michael Public Function HexColor(strHex As String) As Long 'converts Hex string to long number,
Office Professional 2007, for colors 'the leading # is optional 'example usage 'Me.iSupplier.BackColor = HexColor("FCA951") 'Me.iSupplier.BackColor = HexColor("#FCA951") 'the reason for this function is to programmatically use the 'Hex colors generated by the color picker. 'The trick is,
Windows 7 X64, you need to reverse the first and last hex of the 'R G B combination and convert to Long 'so that if the color picker gives you this color #FCA951 'to set this in code, we need to return CLng(&H51A9FC) Dim strColor As String Dim strR As String Dim strG As String Dim strB As String 'strip the leading # if it exists If Left(strHex, 1) = "#" Then strHex = Right(strHex,
Microsoft Office Standard 2007, Len(strHex) - 1) End If 'reverse the first two and last two hex numbers of the R G B values strR = Left(strHex, 2) strG = Mid(strHex,
Office Pro 2010, 3,
Windows 7 Ultimate Key, 2) strB = Right(strHex, 2) strColor = strB & strG & strR HexColor = CLng("&H" & strColor) End Function <div