Quem trabalha com aplicações para edição de documentos Word pode ter se
percebido que o sistema de codificação numérica de cores do VB e do Word são
diferentes. Por exemplo, o código númerico para preto em VB é -16777216 e em
Word é 0.
A função a seguir converte a cor de um sistema para o outro:
Public Function ConverterCor(ByVal
int As Integer)
As Integer
Dim R, G,
B As Integer
If int >=
0 Then
'Word
If int <=
255 Then
B = 0
G = 0
R = int
ElseIf int <=
65535 And
int > 255 Then
B = 0
G = int \ 256
R = int - 256 * G
ElseIf int >
65535 Then
B = int \ 65536
G = (int - 65536 * B) \ 256
R = int - 65536 * B - 256 * G
End If
ConverterCor = 65536 * R + 256 * G + B - 16777216
Else
'VB
If int <=
-16776961 Then
R = 0
G = 0
B = int + 16777216
ElseIf int >
-16776961 And
int <= -16711681 Then
R = 0
G = (int + 16777216) \ 256
B = int + 16777216 - 256 * G
ElseIf int >
-16711681 Then
R = (int + 16777216) \ 65536
G = (int + 16777216 - 65536 * R) \ 256
B = int + 16777216 - 65536 * R - 256 * G
End If
ConverterCor = R + 256 * G + 65536 * B
End If
End Function
Esta função reconhece qual o sistema que foi inserido e retorna o outro.
A seguir exemplos para de aplicação desta função:
WordDoc.Paragraph.Font.Color = ConverterCor(TextBox1.ForeColor.toArgb)
TexBox1.ForeColor = Color.FromArgb(ConverterCor(WordDoc.Paragraph.Font.Color))
Este não foi simples não. Deu muito trabalho para descobrir as codificações.
Nenhum comentário:
Postar um comentário