VBA ActiveCell – Criando Códigos com as Células Ativas no VBA
Você sabe o que é VBA ActiveCell? Nada mais é do que a célula ativa no Excel! Hoje vamos aprender a trabalhar com este recurso.
ActiveCell é a propriedade do VBA que representa a célula ativa (selecionada) no Excel. Com ela você executa ações na célula atual sem fixar o endereço no código. Use ActiveCell.Address para descobrir a referência da célula ativa (como $C$9) e ActiveCell.Value para ler ou gravar o conteúdo dela via MsgBox ou Debug.Print.
Caso prefira esse conteúdo no formato de vídeo-aula, assista ao vídeo abaixo ou acesse o nosso Canal do YouTube para mais vídeos!
Resumo do vídeo: a aula mostra o que é o ActiveCell no VBA e como usar a célula ativa do Excel dentro das suas macros. Você acompanha como selecionar células com os métodos Range e Cells, descobrir o endereço da célula ativa com a propriedade Address e ler ou gravar o conteúdo dela com a propriedade Value, usando MsgBox e Debug.Print.
Neste vídeo você aprende:
- o que é o ActiveCell e para que serve no VBA;
- selecionar células com os métodos Range e Cells;
- descobrir o endereço da célula ativa com ActiveCell.Address;
- ler e gravar o conteúdo da célula ativa com ActiveCell.Value.
Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:
Então nessa aula eu vou te mostrar para que serve o ActiveCell VBA, como ativar uma célula no VBA, qual é a célula ativa no Excel e como pegar o conteúdo de uma célula no Excel VBA.
Esse recurso é muito interessante, pois nem sempre vamos fazer algo com uma célula específica que já sabemos qual é, podemos executar uma ação de acordo com uma célula selecionada, ou seja, uma célula ativa.
Isso pode facilitar bastante algumas atividades, por bastar selecionar a célula desejada e executar a sua macro, dessa forma não precisa alterar o código sempre ou tentar fazer algo muito complexo.
E aí, quer aprender como funciona o ActiveCell VBA e como ele pode te ajudar nos seus próximos projetos?
O ActiveCell já possui um nome bem intuitivo, Active -> ativo e cell -> células, ou seja, célula ativa.
Quando clicamos em uma célula no Excel, note que ela fica contornada de verde indicando que aquela é a célula ativa.
Esta funcionalidade do VBA ActiveCell permite executar uma ação na célula que estiver ativa, isso facilita quando temos uma ação que queremos executar em células diferentes, porque, ao invés de ter que alterar o código é só usar o ActiveCell e o código se ajusta a célula ativa naquele momento.
Isso abre um mar de possibilidades!
Como ativamos uma célula no VBA?
Vamos entrar no ambiente do VBA, para isso utilize o atalho alt + f11 -> inserir -> módulo. Feito isso, vamos iniciar nosso código:
Sub vba_activecell ()
End SubTudo que vamos fazer tem que estar contido entre essas duas linhas de código, é o que chamamos de sub-rotina e é também o que define a nossa macro.
Obs. É importante lembrar de não usar espaço nem caracteres especiais nos códigos!
Como selecionar uma célula a partir do VBA?
Para isso vamos utilizar o Range:
Sub vba_activecell ()
Range(“C6”).Activate
End SubFeito isso vamos salvar o código e executar usando o atalho F5.
Observe que na planilha de Excel a célula C6 está selecionada!
Existe outra forma de fazer isso usando o Select o resultado é o mesmo a célula é selecionada.
Sub vba_activecell ()
Range(“C6”).Select
End SubAlém do Método Range, podemos selecionar a linha usando o Método Cells, a diferença neste método é que ao invés de passar a letra e número da célula (C6), vamos passar o número da linha e o número da coluna.
Sub vba_activecell ()
‘Range(“C6”).Select
Cells(6,3).Activate
End SubObserve que a linha anterior com o método Range está comentada, para isso colocamos uma aspas simples antes do ‘Range, assim quando salvar e executar somente o comando Cells será executado.
Como descobrir qual célula está ativa no Excel por meio do VBA?
Vamos usar uma propriedade chamada Address, esta propriedade busca a célula que está ativa.
Precisamos também adicionar no nosso código uma forma de visualizar o resultado do Address, para isso vamos usar o MsgBox.
Sub vba_activecell ()
MsgBox ActiveCell.Address
End SubApós salvar e clicar em F5, vamos ter como resultado uma caixinha com a mensagem -> $C$9
Nossa célula ativa é a C9, o resultado vem trancado, por este motivo o $ aparece.
Outro modo de verificar o resultado é clicando em Exibir no VBA e em seguida selecionar a opção -> Verificação Imediata
Feito isso vamos alterar o modo de exibição no código, retirando o MsgBox e colocando o Debug.Print:
Sub vba_activecell ()
Debug.Print ActiveCell.Address
End SubFeito isso, clique em F5 e o resultado vai aparecer na caixa do Debug.
Como descobrir qual o conteúdo de uma célula dentro do VBA?
É muito simples, precisamos apenas trocar a propriedade de endereço que estamos usando no nosso código -> Address, para a propriedade de valor -> Value.
Sub vba_activecell ()
Debug.Print ActiveCell.Value
End SubSalve e clique no F5, agora dentro do Debug vai aparecer o conteúdo da célula ativa!
Perguntas frequentes
1. O que é ActiveCell no VBA?
ActiveCell é a propriedade do VBA que faz referência à célula ativa, ou seja, a célula selecionada no Excel (contornada de verde). Com ela, uma macro pode executar ações na célula atual sem precisar fixar um endereço no código, ajustando-se automaticamente à célula em que o usuário está no momento.
2. Como selecionar uma célula pelo VBA com Range e Cells?
Você pode ativar uma célula de duas formas. Com o Range, informe a referência entre aspas: Range(“C6”).Activate ou Range(“C6”).Select. Com o método Cells, informe o número da linha e o da coluna: Cells(6,3).Activate seleciona a mesma célula C6. Ambos ativam a célula desejada antes de executar outras ações.
3. Como descobrir qual célula está ativa no VBA?
Use a propriedade ActiveCell.Address, que retorna a referência da célula ativa. Para visualizar o resultado, combine com MsgBox ActiveCell.Address, que abre uma caixa de mensagem, ou com Debug.Print ActiveCell.Address, que mostra o valor na janela de Verificação Imediata. O endereço aparece travado, como $C$9, por isso os cifrões.
4. Como pegar o conteúdo de uma célula no VBA?
Troque a propriedade Address pela propriedade Value. ActiveCell.Value retorna o conteúdo da célula ativa, em vez do endereço. Combinada com Debug.Print ActiveCell.Value ou MsgBox ActiveCell.Value, ela exibe o valor da célula. A propriedade Value também permite gravar dados na célula, atribuindo um novo valor a ActiveCell.Value.
Conclusão – VBA ActiveCell
Nessa aula mostrei as funcionalidades do VBA ActiveCell.
Este tema foi muito pedido pelos nossos alunos, por este motivo tratamos no detalhe as formas de identificar células ativas e como verificar seu conteúdo dentro do VBA.
Eu espero que vocês tenham gostado! É mais um recurso importante para você ter!
Até mais! Abraço,
Hashtag Treinamentos
Para acessar outras publicações de VBA, clique aqui!

