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

ColorIndex

Indice de 56 Cores (tabela de cores no material exclusivo ebook):

RGB

Forma Decimal

 

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:

 

Formatar Cor das Sheets

Nas guias do excel também não precisamos utilizar macros basta identificar a guia seguido da palavra TAB, exemplo:

Como Identificar as Cores

identificar as cores

A seguir vou colocar alguns exemplos para verificar as cores nas células.

Verificar cor basica

Verificar RGB

Verificar cor tabela indice

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: