Você está na página 1de 83

Excel 2013 - Macros

Excel 2013 - Macros

Todos os direitos reservados para Alfamídia Prow.

AVISO DE RESPONSABILIDADE

As informações contidas neste material de treinamento são distribuídas “NO ESTADO EM QUE SE ENCONTRAM”, sem qualquer garantia, expressa ou implícita. Embora todas as precauções tenham sido tomadas na preparação deste material, a Alfamídia LTDA. não têm qualquer responsabilidade sobre qualquer pessoa ou entidade com respeito à responsabilidade, perda ou danos causados, ou alegadamente causados, direta ou indiretamente, pelas instruções contidas neste material ou pelo software de computador e produtos de hardware aqui descritos.

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.

Macro é um conjunto de comandos em seqüência que automatizam as tarefas do Excel, fazendo que você trabalhe com mais eficiência e menos erros.

que você trabalhe com mais eficiência e menos erros. Para se criar uma macro é utilizada

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.

Não é necessário o conhecimento que o usuário tenha conhecimento desta linguagem. As ferramentas do Microsoft Office tem um gravador de rotinas que gera exatamente o programa em VBA.

Ferramentas do VBA Faixa de Desenvolvedor.

Para facilitar a vida do ususário para tratamento e gravação de macros o ideal é ativar a barra de desenvolvedor, pois esta, por padrão, vem oculta nas ferramentas do Microsoft Office.

Para ativar a barra seguimos o seguinte caminho:

Na guia Arquivo:

Opções:

seguimos o seguinte caminho: Na guia Arquivo:  Opções: Na tela que segue selecionar a opção

Na tela que segue selecionar a opção personalizar faixa de opções e na tela da direita selecionar a guia desenvolvedor.

que segue selecionar a opção personalizar faixa de opções e na tela da direita selecionar a

O Excel exibe a faixa de Desenvolvedor conforme figura abaixo.

Onde:

exibe a faixa de Desenvolvedor conforme figura abaixo. Onde: Ícone Visual Basic – Abre o editor

Ícone Visual Basic Abre o editor Visual Basic Ícone Macros Exibe a caixa de diálogo Macro, na qual podemos optar por executar ou editar uma macro a partir da lista de macros. Ícone Gravar Macro Inicia o processo de gravação de uma macro. Ícone Usar Referência Relativas Alterna entre o uso de gravação relativa ou absoluta. Ícone de Segurança de Macro Acessa a Central de Confiabilidade, onde podemos escolher ativar ou desativar macros para executar nesse computador.

Gravar uma Macro

Existem duas forma s de gravar uma macro: através do gravador de macros ou utilizando o editor e neste desenvolver o programa utilizando as instruções em Visual Basic for Applications.

Gravador de Macros.

Indo na guia do Desenvolvedor, selecionar a seguinte sequencia:

Gravar Macros

Na tela que segue.

Gravador de Macros. Indo na guia do Desenvolvedor, selecionar a seguinte sequencia:  Gravar Macros Na

Nome da macro: DIGITAR

Tecla de atalho: Ctrl + Shift + D

OK

Clique na célula B4

Digite EXCEL

Clique na célula B5

Digite MACROS

Clique na célula B6

Digite CURSO

Clique no botão Parar Gravação

Observação: na gravação de uma macro podemos utilizar referências relativas ou absolutas.

macro podemos utilizar referências relativas ou absolutas. Uma vez criada e salva a macro podemos vincular

Uma vez criada e salva a macro podemos vincular esta a um botão ou imagem, na opção inserir da barra do desenvolvedor:

ou imagem, na opção inserir da barra do desenvolvedor: Vai aparecer a a seguinte tela: Onde

Vai aparecer a a seguinte tela:

da barra do desenvolvedor: Vai aparecer a a seguinte tela: Onde no Controle de Formulários escolhemos
da barra do desenvolvedor: Vai aparecer a a seguinte tela: Onde no Controle de Formulários escolhemos

Onde no Controle de Formulários escolhemos o botão.

Definimos o mesmo na tela e depois selecionamos a macro a qual vincularemos ele.

de Formulários escolhemos o botão. Definimos o mesmo na tela e depois selecionamos a macro a
Para visualizar a macro gravada, na guia desenvolvedor teclar a opção Visual Basic. A tela

Para visualizar a macro gravada, na guia desenvolvedor teclar a opção Visual Basic.

A tela que segue será apresentada:

a opção Visual Basic. A tela que segue será apresentada: Onde no lado direito você tem

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:

as teclas ALT+F11. Será aberta a janela conforme abaixo: Na janele apresentada não será mostrado o

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 ambientecomo: User Form, Módulo, Módulo de Classe e Procedimento. Windows. Permite localizar determinadas palavras dentro do

Windows.

Permite localizar determinadas palavras dentro do código escrito. - Desfazer e Refazer. Possuem as mesmas funções conhecidas no ambiente Windows.Possuem as mesmas funções conhecidas no ambiente Windows. - Executar, Parar, Redefinir. Estes comandos especiais do

- Executar, Parar, Redefinir. Estes comandos especiais do ambiente VBA controlam a execução de um bloco de código ou de um userform.Possuem as mesmas funções conhecidas no ambiente Windows. - Ativa e desativa o modo de criação.

- Ativa e desativa o modo de criação.

- Ativa e desativa o modo de criação.

- Ativa a janela do Project Explorer.

-

Ativa a janela do Project Explorer.

- Ativa a Janela Propriedades. - Ativa o pesquisador de objeto. Lista os objetos disponíveis

- 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.para trabalhar com a codificação no Microsoft Excel.  Janela Project Explorer Se a janela não

Janela Project Explorer

Se a janela não estiver visível, ative-a através do comando Exibir/Project Explorer ou pressionando simultaneamente as teclas (CTRL+R), ou ainda clicando no botão da barra de ferramentas.

A janela Project Explorer exibe todos os

elementos principais contidos dentro da pasta

de trabalho Excel. Ela é composta de projetos

VBA ativos, ou seja, todas as pastas de trabalho Excel abertas no momento. Cada pasta é dividida em Microsoft Excel Objetos, Formulários e Módulos (quando houver). A pasta de trabalho e suas planilhas são os objetos mostrados em Microsoft Excel Objetos, que também poderão ser codificados com VBA. Formulários vão conter os userforms criados para a aplicação, e Módulos conterá todos os módulos que possuem códigos públicos feitos pelo programador ou criados pelo Microsoft Excel na composição de macros.

módulos que possuem códigos públicos feitos pelo programador ou criados pelo Microsoft Excel na composição de

Janela de Propriedades

Exibe todas as configurações que podem ser feitas nos Objetos (planilhas, userforms, entre outros) do ambiente de programação em tempo de objeto.

outros) do ambiente de programação em tempo de objeto. Na figura acima a Janela Project Explorer

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:

Alterar o seu conjunto de propriedades

Ativar métodos específicos do objeto para executar determinadas tarefas

Associar procedimentos aos eventos que podem ocorrer sobre o objeto

Exemplo 1:

aos eventos que podem ocorrer sobre o objeto Exemplo 1: O valor Range("A1") é um objeto:

O valor Range("A1") é um objeto: manipulações feitas sobre ele implicam ações

realizadas na célula A1.

Exemplo 2

ele implicam ações realizadas na célula A1 . Exemplo 2 O objeto ActiveCell se refere à

O objeto ActiveCell se refere à célula ativa no momento da execução da macro: no

exemplo acima, a célula selecionada receberá o valor 10,0

PROPRIEDADES

São os estados internos de um objeto.

São as variáveis internas de um objeto.

As propriedades ou atributos são as características dos objetos. Quando definimos uma propriedade normalmente especificamos seu nome e seu tipo. Podemos ter a ideia de que

as propriedades são algo assim como as variáveis onde armazenamos os dados relacionados com os objetos.

Observe um dos exemplos abaixo:

Range("A1").

Range("A1").

Range("A1").

Value Font.Name Font.Size
Value
Font.Name
Font.Size

= "VBA - Excel!"

= "Arial"

= 11

Como dito anteriormente, estas instruções se aplicam ao objeto Range("A1"), ou seja, à célula A1. Elas alteram ou definem propriedades deste objeto. Propriedades são, portanto, características de cada objeto; por exemplo, não existe uma propriedade Value para o objeto Application, mas ela existe para uma célula (objeto Range).

MÉTODOS

São a forma de se interagir com um objeto.

São funções ou transformações que podem ser aplicadas aos objetos.

São a única forma de alterarmos os atributos de um objeto.

São a interface do objeto para o mundo externo.

São os procedimentos e funções de um objeto.

Métodos são ações aplicadas a um objeto. Ao contrário das propriedades, que modificam

suas características, métodos realizam ações mais amplas.

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

Classe de objetos: conjunto de objetos com as mesmas propriedades, com os mesmos métodos e que respondem aos mesmos eventos

É a combinação em um único registro de campos que conterão dados e procedimentos, funções.

Instância: todo o objeto particular de uma classe

Uma classe descreve as variáveis, propriedades, procedimentos e eventos de um objeto. Objetos são instâncias de classes; Você pode criar quantos objetos precisar depois que você tenha definido uma classe.

Lista de objetos, propriedades e métodos

A

linguagem VBA possui um grande número de classes (definições de objetos), métodos

e

propriedades que facilitaa elaboração de macros, na barra de ferramentas do Editor VB

podemos encontrar uma ferramenta, Pesquisador de Objeto, que lista hierarquicamente todos estes elementos. Para abrir o Pesquisador de Objeto, estando no editor VB, clique no ícone Pesquisador de objeto :, ou pressione F2. Será exibido uma janela conforme abaixo:

ou pressione F2. Será exibido uma janela conforme abaixo: A lista à esquerda exibe todas as

A lista à esquerda exibe todas as classes; ao selecionar um de seus itens, a região à direita exibirá todas as propriedades e métodos disponíveis para um objeto daquele tipo. Na figura acima, foi selecionada a propriedade Font dos objetos da classe Range.

As classes, métodos e propriedades subordinadas

a um determinado objeto podem ser exibidos no

momento da digitação de uma macro. Ao digitar o ponto após o nome do objeto em uso, esta lista será exibida automaticamente.

da digitação de uma macro. Ao digitar o ponto após o nome do objeto em uso,
Observe: Para confirmar a escolha da opção pressione a tecla TAB. Os métodos são exibidos

Observe:

Para confirmar a escolha da opção pressione a tecla TAB.

Para confirmar a escolha da opção pressione a tecla TAB. Os métodos são exibidos com o

Os métodos são exibidos com o ícone verde

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:

Private Sub Workbook_Open()

Ocorre quando o arquivo é aberto por ação do método Open.

Private Sub Workbook_Activate()

Ocorre quando o arquivo passa a ser o arquivo ativo por ação do método Activate.

Private Sub Workbook_Newsheet(ByVal Sh As Object)

Ocorre quando é inserida uma nova planilha (Sh referencia a nova planilha).

Procedimentos e Funções

Podemos trabalhar com duas estruturas diferentes com macros: funções e procedimentos. Procedimentos: é um conjunto de instruções em VBA que executam algum tipo de ação, mas não retornando valor algum. Função: também é um conjunto de instruções em VBA, mas por sua vez retorna obrigatoriamente um valor mesmo sendo nulo.

sua vez retorna obrigatoriamente um valor mesmo sendo nulo. DEFINIÇÃO DE ROTINAS/SUBROTINAS (MACROS) As

DEFINIÇÃO DE ROTINAS/SUBROTINAS (MACROS)

As Rotinas/sub-rotinas são os procedimentos Sub, aquelas cuja definição é delimitada pelas palavras-chave Sub e EndSub sedo que todas as rotinas de gravação de macros no Excel são definidas desta forma.

Sub <nome_da_macro> ( )

<corpo_da_macro>

End Sub

<nome_da_macro> ( ) <corpo_da_macro> End Sub O corpo da macro pode ser composto por um conjunto

O corpo da macro pode ser composto por um conjunto de instruções.

Definição de Função

Utilizando o editor do Visual Basic podemos criar nossas funções que ficaram vinculadas no assistente de funções como personalizadas.

Por exemplo:

Entrar no assistente de função e digite:

Por exemplo: Entrar no assistente de função e digite: Uma vez que uma função produz um

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.

outra função do Excel. dentro de qualquer outra função ou SubRotina. Ou função: pode utilizar o

Ou

função:

pode

utilizar

o

assistente

de

outra função do Excel. dentro de qualquer outra função ou SubRotina. Ou função: pode utilizar o

Clique em OK para a próxima etapa do assistente de função, conforme abaixo:

a próxima etapa do assistente de função, conforme abaixo: Preencha as caixas de diálogo Freq e

Preencha as caixas de diálogo Freq e Med com a referência das respectivas células clique em OK.

Med com a referência das respectivas células clique em OK. A montagem de uma função respeita

A montagem de uma função respeita a seguinte estrutura:

Function <Nome da Função> ( <argumento1> As <Tipo>, …) As <Tipo>

<Nome da Função> = <Valor / Expressão>

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:

em uma função deve ter seu tipo definido. São elas: Nota: Se os tipos de dados
em uma função deve ter seu tipo definido. São elas: Nota: Se os tipos de dados

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:

lucro. Para isso deve-se usar o preço de compra e preço de venda que se encontram

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.

Se a média menor que 7,0, escrever a mensagem “Reprovado por média”;

Se a frequência inferior a 75% , escrever a mensagem “Reprovado por frequência”;

Se a média maior e igual a 7,0 e menor 9,5, escrever a mensagem “Bom”;

Se a média maior e igual a 9,5, escrever a mensagem “Ótimo”.

maior e igual a 9,5, escrever a mensagem “Ótimo”. Exemplo 3 Usando uma função do Excel

Exemplo 3

Usando uma função do Excel em uma função no módulo VBA:

Usando uma função do Excel em uma função no módulo VBA: Uma função pode chamar outra

Uma função pode chamar outra através da instrução application.

Exemplo 4

No exemplo abaixo uma função chama outra função dentro dela.

abaixo uma função chama outra função dentro dela. Inputbox e msgbox Permitem a interação entre o

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.

dados no programa é portanto um mecanismo de entrada. Como é uma função produz um valor

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:

InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])

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.

Title É o título da caixa de mensagem, situado na barra de identificação (barra azul).

Default É um valor que já aparece preenchido na inputbox como valor padrão.

XPos, YPos É a posição em que a caixa de mensagem situa-se na tela. O padrão é o centro.

HelpFile, Context Utilizados para designar um arquivo e um contexto de ajuda para a caixa de mensagem.

FUNÇÃO MSGBOX

O MsgBox é um mecanismo de saída e permite ao usuário visualizar os dados produzidos pelo programa.

ao usuário visualizar os dados produzidos pelo programa. Sintaxe MsgBox(prompt[, buttons] [, title] [, helpfile,

Sintaxe

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

MsgBox também possui diversos parâmetros, mas somente o primeiro é obrigatório, sendo que todos os outros quando ignorados assumem valores atribuídos por padrão. Prompt É a mensagem a ser exibida na caixa de mensagem. Se construir uma mensagem muito longa poderá utilizar o caractere Enter Chr(13); Exemplo:

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:

MsgBox "Erro de Sintaxe !!!", , "Mensagem de Erro"

"Erro de Sintaxe !!!", , "Mensagem de Erro" Opções de configuração Buttons: VbOKOnly - Exibe somente

Opções de configuração Buttons:

VbOKOnly - Exibe somente o botão de OK.

VbOKCancel - Exibe os botões OK e Cancelar.

VbAbortRetryIgnore - Exibe os botões Anular, Repetir e Ignorar

VbYesNoCancel - Exibe os botões Sim, Não e Cancelar .

VbYesNo - Exibe os botões Sim e Não.

VbRetryCancel - Exibe os botões Repetir e Cancelar.

VbCritical - Exibe o ícone de Mensagem Crítica.

VbQuestion - Exibe o ícone de mensagem de Alerta.

VbExclamation - Exibe o ícone de mensagem de InformaçãoWarning Message.

VbInformation - Exibe o ícone de Information Message.

VbDefaultButton1 - O primeiro botão é o selecionado por default.

VbDefaultButton2 - O segundo botão é o selecionado por default.

VbDefaultButton3 - terceiro botão é o selecionado por default.

VbDefaultButton4 - O quarto botão é o selecionado por default.

Exemplos:

MsgBox "Data Inválida", vbCritical

Exemplos: MsgBox "Data Inválida", vbCritical MsgBox "Operação concluída com sucesso!", vbInformation,

MsgBox "Operação concluída com sucesso!", vbInformation, "Conclusão"

Inválida", vbCritical MsgBox "Operação concluída com sucesso!", vbInformation, "Conclusão"

ESTRUTURA DE PROGRAMAÇÃO

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.

do aluno e 3 notas calcule e escreva a média aritmética. Após digitar o exemplo na

Após digitar o exemplo na janela de edição do VBA, clique no botão executar de ferramentas ou no Menu Executar/Executar Macro.

de ferramentas ou no Menu Executar/Executar Macro . na barra OBS.: Quando ocorrer um erro na

na barra

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 Uma estrutura de seleção permite a escolha de um grupo de

ESTRUTURA DE SELEÇÃO

Uma estrutura de seleção permite a escolha de um grupo de ações e estruturas a ser

executado quando determinadas condições, representadas por expressões lógicas, são

ou não satisfeitas.

O SELEÇÃO SIMPLES

Instrução IF (Se) Then (Então)

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

End if

Comandos N

O comportamento do comando IF-THEN é o seguinte: primeiramente a condição é

avaliada, podendo resultar em dois valores: TRUE (verdadeiro) ou FALSE (falso). Se a

condição for verdadeira, os comandos 1 até N serão executados e, em seguida, o Bloco

de comandos. Se a condição for falsa, nenhum dos comandos de 1 a N será executado e

o programa irá diretamente para o Bloco de comandos.

O SELEÇÃO COMPOSTA

Instrução IF (Se) THEN (Então) ELSE (Senão)

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

O comportamento do comando IF-THEN-ELSE é o seguinte: A condição é avaliada; se ela for verdadeira, os comandos 1 até Comando N1 serão executados; se a condição for falsa, os comandos 2 a comandos n2 serão executados. Em ambos os casos, o comando posterior a ser executado será o bloco de comandos.

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.

e uma mensagem “Aprovado” ou “Reprovado” dependendo da sua média. A média mínima para aprovação será

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:

Idade

Classe Etária

Menos de 3 anos

Bebê

Dos 3 aos 12

Criança

Dos 13 aos 17

Adolescente

Dos 18 aos 25

Jovem

Dos 26 aos 65

Adulto

Mais de 65

Idoso

Jovem Dos 26 aos 65 Adulto Mais de 65 Idoso O SELEÇÃO DE MÚLTIPLA ESCOLHA Instrução

O SELEÇÃO DE MÚLTIPLA ESCOLHA

Instrução Select case (caso) <variável> Utilizar uma sequência encadeada de testes lógicos apesar de interessante, em algumas situações pode tornar o código relativamente complexo. Quando possuímos uma lista de valores para executar se verifica a necessidade de um comando para agrupar todos esses valores em uma única cláusula.

Quando nos deparamos com este tipo de situação existe uma instrução que se mostra mais otimizada e organizada para a manipulação dos dados. Select Case <Variável> executa um dos vários grupos de instruções, dependendo do valor de uma expressão.

Select case <variável> Case <valor1>

Comando1

Case <valor2>

Comando2

Case Else <Comando caso nenhuma opção acima for verdadeira>

End Select

Exemplo:

Construa um programa que, tendo como dados de entrada o preço de um produto e um código de origem, emita o preço junto de sua procedência. Caso o código não seja nenhum dos especificados, o produto deve ser encarado como importado.

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: - Case Is <= 0 - Use a palavra-chave Is com um operador de

Onde:

- Case Is <= 0 - Use a palavra-chave Is com um operador de comparação (=, <>,<,<=, >,ou >=) para especificar uma restrição nos valores analisados;

- Case 1 Onde não tiver operador é considerado igualdade (=);

- Case 7, 8 Várias cláusulas são separadas por vírgulas;

- Case 10 To 20 - Use a palavra-chave To para especificar os limites de um intervalo de valores a ser analisados. O valor da expressão1 deve ser menor ou igual ao valor de

expressão2.

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

o Estrutura Do

Loop

(Faça

Laç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>

Neste caso, estamos utilizando o operador condicional Do While, no início do laço. O formato geral, neste caso é o seguinte:

Loop

(Faça Enquanto <condição>

laço)

Do While <condição>

Comando1

ComandoN

Loop

Exemplo:

Faz a soma dos 10 primeiros números maiores do que zero.

Do While <condição> Comando1 ComandoN Loop Exemplo: Faz a soma dos 10 primeiros números maiores do

Observe que dentro do laço, vamos Incrementando o valor da variável Contar, uma unidade para cada passagem do laço. Com isso, quando o valor de Contar, atingir 11, o teste do início do laço torna-se falso, e o laço é encerrado.

o Estrutura For

Next

Utilizamos o laço For

determinado de vezes. Utilizamos esta estrutura, quando já sabemos o número de vezes que uma determinada seção de código deve ser repetida. Neste tipo de estrutura, normalmente, utilizamos uma variável como contador. Este contador varia de um valor

para repetir um segmento de código, um número

Next,

inicial até um valor final. Formato do comando conforme abaixo:

For contador=inicio To fim incremento

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:

Faz a soma dos 10 primeiros números maiores do que zero

seja definido o incremento, será utilizado o padrão 1. Exemplo: Faz a soma dos 10 primeiros

Neste exemplo, a variável i inicia com o valor 1. Em cada passo, o valor de i é

acrescentado à variável Soma. Como o incremento não foi definido, será utilizado o

a variável Soma, terá armazenado o

padrão que é 1. Com isso, ao final do laço For

valor da soma dos 10 primeiros números inteiros.

Next,

Poderíamos utilizar um valor de incremento diferente de 1, para, por exemplo, obter a soma somente dos números pares menores do que 10:

obter a soma somente dos números pares menores do que 10: Objeto Range O Objeto range

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:

Range(“A1”): - Uma célula ,A1;

Range(“B2:C3”): - Um intervalo de células, B2:C3.

Range(“A1, B2:C3”): - Uma célula, A1, mais um intervalo B2:C3

Range(“Lucro”): - Um intervalo com o nome “Lucro”

Range.Value: - Valores das células do range

Range(“B2:C3”).Cells(1, 2): - Referência à célula na 1ª linha e na 2ª coluna dentro do intervalo B2:C3 (célula C2)

Range.Offset(RowOffset, ColumnOffset): - Desloca o range RowOffset linhas para cima/baixo e ColumnOffset colunas para a direita/esquerda

Range.Address(RowAbsolute, ColumnAbsolute): - Endereço do range.

Range.Count: - Número de células do range

Exemplo:

range. Range.Count: - Número de células do range Exemplo: PROPRIEDADE NAME Esta propriedade permite nomear o

PROPRIEDADE NAME

Esta propriedade permite nomear o intervalo de um Range especificado.

permite nomear o intervalo de um Range especificado. PROPRIEDADE VALUE Retorna ou define o valor de

PROPRIEDADE VALUE

Retorna ou define o valor de uma determinada célula Range.

Exemplo1:

define o valor de uma determinada célula Range. Exemplo1: Exemplo2: 'Onde, na primeira instrução se atribui

Exemplo2:

valor de uma determinada célula Range. Exemplo1: Exemplo2: 'Onde, na primeira instrução se atribui ao range

'Onde, na primeira instrução se atribui ao range "A1:F20" o nome "Conjunto", e na última instrução se utiliza essa designação para referenciar o respectivo conjunto de células e atribuir-lhe o valor 1, na planilha ativa.

Exemplo3:

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.

informações da planilha e devolve o salário na planilha. OBJETO RANGE X MÉTODO SELECT O Método
informações da planilha e devolve o salário na planilha. OBJETO RANGE X MÉTODO SELECT O Método

OBJETO RANGE X MÉTODO SELECT

O Método Select seleciona o Range especificado.

Range("A1").Select - Seleciona uma única célula que você vai escrever

Range("A1,A5,B4").Select - Selecionar um conjunto de células alternadas.

Exemplo:

célula que você vai escrever Range("A1,A5,B4").Select - Selecionar um conjunto de células alternadas. Exemplo:

PROPRIEDADE CELLS

A propriedade Cells refere-se todas as células do objeto especificado no intervalo, pode ser uma planilha ou o intervalo de células. Podemos utilizá-la com o objeto Range representando todas as células de dentro do range. Onde Cells(linha,Coluna).

Range(Cell1,Cell2)

Por exemplo, Range(“A1:B2”) é equivalente a Range(Cells(1,1),Cells(2,2).

Cells.Select Seleciona todas as células de uma planilha:

Cells.ClearContents - Limpa todas as células de valores ou fórmulas que pode estar em uma planilha:

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.

abaixo e execute a macro observando que está limpo. Exemplo2: Com base na planilha abaixo criar

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;

que calcule um acréscimo de 30% para os valores maior ou igual a 500 e escreva
As três afirmações abaixo são equivalentes: ActiveSheet.Range.Cells (1,1) Range.Cells(1,1) Cells(1,1) A propriedade

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.

da planilha e uma opção, retorna o valor célula ativa. OBJETO FONT O objeto Font possui
da planilha e uma opção, retorna o valor célula ativa. OBJETO FONT O objeto Font possui

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.

Bold True define o estilo da fonte é negrito.

Itálic - True define se o estilo da fonte é itálico.

Size Define o tamanho da fonte.

ColorIndex define cor da fonte com valor inteiro de 1 a 56.

OBJETO INTERIOR

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

ColorIndex - Define cor de preenchimento em valor inteiro de 1 a 56 cores.

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.

Patterncolor e PatternColorindex Definem a cor padrão a ser aplicada ao fundo da célula.

PROPRIEDADE HORIZONTALALIGNMENT E VERTICALALIGNMENT

Controla o alinhamento de dados das células contidas no range selecionado, tanto horizontalmente quanto verticalmente. As constantes podem ser:

Alinhamento Horizontal:

xlLeft Alinhamento à esquerda.

xlCenter- Alinhamento centralizado.

xlRight- Alinhamento à direita

xlDistributed ou xlJustify - Alinhamento justificado.

Alinhamento Vertical:

xlTop - Alinhamento superior

xlCenter- Alinhamento centro (meio).

xlBottom- Alinhamento inferior

xlDistributed ou xlJustify.- Alinhamento justificado

Exemplo1:

As macros abaixo mostram recursos para alterar o tipo da fonte para Tahoma, tamanho 12, cor azul, estilo Negrito e alinhamento centralizado.

fonte para Tahoma, tamanho 12, cor azul, estilo Negrito e alinhamento centralizado. Exemplo do uso da
fonte para Tahoma, tamanho 12, cor azul, estilo Negrito e alinhamento centralizado. Exemplo do uso da

Exemplo do uso da propriedade Pattern.

fonte para Tahoma, tamanho 12, cor azul, estilo Negrito e alinhamento centralizado. Exemplo do uso da

Exemplo do uso da propriedade PatternColorIndex.

Exemplo do uso da propriedade PatternColorIndex. PROPRIEDADES COLOR E COLORINDEX As propriedades Color e ColorIndex

PROPRIEDADES COLOR E COLORINDEX

As propriedades Color e ColorIndex definem a cor de uma borda, fonte ou preenchimento de uma célula. Sendo que color em RGB, ex: Color=RGB(255,0,0), enquanto ColorIndex especifica em valor inteiro, ex: ColorIndex=3, os dois são equivalentes. Uma função RGB trabalha com três parâmetros, que indicam a quantidade de vermelho, verde e azul na composição de uma cor, variando de 0 a 255.

Exemplo:

na composição de uma cor, variando de 0 a 255. Exemplo: Exemplo: A macro abaixo gera

Exemplo:

A macro abaixo gera uma tabela de cores com os respectivos números para ser utilizado com a propriedade ColorIndex.

A macro abaixo gera uma tabela de cores com os respectivos números para ser utilizado com

COLEÇÃO BORDERS

A coleção Borders é responsável por determinar as características das bordas de um determinado Range. Com Borders são passadas as constantes que representam a borda está sendo alterada.

xlDiagonalDown Diagonal de cima para baixo.

xlDiagonalUp Diagonal de baixo para cima.

xlEdgeTop Borda superior.

xlEdgeBottom Borda inferior.

xlEdgeLeft Borde esquerda.

xlEdgeRight Borda direita.

xlInsideHorizontal Linha interna horizontal.

xlInsideVertical Linha interna vertical.

PROPRIEDADE LINESTYLE E WEIGHT

Propriedade LineStyle determina o estilo da linha a ser usada em bordas, Weight determina a espessura da borda.

Adiciona uma borda a um intervalo definindo um estilo. Constantes para LineStyle.

xlLineStyleNone Sem estilo

xlContinuous - padrão -

xlLineStyleNone – Sem estilo xlContinuous - padrão - xlDash - xlDashDot - xlDashDotDot - xlDot -

xlDash -

xlLineStyleNone – Sem estilo xlContinuous - padrão - xlDash - xlDashDot - xlDashDotDot - xlDot -

xlDashDot -

xlLineStyleNone – Sem estilo xlContinuous - padrão - xlDash - xlDashDot - xlDashDotDot - xlDot -

xlDashDotDot -

xlLineStyleNone – Sem estilo xlContinuous - padrão - xlDash - xlDashDot - xlDashDotDot - xlDot -

xlDot -

xlLineStyleNone – Sem estilo xlContinuous - padrão - xlDash - xlDashDot - xlDashDotDot - xlDot -

xlDouble -

xlLineStyleNone – Sem estilo xlContinuous - padrão - xlDash - xlDashDot - xlDashDotDot - xlDot -

Constantes para Weight a qual determina e espessura da borda.

xlThin - padrão -

a qual determina e espessura da borda. xlThin - padrão - xlMedium - xlThick – xlHairline

xlMedium -

e espessura da borda. xlThin - padrão - xlMedium - xlThick – xlHairline - O exemplo

xlThick

da borda. xlThin - padrão - xlMedium - xlThick – xlHairline - O exemplo a seguir

xlHairline -

xlThin - padrão - xlMedium - xlThick – xlHairline - O exemplo a seguir adiciona uma

O exemplo a seguir adiciona uma borda dupla para as células C1 até D5 na planilha ativa.

borda dupla para as células C1 até D5 na planilha ativa. O exemplo a seguir define

O exemplo a seguir define a cor da borda superior e inferior das células A2: G2 na cor

vermelho.

superior e inferior das células A2: G2 na cor vermelho. O exemplo a seguir define a

O exemplo a seguir define a cor da borda inferior das células A10: D10 na cor Azul no

estilo traçado.

das células A10: D10 na cor Azul no estilo traçado. PROPRIEDADE COUNT Esta propriedade conta número

PROPRIEDADE COUNT

Esta propriedade conta número de células, colunas ou linhas de um Range.

PROPRIEDADE COLUMN E ROW

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.

PROPRIEDADE COLUMNS E ROWS

Essas propriedades agem como coleções, que armazenam as informações de colunas e linhas de uma range.

Exemplo:

as informações de colunas e linhas de uma range. Exemplo: Observação: Outra forma de se obter

Observação:

Outra forma de se obter o total de linhas em uma planilha é a seguinte:

de se obter o total de linhas em uma planilha é a seguinte: PROPRIEDADE RESIZE Essa

PROPRIEDADE RESIZE

Essa propriedade permite alterar o tamanho de um intervalo com base na localização da célula ativa. Você pode determinar um novo intervalo conforme suas necessidades.

Exemplo:

PROPRIEDADE ADDRESS

Retorna o endereço de células do objeto Range em questão.

PROPRIEDADE OFFSET

Provoca um deslocamento de um determinado número de linhas e colunas, tendo com base o range ao qual será aplicado o deslocamento. Offset(linha, coluna), onde linha e coluna são os deslocamentos de linha e coluna.

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.

direita da célula que se encontra ativa na planilha ativa. FUNÇÃO ISEMPTY Retorna um valor booleano

FUNÇÃO ISEMPTY

Retorna um valor booleano se uma única célula estiver vazia ou não

Exemplo:

ativa na planilha ativa. FUNÇÃO ISEMPTY Retorna um valor booleano se uma única célula estiver vazia

MÉTODO ACTIVATE

Método Activate torna uma célula ativa.

O exemplo abaixo torna “C5” à célula ativa. Após a mesma recebe o formato negrito.

à célula ativa. Após a mesma recebe o formato negrito. MÉTODO COPY Copia o conteúdo de

MÉTODO COPY

Copia o conteúdo de um range para outro range de destino ou para o clipboard.

Exemplo:

para outro range de destino ou para o clipboard. Exemplo: MÉTODO DELETE Exclui as células do

MÉTODO DELETE

Exclui as células do Range especificado.

Exemplo:

outro range de destino ou para o clipboard. Exemplo: MÉTODO DELETE Exclui as células do Range

MÉTODO MERGE

Este método permite mesclar as células de um determinado Range.

método permite mesclar as células de um determinado Range. MÉTODO CLEAR Limpa todo e qualquer conteúdo

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:

envolve valores, formatação e fórmulas. Exemplo: MÉTODO SORT Este método é utilizado para classificar os

MÉTODO SORT

Este método é utilizado para classificar os dados dentro de um Range de células. Os parâmetros mais relevantes desse método são:

Keys são os campos-chave de classificação.

Order ordenação indica duas constantes;

xlAscending classifica em ordem crescente.

xlDescending classifica em ordem decrescente.

Header especifica se a primeira linha contém cabeçalhos.

MathCase é para uma classificação sensitiva, onde letras minúsculas têm prioridade sobre as maiúsculas.

Orientation orientação que podem ser duas:

xlSortColumns classifica por colunas.

xlSortRows classifica por linhas

Exemplo:

Exemplo:

Objeto Worksheet

O objeto Worksheet representa uma planilha, especificada da coleção Worksheets. O objeto Worksheet é também um membro da coleção Sheets. Quando queremos referenciar uma

Worksheets de uma pasta de trabalho necessitamos indicar qual planilha, para isso temos que especificar com o número de índice qual a posição da planilha. Por exemplo, Worksheets (1) é a

primeira planilha da esquerda na pasta de trabalho, Worksheets(2),

Use Worksheets (índice), ou o nome da planilha Worksheets(“Plan1”), ou ainda se a planilha foi

renomeada Worksheets(“Balanço”). Sheets é um conjunto de planilhas,. Sheets (1) é a primeira planilha na pasta de trabalho, ou Sheets(“plan1”), ou se a planilha foi renomeada indicar o novo nome Sheets(“FolhaPgto”).

e assim sucessivamente.

Exemplos:

A macro abaixo escreve na Plan1 no intervalo A1:C5 o texto "OLÁ".

escreve na Plan1 no intervalo A1:C5 o texto "OLÁ". Preenche com valor de 1 á 100

Preenche com valor de 1 á 100 o intervalo de 10 linhas por 10 colunas.

Plan1 no intervalo A1:C5 o texto "OLÁ". Preenche com valor de 1 á 100 o intervalo

Métodos e eventos aplicados aos objetos Worksheets.

PROPRIEDADE CODENAME

Retorna o nome de código de uma planilha, que substitui a declaração Worksheets(índex).

O CodeName da planilha só pode ser visto entrando no Editor do Visual Basic no Project Explorer.

entrando no Editor do Visual Basic no Project Explorer. Conforme mostra a figura acima, o 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:

A macro abaixo muda o nome de uma planilha especificada.

pode ser usada para trocar o nome de uma planilha. Exemplo: A macro abaixo muda o

PROPRIEDADE VISIBLE

Controla a visibilidade de uma planilha, Podemos usar valores conforme a seguir:

PlanilhaHidden vai ocultar a planilha indicada.

planilhaVisible - vai deixar visível a planilha anteriormente oculta.

Exemplos:

O exemplo abaixo oculta Plan2

oculta. Exemplos: O exemplo abaixo oculta Plan2 Exemplo abaixo exibe a Plan2 oculta pela macro anterior.

Exemplo abaixo exibe a Plan2 oculta pela macro anterior.

Exemplo abaixo exibe a Plan2 oculta pela macro anterior. Observação: Podemos utilizar o parâmetro xlVeryHidden

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:

O exemplo abaixo escreve na célula B2 da planilha ativa e mostra o nome da planilha.

na janela especificada. Exemplos: O exemplo abaixo escreve na célula B2 da planilha ativa e mostra

MÉTODO ADD

O método Add permite adicionar novas planilhas à pasta de trabalho ativa.

Exemplo 1:

A macro abaixo adiciona à planilha “Bacana” a esquerda da planilha selecionada.

à planilha “Bacana” a esquerda da planilha selecionada. Exemplo 2: O exemplo insere 4 novas planilhas

Exemplo 2:

O exemplo insere 4 novas planilhas após a última planilha.

2: O exemplo insere 4 novas planilhas após a última planilha. Exemplo 3: Insere uma planilha

Exemplo 3:

Insere uma planilha com nome após a última.

2: O exemplo insere 4 novas planilhas após a última planilha. Exemplo 3: Insere uma planilha

MÉTODO ACTIVATE

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.

na qual “D7” torna -se ativa e recebe o formato negrito. MÉTODO COPY Permite criar uma

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.

inserindo a cópia após a última planilha da coleção. MÉTODO DELETE Exclui um planilha da coleção

MÉTODO DELETE

Exclui um planilha da coleção WorkSheets.

Exemplos:

O exemplo abaixo exclui a planilha especificada.

MÉTODO DELETE Exclui um planilha da coleção WorkSheets. Exemplos: O exemplo abaixo exclui a planilha especificada.

O exemplo abaixo exclui a última planilha da Coleção WorkSheets.

abaixo exclui a última planilha da Coleção WorkSheets. MÉTODO MOVE Move uma planilha da coleção para

MÉTODO MOVE

Move uma planilha da coleção para local especificado.

O exemplo abaixo move a planilha ativa para a última posição

abaixo move a planilha ativa para a última posição MÉTODO SELECT O método Select seleciona uma

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:

uma planilha ou varias planilhas, movendo a seleção do usuário para a nova planilha especificada. Exemplo1:

Exemplo2:

uma planilha ou varias planilhas, movendo a seleção do usuário para a nova planilha especificada. Exemplo1:

Exemplo3:

Exemplo3: EVENTO DE UM WORKSHEET Os eventos relacionados a um objeto Worksheet afetam apenas a planilha

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.

de combinação da direita você escolhe o evento desejado. EVENTO ACTIVATE Este método é equivalente a

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:

na guia na parte inferior da Planilha. Ocorre quando a planilha em que está o evento

EVENTO DEACTIVATE

Deactivate ocorre quando outra planilha se torna a planilha ativa.

Exemplo:

quando outra planilha se torna a planilha ativa. Exemplo: EVENTO BEFOREDOUBLECLICK O evento BeforeDoubleClick permite

EVENTO BEFOREDOUBLECLICK

O evento BeforeDoubleClick permite controlar o que acontece quando o usuário dá um duplo clique na planilha. Esse evento possui argumentos:

Cancel que proporciona a possibilidade de cancelá-lo. Target do tipo Range, através desse argumento, podemos identificar qual célula recebeu o duplo clique e dar os tratamentos desejados ao evento.

Exemplo:

clique e dar os tratamentos desejados ao evento. Exemplo: EVENTO BEFORERIGHTCLICK Evento desencadeado quando o

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:

objeto clicado com o botão direito do mouse; Cancel configurado como True impede que a ação-padrão

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.

envolvidas na expressão sofrer uma alteração de valor. EVENTO CHANGE Ocorre quando uma das células da
envolvidas na expressão sofrer uma alteração de valor. EVENTO CHANGE Ocorre quando uma das células da

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:

externo. Por exemplo, quando o texto é inserido, editado ou excluído. Target é a célula que

Exemplo 2:

Quando uma célula for preenchida com um valor, a cor de fundo da célula ficará em vermelho.

com um valor, a cor de fundo da célula ficará em vermelho. Exemplo 3: A macro

Exemplo 3:

A macro abaixo força a entrada do texto em caracteres maiúsculos.

abaixo força a entrada do texto em caracteres maiúsculos. EVENTO SELECTIONCHANGE Ocorre quando um novo intervalo

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:

dentro de uma planilha. Target é o intervalo recentemente selecionado e podemos dar o tratamento desejado.

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

Obtém o nome da pasta de trabalho, incluindo o seu caminho no disco.

Exemplo1:

Essa função retorna o caminho do disco e o nome da pasta de trabalho ativa.

o caminho do disco e o nome da pasta de trabalho ativa. Exemplo2: A função retorna

Exemplo2:

A função retorna apenas o nome da pasta de trabalho.

A função retorna apenas o nome da pasta de trabalho. Exemplo3: Esse exemplo de macro mostra

Exemplo3:

Esse exemplo de macro mostra caminho do arquivo ativo.

A função retorna apenas o nome da pasta de trabalho. Exemplo3: Esse exemplo de macro mostra

PROPRIEDADE PATH

Retorna o caminho onde esta a pasta de trabalho solicitada.

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.

uma nova pasta de trabalho vazia ao Microsoft Excel. Exemplo 2: A macro abaixo cria um

Exemplo 2:

A macro abaixo cria um novo arquivo fecha salvando com nome.

A macro abaixo cria um novo arquivo fecha salvando com nome. MÉTODO ACTIVATE Esse método torna

MÉTODO ACTIVATE

Esse método torna uma pasta de trabalho ativa.

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:

o funcionamento da ação será padrão Windows. A macro abaixo fecha a pasta de trabalho ativa

Exemplo 2:

Esse exemplo a macro fecha a pasta de trabalho ativa e o salva.

exemplo a macro fecha a pasta de trabalho ativa e o salva. Exemplo 3: A macro

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.

dando a opção de escolha se o usuário deseja salvar. MÉTODO SAVE Salva mudanças na pasta

MÉTODO SAVE

Salva mudanças na pasta de trabalho.

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

dentro do ambiente VBA, você deve dar duplo clique em Esta Pasta_de_Trabalho, que está no Project

Esta Pasta_de_Trabalho, que está no Project Explorer e aí selecionamos o evento.

Principais eventos de um objeto Workbook

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:

A macro abaixo abre a pasta de trabalho com a planilha Janela ativada.

abre a pasta de trabalho com a planilha Janela ativada. EVENTO NEWSHEET Ocorre quando uma nova

EVENTO NEWSHEET

Ocorre quando uma nova planilha é adicionada à pasta de trabalho ativa. No exemplo abaixo a macro será acionada quando inserir nova planilha, a nova planilha será inserida após a última já existente.

nova planilha será inserida após a última já existente. EVENTO SHEETCHANGE Ocorre quando qualquer intervalo em

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.

será exibida uma caixa de mensagem e o valor é removido. Vamos ver abaixo alguns exemplos

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.

usuário digite o nome, após salva e fecha o novo arquivo. Exemplo 2: A macro abaixo

Exemplo 2:

A macro abaixo abre uma pasta de trabalho existente, localizando o caminho onde a mesma se encontra.

arquivo. Exemplo 2: A macro abaixo abre uma pasta de trabalho existente, localizando o caminho onde

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

Habilita ou desabilita a exibição de mensagens de alerta como resposta de algumas ações do Microsoft Excel enquanto uma macro está em execução. True habilita as mensagens, False desabilita.

Exemplo1:

Este exemplo fecha a pasta de trabalho “Tempo.xls” sem perguntar se deseja salvar alterações.

sem perguntar se deseja salvar alteraçõ es. Exemplo2: A macro abaixo exclui uma planilha sem aviso

Exemplo2:

A macro abaixo exclui uma planilha sem aviso “Application.DisplayAlerts = False”, antes de excluir a segunda planilha mostra um aviso “Application.DisplayAlerts = True”.

= 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".

onde as células de A1 a A10000 são iguais a "77". MÉTODO QUIT Esse método encerra

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:

fechados, caso marque “não” fecha sem salvar. Exemplo: MÉTODO ONKEY um pressionada. Executa Exemplo1: procedimento

MÉTODO ONKEY

um

pressionada.

Executa

Exemplo1:

procedimento

especificado

quando

uma

combinação

de

teclas

ou

chave

é

O exemplo desabilita a configuração padrão da tecla TAB.

especificado quando uma combinação de teclas ou chave é O exemplo desabilita a configuração padrão da

Exemplo2:

Habilita a configuração padrão da tecla TAB.

Exemplo2: Habilita a configuração padrão da tecla TAB. Exemplo3: Quando pressionar a tecla TAB será exibido

Exemplo3:

Quando pressionar a tecla TAB será exibido uma caixa de mesnsagem.

a configuração padrão da tecla TAB. Exemplo3: Quando pressionar a tecla TAB será exibido uma caixa

VARIÁVEIS DO TIPO OBJETO

As variáveis do tipo objeto se refere a um objeto. Uma variável de objeto pode armazenar muitos valores, todas as propriedades associadas ao objeto estão associadas a variável objeto.

Declaração da Variável Objeto

Sintaxe:

Dim <Var_Objeto> As Objeto ‘Atribuição de uma variável Objeto Set <Var_Objeto> = <Objeto>

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:

Dim aplicativo As Excel.Application

Dim arquivo As Excel.Workbook

Dim planilha As Excel.WorkSheet

Set aplicativo = CreateObject("Excel.Application")

Set arquivo = aplicativo.Workbooks.Add

Set planilha = arquivo.Worksheets(1)

Exemplo1:

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.

o nome da viriável que é referente ao objeto de intervalo. Exemplo2: Você pode combinar vários

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.

e, em seguida, formata com negrito os intervalos combinados. O exemplo abaixo abre uma nova pasta

O exemplo abaixo abre uma nova pasta de trabalho do Microsoft Excel.

formata com negrito os intervalos combinados. O exemplo abaixo abre uma nova pasta de trabalho do

Suplementos

Os suplementos fornecem comandos e funcionalidades opcionais para o Microsoft Excel. Suplementos são projetos desenvolvidos em VBA Excel, com a extensão XLA completamente ocultos aos olhos do usuário. Uma vez que um suplemento é criado e instalado no Excel, as suas macros ou funções podem ser utilizadas em qualquer pasta de trabalho que estiver aberta. É permitido salvar dados no arquivo de suplementos, mas você não pode selecionar o arquivo. Além disso, se você gravar os dados no arquivo de suplementos que você quer disponibilizar futuramente, os códigos de suplementos precisam tratar o salvamento do arquivo. Você pode adicionar ThisWorkbook.Save ao evento Workbook_BeforeClose do suplemento.

CONVERTENDO UMA PASTA DE TRABALHO EM UM SUPLEMENTO

Siga os passos abaixo para converter uma pasta de trabalho em suplementos.

Ao salvar a pasta, utilizar a opção salvar como e no tipo de arquivo escolher suplemento (*.xlam).

em suplementos. Ao salvar a pasta, utilizar a opção salvar como e no tipo de arquivo

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:

IsAddin e mude seu valor para True, conforme figura abaixo: Pressione Ctrl+G para exibir a janela

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:

janela de verificação Imediata. Nessa janela, salve o arquivo, utilizando uma extensão xlam, conforme a figura

INSTALANDO O SUPLEMENTO

No menu de opçoes do excel, selecionar opções e suplementos.

menu de opçoes do excel, selecionar opções e suplementos. FECHANDO SUPLEMENTOS Desmarque o suplemento caixa de

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

O objetivo é melhorar a utilização das planilhas quer visualmente quer funcionalmente. Desenhando o Formulário

Formulário em execução

Formulário em execução Código em VBA para a inclusão dos dados na planilha Private Sub Fechar_Click()

Código em VBA para a inclusão dos dados na planilha

Private Sub Fechar_Click() Unload UserForm_Cadastro End Sub

Private Sub OK_Click() Dim Linha As Integer

If Me.TextBox_Nome.Value = "" Then MsgBox "Falta digitar o nome do Cliente", vbCritical, "Atenção" Me.TextBox_Nome.SetFocus End If

Range("A65536").End(xlUp).Offset(1, 0).Select Linha = ActiveCell.Row

If MsgBox("Confirma a Inclusão ? ", vbYesNo, "Atenção") = vbYes Then Cells(Linha, 1) = TextBox_Nome.Value Cells(Linha, 2) = TextBox_Rua.Value Cells(Linha, 3) = TextBox_Bairro.Value Cells(Linha, 4) = TextBox_Cidade.Value Cells(Linha, 5) = TextBox_CEP.Value Cells(Linha, 6) = TextBox_Estado.Value End If TextBox_Nome.Value = "" TextBox_Rua.Value = "" TextBox_Bairro.Value = "" TextBox_Cidade.Value = "" TextBox_CEP.Value = "" TextBox_Estado = "" TextBox_Nome.SetFocus

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 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 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.

entra em ação sempre que a caixa de texto perde o foco. Botão de Comando (CommandButton1)

Botão de Comando (CommandButton1) os botões de comandos, normalmente, são os responsáveis pelo serviço pesado de um formulário. É através deles que as funções finais são executadas e que determinam as consequências da aplicação. Os botões são sempre o ponto de saída de um formulário. As propriedades recomendáveis para alteração: Name, Caption. As demais propriedades podem ser alteradas conforme conceitos descritos no item Propriedades Comuns.

Caixa de Combinação (ComboBox1) – serve para mostrar ao usuário uma lista de opções multipla

Caixa de Combinação (ComboBox1) serve para mostrar ao usuário uma lista de opções multipla escolha. Elas podem, ou não, permitir digitação, è uma boa forma de impedir que o usuário insira em sua planilha informações que não estejam se acordo com seus objetivos. Abaixo segue as principais propriedades especificas, Métodos e Eventos do controle caixa de combinação. Propriedade List permite acesso a lista de opções. Por exemplo, se uma lista possuir cinco elementos, ComboBox1.list(0) será o primeiro, e ComboBox1.list(5) será o último elemento da lista. Propriedade Style essa propreidade vai definir o estilo da caixa de combinação. Temos duas opções fmStyleDropDownCombo permite a digitação, e fmStyleDropDownList obriga a escolha de um item na lista. Propriedade ListIndex essa é uma propriedade muito importante das caixas de combinação, pois retorna ou determina qual item está selecionado. Este retorno é um índex que nos permite acessar qualquer elemento de uma caixa de combinação. Propriedade ListCount retorna a quantidade de ityens dentro da lista. Método AddItem - método que permite adicionar um novo item em uma caixa de combinação. Sua sintaxe:

Onde Item é uma string ou variável indicando o texto do item a ser inserido, e Índex é a posição em que o item deve ser inserido na caixa de combinação. Método RemoveItem Permite remover um item da lista de uma caixa de combinação. Sua sintaxe:

Método Clear remove todos os itens de uma caixa de combinação.

Caixa de Listagem (ListBox1) – as caixas de listagem tem basicamente as mesmas funções das caixas de combinação. Sua as caixas de listagem tem basicamente as mesmas funções das caixas de combinação. Sua única diferença é que elas se apresentam no formato de lista aberta. Vejamos algumas propriedades especificas. Propriedade MultiSelect permite múltipla escolha em uma caixa de mensagem. Temos três opções: fmMultiSelectSigle permite a seleção de um único item da lista; fmMultiSelectMulti permite mais de um item selecionada, utilizando o mouse para marcar e desmarcar os itens e fmMultiSelectExtended permite mais de um item selecionado, utilizandoas teclas Ctrl e Shift em suas funções padrões de seleção. Propriedade Selected através dessa propriedade, aliada ao índice, podemos determinar se um item está ou não selecionado.

podemos determinar se um item está ou não selecionado. Caixa de Seleção (CheckBox1) – caixa de

Caixa de Seleção (CheckBox1) caixa de seleção é um contole booleano, ou seja, permite escolher entre Sim e Não para um determinado item. Propriedade Value esta propriedade define o estado do botão. True marca o botão e false desmarca.

o estado do botão. True marca o botão e false desmarca. Botão de Opção (OptionButton1) -

Botão de Opção (OptionButton1) - Os botões de opção tem características semelhantes as caixas de combinação. Porem os botões não podem trabalhar sozinhos; são necessários pelo menos dois botões ou mais para que possa haver uma escolha entre os botões. Se colocar três ou mais botões no formulário, ao escolher um os outros automáticamente são desmarcados. Para conseguir criar vários blocos de opção em um mesmo formulário, devemos colocar um cotrole Frame, para que possa servir de contêiner de controle, assim os botões que estão dentro de um frame não influenciam no estado dos botões que estejam em outros frames ou no formulário.

Quadro (Frame1) – Muito utilizado como contêiner de controles, tais como, Botão de Opção e

Quadro (Frame1) Muito utilizado como contêiner de controles, tais como, Botão de Opção e Caixa de Seleção.

tais como, Botão de Opção e Caixa de Seleção. Propriedades Comuns aos Controles Name – propriedade

Propriedades Comuns aos Controles Name propriedade que identifica o controle nos códigos. Caption texto presente no controle. Left /Top - posição relativa ao canto superior esquerdo do formulário. Height / Width - altura e comprimento do controle BackColor - define cor do fundo do objeto selecionada. ForeColor - define cor do texto do objeto selecionado. BorderColor permite definir a cor da borda do formulário. BorderStyle determina o estilo de borda do formulário. BackStyle determina o estilo do fundo do controle (transparente/opaco) Font Exibe a caixa padrão de Fonte do Sitema onde podemos determinar a configuração dos textos exibidos no formulário ou nos controles. ControlTipText exibe um texto de ajuda quando se deixa o mouse sobre o controle. Propriedades comuns em Caixa de Combinação e Caixa de Listagem RowSource - origem dos dados do controle. Pode ser um intervalo de células da planilha. ColumnCoun - número de colunas a serem exibidas no controle. ColumnWidths - tamanho de cada coluna. BoundColumn - coluna dependente associada à propriedade Value. TextColumn - coluna dependente associada à propriedade Text. Value - valor da coluna dependente. Text - valor presente na caixa. ControlSource - célula ligada à propriedade Value da caixa

MÉTODOS DE UM USERFORM

Show - apresenta o formulário Hide - esconde o formulário mas não o remove da memória Unload - remove o formulário da memória

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.

selecione Exibir Código, ou de um duplo clique no userform. Exatamente como uma planilha, um 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.

suspensa Objeto, canto superior esquerdo da janela código. Vários eventos para o userform podem ser selecionados

Vários eventos para o userform podem ser selecionados na lista suspensa na parte superior esquerda da janela Código

Vários eventos para o userform podem ser selecionados na lista suspensa na parte superior esquerda da

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.

o objetivo de inserir nome e idade em uma planilha do excel. Antes de executar o

Antes de executar o userform precisamos chamá-lo a partir de qualquer módulo, para issoutilizamos o método Show, sua sintaxe: NameForm.Show.

precisamos chamá-lo a partir de qualquer módulo, para issoutilizamos o método Show, sua sintaxe: NameForm.Show.

Após executar o código acima você visualizará seu formulário conforme abaixo a cada informação que inserir nas caixas de textos e clicar no botão Ok uma planilha do Excel estará recebendo os dados.

cada informação que inserir nas caixas de textos e clicar no botão Ok uma planilha do

IMPORTAÇÃO DE DADOS

Para a importação de dados para uma planilha do Excel, precisamos conhecer os dados que estão na origem e com isso programar a leitura e a inserção dos dados na planilha.

Aqui demonstramos alguns dados a serem importados.

planilha. Aqui demonstramos alguns dados a serem importados. Vamos criar uma nova planilha com o cabeçalho

Vamos criar uma nova planilha com o cabeçalho preparando para receber os dados.

planilha com o cabeçalho preparando para receber os dados. Agora vamos digitar o código que fará

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

Nome_Vendedor = UCase(InputBox("Nome do Vendedor"))

If Nome_Vendedor = "" Then Exit Sub End If

Application.ScreenUpdating = False

Arq_Atual = ActiveWorkbook.Name Dados.Select

Range("A2:I1048576").ClearContents

Range("A1").Select

Workbooks.Open "F:\CURSOS\Excel VBA - SEFAZ\Base_Vendas.xlsm"

Arq_Dados = ActiveWorkbook.Name

Range("A1048576").End(xlUp).Offset(0, 0).Select Ult_Linha = ActiveCell.Row

Range("A2").Select

Do While ActiveCell.Row <= Ult_Linha

If UCase(Cells(ActiveCell.Row, 4)) = Nome_Vendedor Then

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

MsgBox "Concluido.", vbInformation, "Conclusão"

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.

Abaixo a planilha com alguns dados de origem:

uma planilha. Abaixo a planilha com alguns dados de origem: O código que fará o trabalho

O código que fará o trabalho de exportação:

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

' Caso o arquivo já esteja aberto, então não dá o alerta Application.DisplayAlerts = False Workbooks.Open "F:\CURSOS\Excel VBA - SEFAZ\" & "Arq Dados Vendas 1.xlsx" Application.DisplayAlerts = True

Arq_Novo = ActiveWorkbook.Name

Range("A2:D1048576").ClearContents

Windows(Arq_Produtos).Activate

Ult_Linha = Range("A1048576").End(xlUp).Row

Range("A2").Select

Do While ActiveCell.Row <= Ult_Linha Range("A" & ActiveCell.Row & ":D" & ActiveCell.Row).Copy Windows(Arq_Novo).Activate Range("A1048576").End(xlUp).Offset(1, 0).Select ActiveCell.PasteSpecial xlPasteValues Windows(Arq_Produtos).Activate ActiveCell.Offset(1, 0).Select

Loop Application.CutCopyMode = False Windows(Arq_Novo).Close savechanges:=True Application.ScreenUpdating = True MsgBox "Concluido.", vbInformation, "Exportação"

End Sub