Conhecendo o código de uma Macro

Oi pessoal!

Neste post, dando continuidade ao post Macro – definição e gravação, vamos entender os comandos gravados na criação da Macro NegritoVermAmarelo.

Para visualizar o código da Macro, siga os próximos passos a partir do arquivo onde foi criada a Macro NegritoVermAmarelo.

Passos:

1. Selecione o comando Exibição -> Macros -> Exibir Macros;

2. Será exibida a janela Macro;

3. Clique na Macro NegritoVermAmarelo para selecioná-la;

4. Clique no botão Editar;

5. O Editor do VBA será carregado, exibindo as seguintes linhas de código:

Sub NegritoVermAmarelo()

‘ Macro que formata as células com Negrito, fonte vermelha e fundo amarelo.

‘ Atalho do teclado: Ctrl+Shift+L

Selection.Font.Bold = True

With Selection.Interior

.ColorIndex = 6

.Pattern = xlSolid

End With

Selection.Font.ColorIndex = 3

End Sub

Agora vamos entender o que está escrito acima…

Selection.Font.Bold = True

Este comando aplica Negrito na célula selecionada. (onde o cursor estiver posicionado).

Para vocês entenderem melhor, separando as palavras deste comando, temos o seguinte:

– Selection – o Excel entende que algum comando será executado em um local determinado. Como não especificamos nenhuma célula, range, linha etc. antes desta linha de código, o comando será aplicado onde o cursor estiver posicionado na planilha.

– Font.Bold = True – quer dizer que a formação Negrito deve ser ativada para uma determinada seleção.

Selection.Font.ColorIndex = 3

Este comando aplica cor de fonte vermelha na célula selecionada. (onde o cursor estiver posicionado).

O valor 3 correspondente a cor vermelha no Excel.

Obs: você não precisa ficar decorando os números relacionados às cores do Excel para programar em VBA. Quando você quiser saber o número relacionado a uma cor, basta gravar uma Macro de formação e depois visualizar os comandos no código.

Continuando…

With Selection.Interior

.ColorIndex = 6

.Pattern = xlSolid

End With

Este comando aplica cor de fundo amarelo na célula selecionada. (onde o cursor estiver posicionado).

Nesta parte do código, como temos dois comandos de formatação para o mesmo objeto (.Color.Index = 6 e .Pattern = xlSolid para Interior) escrevemos os comandos dentro da chave WithEnd With, que é uma forma de simplificar o código quando precisamos escrever vários comandos para uma mesma seleção de objeto.

Agora vamos criar uma macro similar a anterior, mas determinando onde na planilha a formatação deve ser aplicada.

Crie uma Macro chamada NegritoVermAmarelo_versão02, repetindo todo o passo a passo do post Macro – definição e gravação na gravação da Macro NegritoVermAmarelo, mas trocando a ordem dos passos 2 e 3, ou seja, coloque o passo 2 (Clique na célula A1) após o passo 3 (Selecione o comando Exibição -> Macros -> Gravar Macro).

Depois de gravar a nova Macro, vamos acessá-la no editor do VBA, executando os passos que expliquei no início do post.

Visualizaremos o seguinte código…

Sub NegritoVermAmarelo_versão02()

‘ Macro que formata as células com Negrito, fonte vermelha e fundo amarelo.

‘ Atalho do teclado: Ctrl+Shift+L

Range(“A1”).Select

Selection.Font.Bold = True

With Selection.Interior

.ColorIndex = 6

.Pattern = xlSolid

End With

Selection.Font.ColorIndex = 3

End Sub

Repare que as linhas de código são as mesmas da primeira Macro gravada (NegritoVermAmarelo), com exceção da primeira linha Range(“A1”).Select, que foi acrescentada ao código quando invertemos a ordem dos passos 2 e 3.

Ou seja, com esta troca, após iniciar a gravação da Macro (passo 3) solicitamos ao VBA que  selecionasse a célula A1 (passo 2).

Essa nova linha de código determina que todos os comandos seguintes sejam aplicados à célula A1.

A forma para selecionar um intervalo de células é bem parecida, por exemplo, para selecionarmos da célula A1 até a célula C5 teríamos a seguinte sintaxe: Range(“A1:C5”).Select.

Importante: o comando Range(“B1”).Select também pode ser escrito da seguinte forma: Cells(1,2).Select, onde o primeiro número determina a linha da célula B1 e o segundo determina a coluna.

Em programação VBA, este segundo formato de escrita é mais eficiente, pois facilita a manutenção das linhas de códigos de uma Macro e permite que você crie comandos mais inteligentes usando variáveis.

Mas, por enquanto, vamos deixar esse assunto para o futuro, porque antes precisamos entender mais alguns conceitos e comandos básicos de VBA…

Abs, Dr. E

P.S. Gostaria de pedir desculpas, mas infelizmente não estou conseguindo responder todos os e-mails com dúvidas que venho recebendo. Por isso, peço que não usem o espaço de comentários do post para enviar dúvidas.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s