Cores No VBA – Tutorial
Recentemente recebi uma dúvida sobre o assunto cores no vba. Inicialmente após pensar em uma resposta simples percebi que seria interessante dividir com todos. Talvez seja a dúvida de outra pessoa.
Com este artigo pretendo demonstrar:
- Como evitar a armadilha da macro
- Duvida de um leitor: como verificar/contar as cores pintadas nas celulas
- Várias formas de se fazer
Cores No Vba: Armadilha na macro
Pintar celulas, guias ou fontes não é difícil visto que é possível fazer com macros, mas neste atalho pode te levar em situações complicadas.
Por mais que o seu código seja simples você poderá ver no vídeo a brutal diferença do código feito manualmente e o gerado automaticamente pelo Excel.
E como consequência:
- Código muito grande
- Difícil interpretação
- Difícil manutenção
Formas Simplificadas de Usar as Cores
Por padrão as macros irão trazer qualquer cor no formato decimal, mas além deste podemos utilizar mais três formas:
- Decimal
- RGB
- Tabela ColorIndex
- Cores no vba padrões
Ou seja, podemos utilizar destas 4 maneiras para colorir as celulas, guias (sheet) e fontes. Abaixo segue exemplos.
Codigos para Mudar Cor da Celula
Veja como é simples pintar uma celula!
Primeiro selecionamos a célula (range ou cells), depois no referimos ao seu interior (.interior) e depois a sua cor (.color ou .colorindex):
Cores no VBA Básicas
Range("A2").Interior.Color = vbBlue Range("a3").Interior.Color = vbYellow Range("a4").Interior.Color = vbMagenta Range("a5").Interior.Color = vbRed Range("a6").Interior.Color = vbGreen Range("a7").Interior.Color = vbCyan Range("a8").Interior.Color = vbWhite Range("a9").Interior.Color = vbBlack
ColorIndex
Indice de 56 Cores (tabela de cores no material exclusivo ebook):
Range("a2").Interior.ColorIndex = 43
RGB
Range("a2").Interior.Color = RGB(153, 204, 0)
Forma Decimal
Range("a2").Interior.Color = 51510
Alterar Cor Das Fontes
Para altera a coloração da fonte através da do vba basta usar uma das maneiras já descritas anteriormente como nas células:
Range("B2").Font.ColorIndex = 23 'ou Range("B2").Font.Color= vbRed
Formatar Cor das Sheets
Nas guias do excel também não precisamos utilizar macros basta identificar a guia seguido da palavra TAB, exemplo:
Sheets("Plan1").Tab.Color = 51510 ou Sheets("Plan1").Tab.Color = RGB(153, 204, 0)
Como Identificar as Cores
A seguir vou colocar alguns exemplos para verificar as cores nas células.
Verificar cor basica
If Range("A2").Interior.Color = vbBlue Then MsgBox "Azul" End if
Verificar RGB
varCor = Range("a2").Interior.Color varVm = varCor Mod 256 varVd = (varCor \ 256) Mod 256 varAz = (varCor \ 65536) Mod 256 varRGB = "Vermelho =" & varVm & ", Verde =" & varVd & ", Azul =" & varAz MsgBox varRGB
Verificar cor tabela indice
If Range("A2").Interior.ColorIndex = 41 Then MsgBox "Azul Médio" End if
Observações:
Evitar verificar cores por colorIndex pois se a cor (rgb) estiver fora do alcance o vba indicará a cor mais próxima.
Para retirar qualquer “pintura” basta colocar xlColorIndexNone
Enfim para maior entendimento eu sugiro fortemente a visualização do vídeo.
Vídeo: