Académique Documents
Professionnel Documents
Culture Documents
AVISO DE RESPONSABILIDADE
Alfamídia Prow
Macros.
Seguido gastamos uma grande quantidade de tempo executando tarefas repetitivas no
Excel, ou mesmo em outras ferramentas do Microsoft Office. Tarefas como organizar uma
planilha, importar dados de uma planilha e assim por diante.
A Macro vem automatizar estas rotinas, ou seja, com um clique em um botão a rotina que foi
gravada junto ao seu Excel executa todas as instruções que vocês faz durante este
processo.
Para se criar uma macro é utilizada o VBA, Visual Basic for Aplications,.que é uma
implementação do Visual incorporada em todos os programas do Microsoft Office
funcionando como uma linguagem de programação muito parecida com o Visual Basic e que
nos permite estender ou mesmo substituir rotinas de manipulação de dados, interface, barra
de tarefas e formulários desenhados pelo usuário.
Na guia Arquivo:
Opções:
Na tela que segue selecionar a opção personalizar faixa de opções e na tela da direita
selecionar a guia desenvolvedor.
O Excel exibe a faixa de Desenvolvedor conforme figura abaixo.
Onde:
Gravador de Macros.
Indo na guia do Desenvolvedor, selecionar a seguinte sequencia:
Gravar Macros
Uma vez criada e salva a macro podemos vincular esta a um botão ou imagem, na opção
inserir da barra do desenvolvedor:
Onde no lado direito você tem toda rotina gravada pelo gravador de macros.
VBA.
Outra forma de criarmos macros, como já foi dita anteriormente é indo na guia do
desenvolvedor e em seguida clicar na opção Visual Basic.
Na tela a direita, você tem o editor onde irá digitar a sequência de comandos que vão gerar
sua macro.
Ambiente VBA
Para acessar o ambiente de programação VBA, precisamos estar com o Excel aberto com o
arquivo no qual irá conter as rotinas que vamos criar na sequencia. O acesso ao ambiente
VBA se faz pressionando as teclas ALT+F11. Será aberta a janela conforme abaixo:
Na janele apresentada não será mostrado o editor VBA, para tanto teremos que inserir um
módulo clicando no Menu Inserir/ Módulo ou clicar no botão da barra de ferramentas e
escolher a opção Módulo.
Barra de Ferramentas
Pela barra de ferramentas podemos executar a maioria dos comandos que vamos utilizar
durante a fase de criação do código.
- Permite alternar para o modo planilha, sem fechar o editor do Visual Basic.
- Permite inserir novos elementos dentro do ambiente de programação. Tais como:
User Form, Módulo, Módulo de Classe e Procedimento.
- Salva a planilha Excel, com as alterações feitas no código.
- Recortar, Copiar, Colar. Possuem as mesmas funções conhecidas no ambiente
Windows.
- Permite localizar determinadas palavras dentro do código escrito.
- Desfazer e Refazer. Possuem as mesmas funções conhecidas no ambiente
Windows.
- Executar, Parar, Redefinir. Estes comandos especiais do ambiente VBA
controlam a execução de um bloco de código ou de um userform.
- Ativa e desativa o modo de criação.
- Ativa a janela do Project Explorer.
- Ativa a Janela Propriedades.
- Ativa o pesquisador de objeto. Lista os objetos disponíveis no ambiente para trabalhar
com a codificação no Microsoft Excel.
- Ativa e desativa a caixa de ferramentas para criação de Userforms.
- Aciona a documentação sobre o Microsoft Visual Basic, quando instalada junto o
Microsoft Office.
Exibe todas as configurações que podem ser feitas nos Objetos (planilhas, userforms,
entre outros) do ambiente de programação em tempo de objeto.
Na figura acima a Janela Project Explorer exibe a pasta de Módulos e o módulo1. Este
módulo1 mostra o código Le_dados. Para criarmos uma nova sub-rotina basta digitar no
mesmo módulo logo abaixo da existente. Após digitarmos o demarcador Sub e o nome da
sub-rotina abre e fecha parênteses e pressionarmos a tecla <enter> será exibida uma
linha divisória a qual tem o objetivo de separar uma sub-rotina da outra, deixando bem
claro onde termina uma sub-rotina e começa outra.
Formas de manipular um objeto:
Exemplo 1:
Exemplo 2
MÉTODOS
Exemplo:
ActiveCell.Delete
Application.Quit
No exemplo acima, Delete é um método do objeto ActiveCell: ele apagará a célula ativa.
Quit é um método do objeto Application; ele encerra o Excel (se tiver uma planilha
aberta não salva, você deve salvá-la antes da conclusão desta ação).
CLASSES E INSTÂNCIAS
Observe:
EVENTOS
Eventos são ações que informam a um aplicativo que algo importante ocorreu, é algo que
acontece aos objetos. Ocorre em resultado de uma ação do usuário, do sistema ou do
próprio código. Por exemplo, quando o usuário clica em um formulário, o formulário pode
desencadear um evento Click e chamar um procedimento que manipula o evento.
Com os eventos você personaliza o comportamento dos objetos, tais como: pastas de
trabalho, planilhas, gráficos, janelas, etc.
Os procedimentos correspondentes aos eventos têm todos a seguinte forma:
Private Sub Objeto_Evento(argumentos)
Exemplos:
Ocorre quando o arquivo passa a ser o arquivo ativo por ação do método Activate.
Ocorre quando é inserida uma nova planilha (Sh referencia a nova planilha).
Procedimentos e Funções
Sub <nome_da_macro> ( )
<corpo_da_macro>
End Sub
Utilizando o editor do Visual Basic podemos criar nossas funções que ficaram vinculadas
no assistente de funções como personalizadas.
Por exemplo:
Uma vez que uma função produz um valor ela poderá ser executada:
dentro de uma célula numa planilha, à semelhança de qualquer outra função do Excel.
dentro de qualquer outra função ou SubRotina.
Preencha as caixas de diálogo Freq e Med com a referência das respectivas células
clique em OK.
End Function
Definição do tipo de dados para os argumentos e do tipo da função
Todas as variáveis envolvidas em uma função deve ter seu tipo definido.
São elas:
Nota: Se os tipos de dados não forem definidos será assumido por padrão como tipo
Variant.
Algumas funções facilitam em muito o nosso dia a dia, veja os exemplos abaixo.
Exemplo 1:
Criar uma função para obter o percentual do lucro. Para isso deve-se usar o preço de
compra e preço de venda que se encontram na planilha. Conforme figura abaixo:
Exemplo 2:
Crie uma função que retorne uma string com a situação de cada aluno, conforme os
critérios abaixo: A frequência deve ser acima de 75%, A média deve ser superior a 7,0.
Exemplo 3
Inputbox e msgbox
Permitem a interação entre o usuário e uma macro ou programa, funciona como uma
interface de comunicação.
FUNÇÃO INPUTBOX
InputBox é uma função que permite ao usuário introduzir dados no programa é portanto
um mecanismo de entrada.
Como é uma função produz um valor final. Este consiste nos dados inseridos pelo usuário
no formato texto que normalmente são armazenados temporariamente em variáveis de
uma macro ou programa.
Sintaxe:
O único argumento da função que não está entre colchetes é a mensagem do prompt,
pois é o único argumento obrigatório; os outros são opcionais. Vamos conferir cada um:
Prompt – É a mensagem a ser exibida ao usuário quando executada a inputbox.
FUNÇÃO MSGBOX
Sintaxe
MsgBox "A Soma de 3 com 5 é :" & Chr(13) & " 8 "
Buttons – Aqui temos várias opções de configuração de uma MsgBox. Se for omitido
assumirá o valor 0 por padrão. A configuração “buttons” pode ser dividida em botões,
comunicação visual e botões padrão; Veremos detalhes abaixo:
Title – É o título da caixa de mensagem. Se este for omitido, aparecerá o padrão que é o
nome da aplicação.
HelpFile - Nome do arquivo que será utilizado para ajuda. Se for indicado este parâmetro
o seguinte é obrigatório.
Context - Número do índice do tópico de ajuda.
Exemplo:
INSTRUÇÕES
Toda linguagem de programação é formada por uma série de palavras chaves que uma
vez estruturadas corretamente automatizam uma rotina e o VBA tem uma série dessa
palavras.
Para entender a estrutura de um programa e melhorar a sua performance, precisamos
conhecer algumas estruturas da lógica de programação.
ESTRUTURA SEQUENCIAL
É o conjunto de ações que serão executadas numa sequencia linear de cima para baixo e
da esquerda para a direita, isto é, na mesma ordem que foi escrita.
Exemplo:
Faça uma sub-rotina que leia o nome do aluno e 3 notas calcule e escreva a média
aritmética.
Após digitar o exemplo na janela de edição do VBA, clique no botão executar na barra
de ferramentas ou no Menu Executar/Executar Macro.
OBS.: Quando ocorrer um erro na digitação a linha ficará na cor Vermelho. Se houver um
erro de compilação ou execução será mostrada uma marca na cor amarelo.
ESTRUTURA DE SELEÇÃO
O SELEÇÃO SIMPLES
Esta instrução avalia uma determinada condição lógica, e dependendo da resposta que
esta condição retornar, será feito um bloco de algoritmo ou não.
Sintaxe:
if condição then
Comandos 1
....
Comandos N
End if
Dentro da instrução if, ainda podemos utilizar uma segunda instrução (else - senão) que
também avalia a condição lógica testada, porém somente sendo executado se esta
condição for falsa.
Sintaxe:
If condição then
Comando 1
.
.
Comando N1
Else
Comando 2
.
.
Comando N2
Endif
Para melhor compreensão, faremos agora um exemplo prático da utilização deste tipo de
instrução. Façamos um algoritmo que leia o nome e as duas notas de um aluno,
retornando a sua média e uma mensagem “Aprovado” ou “Reprovado” dependendo da
sua média. A média mínima para aprovação será 6.
O SELEÇÃO ENCADEADA
É muito comum que dentro de um algoritmo tenhamos vários testes que tenham que ser
feitos a uma mesma variável ou situação. Para este tipo de situação podemos utilizar o
encadeamento (aninhamento) de instruções if.
Exemplo:
Pretende-se criar uma Rotina que identifique um indivíduo em função da sua idade. A
classificação pretendida é a seguinte:
Exemplo:
Código de origem
0 ou Menor - ERRO
1 – Sul
2 – Norte
3 – Leste
4 – Oeste
5 ou 6 – Nordeste
7, 8 ou 9 Sudeste
10 até 20 – Centro Oeste
25 até 50 – Nordeste
Onde:
Você pode usar várias expressões ou intervalos em cada cláusula Case. Por exemplo, a
seguinte linha é válida.
- Case 1 To 4, 7 To 9, 11, 13, Is > Num
Case Else vai atuar sempre que o valor analisado não satisfazer nenhuma das cláusulas
Case analisadas. Com Select Case as possibilidades podem estender-se facilmente, o
que é ideal para a análise de uma grande lista de valores.
ESTRUTURAS DE REPETIÇÃO
Esta estrutura pode ser utilizada para repetir um trecho de código, enquanto uma
determinada condição for verdadeira, ou até que uma determinada condição torne-se
verdadeira. Podemos utilizar dois operadores condicionais diferentes: Do While. Nesta
estrutura, enquanto a condição for verdadeira, o código dentro do laço é executado.
Quando a condição tornar-se falsa, o primeiro comando após o final do laço será
executado. Neste caso, se a condição for falsa já na primeira vez, o laço não será
executado nenhuma vez.
Estrutura Do While <condição>...Loop (Faça Enquanto <condição>....laço)
Neste caso, estamos utilizando o operador condicional Do While, no início do laço. O
formato geral, neste caso é o seguinte:
Do While <condição>
Comando1
...
ComandoN
Loop
Exemplo:
o Estrutura For...Next
Comando1
Comando2
...
ComandoN
Next
No início a variável contador tem o valor definido para um determinado valor. Em cada
passagem do laço, a variável contador é incrementada pelo valor definido em incremento.
Caso não seja definido o incremento, será utilizado o padrão 1.
Exemplo:
Objeto Range
O Objeto range é uma propriedade do objeto Worksheet. Isso significa que objeto Range
requer que uma planilha esteja ativa ou que ele referencie uma planilha.
Esse objeto representa uma célula, uma coluna, uma linha, um conjunto de células, até
todas as células de uma planilha; por isso é tão genérico e funcional. O objeto Range
talvez seja o objeto mais utilizado no Excel VBA, afinal, você está manipulando dados em
uma planilha.
Um objeto Range pode ser representado de diversas formas. Pode ser:
Exemplo:
PROPRIEDADE NAME
PROPRIEDADE VALUE
Exemplo1:
Exemplo2:
Com base na tabela abaixo vamos criar uma macro para calcular o salário de uma
pessoa. Para isso a macro recebe as informações da planilha e devolve o salário na
planilha.
Exemplo:
PROPRIEDADE CELLS
Exemplo1:
Crie uma macro baseada nos exemplos acima, execute o mesmo e observe que o
intervalo foi preenchido com o número 2, logo após acrescente a linha conforme abaixo e
execute a macro observando que está limpo.
Exemplo2:
Com base na planilha abaixo criar uma macro que calcule um acréscimo de 30% para os
valores maior ou igual a 500 e escreva o valor reajustado na coluna ao lado;
As três afirmações abaixo são equivalentes:
ActiveSheet.Range.Cells (1,1)
Range.Cells(1,1)
Cells(1,1)
A propriedade Cells tem uma propriedade com nome de Item que torna a propriedade
Cells muito útil. A propriedade Item permite referenciar uma célula especifica em relação
ao objeto Range.
Sintaxe:
Cells.Item(2,”C”)
Cells.Item(2,3)
PROPRIEDADE ACTIVECELL
O ActiveCell propriedade retorna um objeto Range que representa a célula que está ativa
na planilha especificada ou na planilha ativa. Você pode aplicar qualquer das
propriedades ou métodos de um objeto Range para a célula ativa.
Com base na planilha abaixo a macro que recebe 2 valores da planilha e uma opção,
retorna o valor célula ativa.
OBJETO FONT
O objeto Font possui toda a formatação de fonte que podemos utilizar na interface do
Excel. Vejamos as principais propriedades:
Name – Define o tipo da fonte.
O objeto Interior define o plano de fundo para as células selecionadas Suas principais
propriedades são:
Color- Define a cor de preenchimento de uma célula em RGB
Pattern – Define um padrão para ser aplicado no fundo de uma célula. Existem dezoito
padrões representados em valor inteiro de 1 a 18.
Alinhamento Vertical:
As macros abaixo mostram recursos para alterar o tipo da fonte para Tahoma, tamanho
12, cor azul, estilo Negrito e alinhamento centralizado.
Exemplo:
Exemplo:
A macro abaixo gera uma tabela de cores com os respectivos números para ser utilizado
com a propriedade ColorIndex.
COLEÇÃO BORDERS
xlContinuous - padrão -
xlDash -
xlDashDot -
xlDashDotDot -
xlDot -
xlDouble -
Constantes para Weight a qual determina e espessura da borda.
xlThin - padrão -
xlMedium -
xlThick –
xlHairline -
O exemplo a seguir adiciona uma borda dupla para as células C1 até D5 na planilha ativa.
O exemplo a seguir define a cor da borda superior e inferior das células A2: G2 na cor
vermelho.
O exemplo a seguir define a cor da borda inferior das células A10: D10 na cor Azul no
estilo traçado.
PROPRIEDADE COUNT
As propriedades Column e Row indicam coluna e linha, que formam a base de um range,
ou seja, relativas à célula do canto superior esquerdo.
Exemplo:
Observação:
PROPRIEDADE RESIZE
Exemplo:
PROPRIEDADE ADDRESS
PROPRIEDADE OFFSET
Exemplo:
A macro abaixo seleciona e preenche com um valor a célula que se encontra 3 linhas
abaixo e 1 coluna à direita da célula que se encontra ativa na planilha ativa.
FUNÇÃO ISEMPTY
Exemplo:
MÉTODO ACTIVATE
O exemplo abaixo torna “C5” à célula ativa. Após a mesma recebe o formato negrito.
MÉTODO COPY
Exemplo:
MÉTODO DELETE
Exemplo:
MÉTODO MERGE
MÉTODO CLEAR
Limpa todo e qualquer conteúdo das células dentro de um range. O conteúdo envolve
valores, formatação e fórmulas.
Exemplo:
MÉTODO SORT
MathCase – é para uma classificação sensitiva, onde letras minúsculas têm prioridade
sobre as maiúsculas.
Exemplos:
PROPRIEDADE CODENAME
Conforme mostra a figura acima, o CodeName para a planilha com nome de guia “Balanço” é
Plan1.Podemos fazer referência a esta planilha na pasta de trabalho usando: Plan1.Select ou
Sheets ("Balanço"). Select ou Sheets (1). Select.
PROPRIEDADE NAME
A propriedade Name retorna o nome de uma planilha. Também pode ser usada para trocar o
nome de uma planilha.
Exemplo:
Exemplos:
Observação:
Podemos utilizar o parâmetro xlVeryHidden ao invés de true ou false. Este irá ocultar a planilha e
desabilitará a opção reexibir do menu.
PROPRIEDADE ACTIVESHEET
Retorna um objeto que representa a planilha ativa na pasta de trabalho ativa ou na janela especificada.
Exemplos:
Exemplo 1:
Exemplo 2:
Exemplo 3:
Torna uma planilha da coleção WorkSheets ativa, movendo o foco para a planilha especificada
sem alterar a seleção do usuário.
Exemplo:
O exemplo abaixo torna ativa a “Plan2” na qual “D7” torna-se ativa e recebe o formato negrito.
MÉTODO COPY
Permite criar uma cópia fiel de uma determinada planilha, em uma posição especificada na
coleção Worksheets.
Exemplo:
A macro abaixo faz um cópia fiel da planilha ativa, inserindo a cópia após a última planilha da
coleção.
MÉTODO DELETE
Exemplos:
MÉTODO MOVE
MÉTODO SELECT
O método Select seleciona uma planilha ou varias planilhas, movendo a seleção do usuário para a
nova planilha especificada.
Exemplo1:
Exemplo2:
Exemplo3:
EVENTO DE UM WORKSHEET
Os eventos relacionados a um objeto Worksheet afetam apenas a planilha onde o evento ocorre.
Para acessar os eventos de um objeto Worksheet dentro do ambiente VBA, você dá um duplo
clique na planilha desejada. Vai aparecer a janela conforme abaixo. Clicando na caixa de
combinação onde aparece Geral você encontrará o objeto Worksheet, na caixa de combinação da
direita você escolhe o evento desejado.
EVENTO ACTIVATE
Este método é equivalente a clicar na guia na parte inferior da Planilha. Ocorre quando a planilha
em que está o evento se torna a planilha ativa.
Exemplo:
EVENTO DEACTIVATE
Exemplo:
EVENTO BEFOREDOUBLECLICK
Exemplo:
EVENTO BEFORERIGHTCLICK
Evento desencadeado quando o usuário clica com o botão direito do mouse em um intervalo.
Target é o objeto clicado com o botão direito do mouse; Cancel configurado como True impede
que a ação-padrão aconteça.
Exemplo:
EVENTO CALCULATE
Ocorre toda vez que um cálculo é executado ou um valor de uma expressão matemática é
alterado em uma célula da planilha que contém a macro.
Exemplo:
No exemplo abaixo, a cada vez que a célula C2 sofre uma alteração exibe uma mensagem, essa
alteração pode ser no momento que está editando a expressão ou se um dos valores das células
envolvidas na expressão sofrer uma alteração de valor.
EVENTO CHANGE
Ocorre quando uma das células da planilha teve o seu conteúdo alterado pelo usuário ou por
agente externo. Por exemplo, quando o texto é inserido, editado ou excluído. Target é a célula que
foi alterada.
Exemplo1:
Exemplo 2:
Quando uma célula for preenchida com um valor, a cor de fundo da célula ficará em vermelho.
Exemplo 3:
EVENTO SELECTIONCHANGE
Ocorre quando um novo intervalo de células é selecionado dentro de uma planilha. Target é o
intervalo recentemente selecionado e podemos dar o tratamento desejado.
Exemplo:
Objeto Workbook
Workbook representa uma pasta de trabalho do Microsoft Excel. O objeto pasta de trabalho é um
membro da coleção Workbooks. A coleção de pastas de trabalho contém todos os objetos
Workbook atualmente aberto no Microsoft Excel.
Como um objeto Workbook representa uma pasta de trabalho, podemos acessá-lo como um
índice da coleção Workbooks da seguinte maneira: workbooks(1) ou pelo nome do arquivo
workbooks(“nome arquivo”). O número de índice indica a ordem em que os arquivos foram abertos
ou criados. Workbooks(1) é o primeiro livro criado e Workbooks(Workbooks.Count) é o último
criado.
PROPRIEDADE FULLNAME
Exemplo1:
Exemplo2:
Exemplo3:
MÉTODO ADD
O método Add permite criar uma nova pasta de trabalho vazia e adicioná-la à coleção.
Exemplo 1:
O exemplo seguinte adiciona uma nova pasta de trabalho vazia ao Microsoft Excel.
Exemplo 2:
MÉTODO ACTIVATE
MÉTODO CLOSE
Fecha a pasta de trabalho desejada. Close tem alguns parâmetros, se caso omitido o
funcionamento da ação será padrão Windows.
A macro abaixo fecha a pasta de trabalho ativa sem salvar.
Exemplo 1:
Exemplo 2:
Exemplo 3:
A macro do exemplo abaixo fecha a pasta de trabalho ativa dando a opção de escolha se o
usuário deseja salvar.
MÉTODO SAVE
EVENTOS DE UM WORKBOOK
A maioria dos eventos de um Workbook afetam globalmente uma aplicação. Para acessar os
eventos de um Workbook dentro do ambiente VBA, você deve dar duplo clique em
EVENTO ACTIVATE
Ocorre quando a pasta de trabalho que contém esse evento torna-se ativa.
EVENTO OPEN
Esse procedimento é ativado quando uma pasta de trabalho é aberta, não necessita de nenhuma
interface com o usuário..
Exemplo:
EVENTO NEWSHEET
EVENTO SHEETCHANGE
Ocorre quando qualquer intervalo em uma planilha é alterado. Sh é a planilha; Target é o intervalo
alterado. Para afetar uma planilha específica, referencie Worksheet_Change.
Exemplo1:
A macro abaixo abre uma pasta de trabalho quando você digita o nome da pasta de trabalho
desejada em uma célula na planilha da pasta de trabalho ativa:
Exemplo2:
Esse exemplo só aceita valores menores ou igual a 500. Se você digitar um valor maior que 500
em uma célula na pasta de trabalho, será exibida uma caixa de mensagem e o valor é removido.
Vamos ver abaixo alguns exemplos onde usaremos Propriedades, Métodos e Eventos de um
Workbook descritos acima.
Exemplo 1:
Esse exemplo cria um novo arquivo solicitando que o usuário digite o nome, após salva e fecha o
novo arquivo.
Exemplo 2:
A macro abaixo abre uma pasta de trabalho existente, localizando o caminho onde a mesma se
encontra.
Objeto Application
O objeto Application representa todo o aplicativo Microsoft Excel e seus derivados. Através dele,
podemos configurar a visualização, execuções e outras funcionalidades do Excel. O Objeto
Application possui várias propriedades e métodos.
PROPRIEDADE THISWORKBOOK
Retorna um objeto de pasta de trabalho que representa a pasta onde a macro código atual está
funcionando. ThisWorkbook sempre devolve a pasta no qual o código está sendo executado.
PROPRIEDADE DISPLAYALERTS
Exemplo1:
Este exemplo fecha a pasta de trabalho “Tempo.xls” sem perguntar se deseja salvar alterações.
Exemplo2:
A macro abaixo exclui uma planilha sem aviso “Application.DisplayAlerts = False”, antes de
excluir a segunda planilha mostra um aviso “Application.DisplayAlerts = True”.
PROPRIEDADE SCREENUPDATING
Essa propriedade permite desativar a atualização quando False. True a atualização da tela é
ativada.
Exemplo:
No exemplo abaixo você verá uma folha em branco, sem qualquer movimento e, em seguida, uma
folha onde as células de A1 a A10000 são iguais a "77".
MÉTODO QUIT
Esse método encerra o Microsoft Excel com a opção que pergunta ao usuário se deseja salvar os
arquivos que estão sendo fechados, caso marque “não” fecha sem salvar.
Exemplo:
MÉTODO ONKEY
Exemplo1:
Exemplo3:
Sintaxe:
Onde:
Set – palavra chave que indica a associação do objeto a uma variável do tipo objeto
<Var_Objeto> - Variável Objeto
<Objeto> - Tipo do objeto a ser atribuído à variável
Dim oob As Object - O tipo de variável de objeto que você usar para armazenar o objeto retornado
pode afetar o desempenho do seu aplicativo. Declarar uma variável de objeto com a cláusula As Object
cria uma variável que pode conter uma referência a qualquer tipo de objeto.
Dim Cel As Range - Quando você define uma variável de objeto para um objeto Range, você pode
facilmente manipular o intervalo usando o nome da variável.
Dim Planilha WorkSheet - Uma variável objeto Worksheet pode representar uma planilha ou um
conjunto de planilhas, assim você pode manipular as planilhas utilizando o nome da variável.
Dim Arquivo Workbook – Quando você definir uma variável de objeto para um objeto Workbook,
você pode manipular as pastas de trabalho do Microsoft Excel fazendo referencia a variável.
Dim X As Application – Uma variável objeto application pode representar todo o aplicativo Microsoft
Excel, contendo opções de configurações, métodos que retornam objetos e assim por diante.
Exemplo da Declaração:
O exemplo seguinte cria a variável de objeto cel, após atribui a mesma o intervalo A1:E10 da
plan1 na pasta de trabalho ativa. As instruções modificam propriedades do intervalo utilizando o
nome da viriável que é referente ao objeto de intervalo.
Exemplo2:
Você pode combinar vários intervalos em um objeto Range usando o método Union. O exemplo
seguinte cria um objeto Range chamado unicel, define-o com os intervalos A1:B2 e C3:D4 e, em
seguida, formata com negrito os intervalos combinados.
Ao salvar a pasta, utilizar a opção salvar como e no tipo de arquivo escolher suplemento (*.xlam).
Note que o arquivo muda a extensão de xlsm para xlam e o local de salvamento muda
automaticamente para uma pasta de suplementos.
Converter arquivo em suplemento utilizando o Editor do VBA - Abra a pasta de trabalho que você deseja
converter em um suplemento. Alterne para o Editor VBA. No Project Explorer, dê um clique duplo em
ThisWorkbook. Na janela, Propriedades localize a propriedade chamada IsAddin e mude seu valor para
True, conforme figura abaixo:
Pressione Ctrl+G para exibir a janela de verificação Imediata. Nessa janela, salve o arquivo,
utilizando uma extensão xlam, conforme a figura abaixo:
INSTALANDO O SUPLEMENTO
FECHANDO SUPLEMENTOS
Desmarque o suplemento caixa de diálogo Suplementos. Isso fecha o suplemento para essa
sessão e assegura que ele não será aberto durante sessões futuras ou até que você o ative
novamente.
Para excluir um suplemento é necessário fazer pelo Windons Explorer. Localize o arquivo
renomeie e coloque em outro lugar, ou se realmente não quiser o suplemento pode excluir
definitivamente com Delete.
FORMULÁRIOS
O userform é um formulário personalizável que o Microsoft Excel tem disponível para interagir com
a planilha de cálculo. Aparece sobreposto à planilha de cálculo não permitindo qualquer seleção
enquanto este estiver aberto. Podem-se colocar nos userforms uma grande quantidade de
controles como textbox, listbox, image, combobox, entre muitos outros ou utilizar alguns activex. O
objetivo é melhorar a utilização das planilhas quer visualmente quer funcionalmente.
Desenhando o Formulário
Formulário em execução
Range("A65536").End(xlUp).Offset(1, 0).Select
Linha = ActiveCell.Row
Range("A65536").End(xlUp).Offset(0, 0).Select
Linha = ActiveCell.Row
End Sub
CONTROLES DE INTERFACE
Rótulo (Label1) – permite colocar um texto dentro do formulário. Para alterar o texto a ser
exibido no controle, clique na propriedade Caption e digite o texto desejado. Para formatar
use as propriedades Font e ForeColor.
Caixa de Texto (TextBox1) – são as melhores formas de receber dados de entrada. A caixa de
texto permite digitação de qualquer tipo de dados alfanumérico, numérico, datas e até mesmo
caracteres especiais.
Método set Focus – esse método dá foco á caixa de texto que o chamou.
Evento Change - ocorre sempre que uma cauxa de texto tem sua propriedade Text alterada, ou
seja, com qualquer digitação executada.
Evento Enter – ocorre quaando a caixa de texto recebe o foco.
Evento Exit – entra em ação sempre que a caixa de texto perde o foco.
MÉTODOS DE UM USERFORM
EVENTOS EM UM USERFORM
Os eventos mostrados na sequência servem também para vários outros controles, portanto mais a
frente podemos apenas expandir o conceito.
Activate – ocorre quando o formulário for ativado.
Click – dá-se toda vez que o formulário for clicado.
Doubleclick – acontece sempre que o formulário receber um duplo clique.
Deactivate – ocorre quando um formulário for desativado.
Initialize – acontece toda vez que um formulário for carregado para memória.
PROGRAMANDO O USERFORM
Diferentemente dos outros módulos, dar um duplo clique no módulo do formulário abre o
formulário no Modo de Criação. Para visualizar o código, clique com o botão direito do mouse no
módulo ou no userform no Modo de Criação e selecione Exibir Código, ou de um duplo clique no
userform.
Exatamente como uma planilha, um userform tem eventos desencadeados por ações. Depois que
o userform foi adicionado ao projeto, os eventos estarão disponíveis na lista suspensa que fica no
canto superior direito da janela de código, selecionando-se Userform na lista suspensa Objeto,
canto superior esquerdo da janela código.
Vários eventos para o userform podem ser selecionados na lista suspensa na parte superior
esquerda da janela Código
PROGRAMANDO CONTROLES
Para programar um controle, selecione o controle no qual você deseja programar, clique com o
botão direito do mouse sobre o controle, selecione Exibir Código ou dê um duplo clique no
controle. O rodapé, o cabeçalho e a ação padrão para o controle são automaticamente inseridos
na janela de código. Para ver e/ou escolher outras ações para um controle, selecione o controle
na lista de Objeto e visualize as ações na lista de eventos. Podem ser escolhidas várias ações
para um mesmo controle na lista de eventos.
No exemplo abaixo criamos um programa no controle Botão de Comando com o Name BTN_OK,
o programa tem o objetivo de inserir nome e idade em uma planilha do excel.
Vamos criar uma nova planilha com o cabeçalho preparando para receber os dados.
Agora vamos digitar o código que fará todo o trabalho que necessitamos.
Sub Importa_Dados()
Dim Arq_Atual As String
Dim Arq_Dados As String
Dim Ult_Linha As Long
Dim Cod As Long
Dim Pais As String
Dim Prod As String
Dim Vend As String
Dim Data As Date
Dim Preço As Currency
Dim Quant As Long
Dim Desc As Double
Dim Total As Currency
Dim Nome_Vendedor As String
Application.ScreenUpdating = False
Arq_Atual = ActiveWorkbook.Name
Dados.Select
Range("A2:I1048576").ClearContents
Range("A1").Select
Arq_Dados = ActiveWorkbook.Name
Range("A1048576").End(xlUp).Offset(0, 0).Select
Ult_Linha = ActiveCell.Row
Range("A2").Select
Windows(Arq_Atual).Activate
ActiveCell.Offset(1, 0).Select
Windows(Arq_Dados).Activate
Windows(Arq_Atual).ActiveCell = Cells(ActiveCell.Row, 1)
Windows(Arq_Atual).ActiveCell.Offset(0, 1) = Cells(ActiveCell.Row, 2)
Windows(Arq_Atual).ActiveCell.Offset(0, 2) = Cells(ActiveCell.Row, 3)
Windows(Arq_Atual).ActiveCell.Offset(0, 3) = Cells(ActiveCell.Row, 4)
Windows(Arq_Atual).ActiveCell.Offset(0, 4) = Cells(ActiveCell.Row, 5)
Windows(Arq_Atual).ActiveCell.Offset(0, 5) = Cells(ActiveCell.Row, 6)
Windows(Arq_Atual).ActiveCell.Offset(0, 6) = Cells(ActiveCell.Row, 7)
Windows(Arq_Atual).ActiveCell.Offset(0, 7) = Cells(ActiveCell.Row, 8)
Windows(Arq_Atual).ActiveCell.Offset(0, 8) = Cells(ActiveCell.Row, 9)
End If
ActiveCell.Offset(1, 0).Select
Loop
Windows(Arq_Dados).Close SaveChanges:=False
ActiveWorkbook.Save
Application.ScreenUpdating = True
End Sub
EXPORTAÇÃO DE DADOS
Outro exemplo é a exportação de dados para uma outra pasta de trabalho do Excel,
gerando dados em uma planilha.
Sub Exporta_Dados()
Dim Ult_Linha As Long
Dim Arq_Produtos As String
Dim Arq_Novo As String
Application.ScreenUpdating = False
Arq_Produtos = ActiveWorkbook.Name
Arq_Novo = ActiveWorkbook.Name
Range("A2:D1048576").ClearContents
Windows(Arq_Produtos).Activate
Ult_Linha = Range("A1048576").End(xlUp).Row
Range("A2").Select
End Sub