Inicial > 1- PRIMEIROS PASSOS, Códigos Design > Cores No VBA – Tutorial

Cores No VBA – Tutorial

02/06/2016

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

 

cores no vba

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

 

codigo vba cor

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

 

mudar cor

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

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:

formatar cor

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: