21
VBA Excel - Introdução ao VBA no Excel Este post tem o intuito de apresentar o VBA (Visual Basic for Applications) no Excel para os usuários avançados do Excel que ainda não são programadores de fato. Teremos: Uma visão geral da linguagem VBA, Algumas instruções sobre como acessar o VBA no Excel, e Uma solução para um problema no mundo real, além de dicas sobre programação e depuração. Por que usar o VBA no Excel? O Microsoft Excel é uma ferramenta que pode ser usada para manipular, analisar e apresentar dados como se fossem informações. Apesar do conjunto de recursos disponíveis na interface padrão (UI), podemos querer maneiras mais fáceis de executar algumas das nossas repetitivas e aborrecidas tarefas, ou executar alguma tarefa que a UI não pode resolver sozinha. Felizmente, os aplicativos do Office, como o Excel tem no VBA alguma capacidade de estender as suas funcionalidades padrão. O VBA funciona como a maioria das linguagens de programação: Processando diversos conjuntos de algoritmos alocados em SUBs, FUNCTIONS ou MACROS.

VBA Excel - Introdução ao VBA no Excel

Embed Size (px)

Citation preview

Page 1: VBA Excel - Introdução ao VBA no Excel

VBA Excel - Introdução ao VBA no Excel

Este post tem o intuito de apresentar o VBA (Visual Basic for Applications) no Excel para os usuários avançados do Excel que ainda não são programadores de fato. Teremos:

Uma visão geral da linguagem VBA, 

Algumas instruções sobre como acessar o VBA no Excel, e 

Uma solução para um problema no mundo real, além de dicas sobre programação e depuração.

Por que usar o VBA no Excel?

O Microsoft Excel é uma ferramenta que pode ser usada para manipular, analisar e apresentar dados como se fossem informações. Apesar do conjunto de recursos disponíveis na interface padrão (UI), podemos querer maneiras mais fáceis de executar algumas das nossas repetitivas e aborrecidas tarefas, ou executar alguma tarefa que a UI não pode resolver sozinha. Felizmente, os aplicativos do Office, como o Excel tem no VBA alguma capacidade de estender as suas funcionalidades padrão.

O VBA funciona como a maioria das linguagens de programação: Processando diversos conjuntos de algoritmos alocados em SUBs, FUNCTIONS ou MACROS. 

Aprender a programar pode parecer intimidador, mas com um pouco de paciência e alguns exemplos a maioria dos usuários acham que vale a pena aprender um pouco de codificação VBA para tornar o trabalho mais fácil, dando-lhes a capacidade de fazer coisas que pensavam ser impossíveis. E o melhor: Depois de ter aprendido um pouco, torna-se muito mais fácil aprender técnicas e coisas diferentes. Então as possibilidades são ilimitadas!

AUTOMATIZANDO TAREFAS REPETITIVAS

Page 2: VBA Excel - Introdução ao VBA no Excel

De longe, o motivo mais comum para se usar o VBA no Excel é o de automatizar tarefas repetitivas. Por exemplo, suponha que tenha umas 12 planilhas, cada uma delas contendo uma dúzia de pastas dentro de si, e que cada uma dessas precise sofrer algumas alterações, estas poderiam ser:

Aplicação de uma nova formatação para algum intervalo fixo entre as células.

Retornar alguns detalhes estatísticos dos dados de cada uma destas abas, escolhendo o melhor tipo de gráfico para exibí-los com as características selecionadas, e, em seguida, criar e formatar um gráfico de conformidade, exportando-o para o Powerpoint.

Qualquer uma das 2 tarefas acima não precisam ser executadas manualmente, pelo menos não mais do que algumas vezes. Em vez disso, poderá automatizar as tarefas usando o VBA para escrever instruções explícitas para Excel a seguir.

É importante não limitarmos o VBA aplicando-o somente às tarefas repetitivas, pois também podemos usá-lo em outros âmbitos, tais como:

Para construir novas capacidades que não são naturais ao Excel, como desenvolvermos algoritmos que analisem os nossos dados, e em seguida usem os recursos gráficos do Excel para exibir os resultados.

Também podemos escrever algum código para realizar tarefas que integrem o Excel a outros aplicativos do Office tais como o Microsoft Access. Talvez, de todos os demais aplicativos do Office, o Excel seja o mais utilizado como algo que se assemelhe a uma plataforma de desenvolvimento. Além de todas as tarefas que envolvem listas óbvias e contábeis, os desenvolvedores usam o Excel em uma série de tarefas de visualizações de dados para a criação de protótipos de software.

Page 3: VBA Excel - Introdução ao VBA no Excel

É importante lembrar-nos de que apesar de termos excelentes razões para utilizarmos o VBA para solucionar diversos dos nossos problemas e necessidades, não poderemos envolvê-lo em tudo. O Excel tem uma grande variedade de recursos. Mesmo que sejamos Power Users é muito provável não estarmos familiarizados com todos estes. Antes de decidirmos implementar alguma solução em VBA, procuremos cuidadosamente saber se já não existe um recurso similar ou uma maneira mais simples para obtermos o que desejamos.

Programação VBA

Usando o código para fazer as aplicações fazerem coisas. Podemos achar que escrever código é algo misterioso ou difícil, mas todos os dias usamos os princípios básicos no nosso dia-a-dia.

Os aplicativos do Office forma construídos de tal forma que são compostos por coisas chamadas de Objetos. Estes podem receber instruções. Podemos interagir com os aplicativos através do envio de instruções para vários objetos da aplicação. Esses objetos são muitos, variados, e flexíveis, mas têm os seus limites. Só podem fazer aquilo que foram projetados para fazer, e só farão o que instruí-los a fazer.

Objetos

Objetos de programação relacionam-se entre si de forma sistemática em uma hierarquia chamada de object model (OM = modelo de objeto) da aplicação. O OM espelha aproximadamente o que vemos na interface do usuário, por exemplo, o OM do Excel contém: Application, Workbook, Sheet, e Chart objects, entre muitos outros. O OM é um mapa conceitual do aplicativo e dos seus recursos.

Propriedades e métodos

Podemos manipular os objetos, definindo suas propriedades e chamando os seus métodos. Definir uma propriedade altera alguma característica do objeto. Chamar um método faz com que o objeto realize alguma ação. Por exemplo, o objeto Workbook tem um método Close, que fecha o Workbook  e uma propriedade ActiveSheet que representa a planilha ativa no Workbook.

Page 4: VBA Excel - Introdução ao VBA no Excel

Coleções

Muitos objetos encontram-se nas versões singular e plural: Workbook e Workbooks, Worksheet e Worksheets, e assim por diante. As versões plurais são chamadas de coleções. Objetos de coleção são usados para executarem uma ação em vários itens da coleção. 

Page 6: VBA Excel - Introdução ao VBA no Excel

Macros e Editor do Visual BasicAgora que você sabe algo sobre como o Microsoft Excel expõe seu modelo de objeto, você pode tentar

chamar métodos de objetos e definição de propriedades de objetos. Para isso, você deve escrever seu

código em um lugar e de uma forma que o Office pode entender, normalmente, usando o Visual Basic

Editor. Embora seja instalado por padrão, muitos usuários não sabem que é ainda disponível até que seja

ativado na fita.

Guia DesenvolvedorTodos os aplicativos do Office usar a fita. Um guia sobre a fita é o guia do desenvolvedor, onde você

acessar o Editor do Visual Basic e ferramentas para desenvolvedores outros. Como o Office não exibir a

guia Desenvolvedor por padrão, você deve habilitá-lo usando o seguinte procedimento:

Para habilitar a guia Desenvolvedor

1. Na guia Arquivo, selecione Opções para abrir a caixa de diálogo Opções do Excel.

2. Clique em Personalizar Faixa de Opções no lado esquerdo da caixa de diálogo.

3. Em Escolher comandos de, no lado esquerdo da caixa de diálogo, selecione Comandos

Populares.

4. Em Personalizar a fita no lado direito da caixa de diálogo, selecione as guias principais, e em

seguida, selecione a caixa de seleção Desenvolvedor.

5. Clique em OK.

Após o Excel exibe a guia Desenvolvedor, observe a localização do Visual Basic, macros e botões de

segurança de macrona guia.

Figura 1. Guia Desenvolvedor no Excel

Questões de segurançaClique no botão Segurança de macro para especificar quais as macros podem executar e em que

condições. Embora desonestos código de macro pode danificar seriamente o computador, as condições

de segurança que o impedem de executar macros úteis pode prejudicar seriamente a sua

produtividade. Macro de segurança é um tema complexo e complicado que você deve estudar e entender

se você trabalha com macros do Excel.

Page 7: VBA Excel - Introdução ao VBA no Excel

Para os fins deste artigo, estar ciente de que, se o Aviso de Segurança: Macros foram

desativados barra aparece entre a fita ea planilha quando você abrir um livro que contém uma macro,

você pode clicar no botão Conteúdo Enable para ativar as macros.

Além disso, como medida de segurança, você não pode salvar uma macro no formato de arquivo padrão

do Excel (xlsx)., Em vez disso, você deve salvar a macro em um arquivo com uma extensão especial,

xlsm..

Editor do Visual BasicEste procedimento a seguir mostra como criar um novo livro em branco para armazenar seus

macros. Você pode, então, salvar o livro no formato de xlsm..

Para criar um novo livro em branco

1. Clique no botão Macros na guia Desenvolvedor.

2. Na caixa de diálogo que aparece macro, tipo, Olá em Nome da macro.

3. Clique no botão Criar para abrir o Editor de Visual Basic com os contornos de uma nova macro

já digitou dentro

VBA é uma linguagem de programação completa, com um ambiente de programação correspondente

completo. Este artigo analisa apenas as ferramentas que você usa para começar a programação, e que

exclui a maioria das ferramentas no Editor do Visual Basic. Com esta ressalva, fechar a

janela Propriedades do lado esquerdo do Editor do Visual Basic, e ignorar as duas listas suspensas que

aparecem acima do código.

Figura 2. Editor do Visual Basic

O Editor do Visual Basic contém o seguinte código.

VB

Sub Olá () End Sub Sub significa Subrotina, que você pode definir para agora como "macro". Executando o Hello macro

executa qualquer código que está entre Sub Hello() e End Sub .

Agora edite a macro para que ele se parece com o seguinte código.

VB

Sub Olá () MsgBox ("Olá, mundo!") End Sub Volte para a guia Desenvolvedor no Excel e clique no botão Macros novamente.

Page 8: VBA Excel - Introdução ao VBA no Excel

Selecione a macro Olá na lista que aparece e, em seguida, clique em Executar para exibir uma caixa de

mensagem pequena que contém o texto "Olá, mundo!"

Você acabou de criar e implementado personalizado código VBA no Excel. Clique em OK na caixa de

mensagem para fechá-lo e concluir a execução da macro.

Se a caixa de mensagem não aparecer, verifique as configurações de segurança de macro e reiniciar o

Excel.

Fazendo Macros AcessívelVocê também pode obter a caixa de diálogo Macros da guia View, mas se você usar uma macro com

freqüência, você pode achar que é mais conveniente para acessá-lo com um atalho de teclado ou um

botão de barra de ferramentas de Acesso Rápido.

Para criar um botão para a macro Olá na Barra de Ferramentas de Acesso Rápido, use o seguinte

procedimento.

O procedimento a seguir descreve como fazer um botão para uma macro na barra de ferramentas de

Acesso Rápido:

Para criar um botão para uma macro na barra de ferramentas de Acesso Rápido

1. Clique na guia Arquivo.

2. Clique em Opções para abrir a caixa de diálogo Opções do Excel e, em seguida, clique

em Barra de Ferramentas de Acesso Rápido.

3. Na lista em Escolher comandos de:, escolha Macros. Encontre o texto que é semelhante

ao Book1 Olá! Na lista que aparece e selecione esse texto.

4. Clique no botão Adicionar >> para adicionar a macro para a lista no lado direito, e em seguida,

clique no botãoModificar ... para selecionar uma imagem de botão para associar com o macro.

5. Clique em OK. Você deverá ver seu novo botão na barra de ferramentas Acesso rápido acima

na guia Arquivo.

Agora você pode rapidamente executar a macro, a qualquer momento, sem usar o Developer guia-lhe

dar uma tentativa.

Um exemplo do mundo realSuponha que você tem um livro que contém as listas em um grande número de planilhas e que pretende

mudar o nome de cada planilha para combinar com o título da lista em que planilha. Não cada planilha

tem uma lista sobre ele, mas se isso acontecer, o título está na célula B1, e se isso não acontecer, a

célula B1 está em branco. Os nomes de planilhas sem listas devem ser deixados sozinhos.

Normalmente, isso pode ser uma tarefa complexa, que envolve olhar para cada planilha para ver se ele

tem uma lista, copiando o nome, se isso acontecer, clique na guia da planilha e, em seguida, colar o novo

nome. Em vez de realizar todas essas etapas manualmente, usar o Excel VBA para renomear as folhas

automaticamente.

Page 9: VBA Excel - Introdução ao VBA no Excel

Aprender sobre objetosPara resolver um problema de programação VBA, você deve primeiro descobrir quais objetos o código irá

manipular. Para pesquisar essa informação, uma ferramenta essencial é o Excel Referência Object

Model , que faz parte da Referência do Desenvolvedor do Excel no Microsoft Developer Network (MSDN).

Estes materiais de referência será atualizado para o Excel, quando é lançado publicamente, mas o Excel

Referência do desenvolvedor é adequada para a maioria dos fins do Excel.

Figura 3. Referência Excel Object Model no MSDN

O primeiro passo é descobrir como manipular os objetos particulares que você precisa para trabalhar com

para realizar sua tarefa, por exemplo, planilhas, nomes de planilhas, células e conteúdo de células. No

Excel, há pelo menos duas maneiras de abordar o problema:

Ir diretamente para o Modelo de Referência de Objetos.

Anote algumas das ações que deseja automatizar, ver como o código gravado manipula os

objetos, e depois ir para o Modelo de Referência de Objetos para obter mais informações.

As opiniões variam sobre qual abordagem é preferível, mas por agora, tente usar o Macro Recorder

primeiro.Usando o Macro RecorderÀs vezes, uma simples macro gravada é tudo que você precisa, nestes casos, você não precisa nem

olhar o código. Mais frequentemente, a gravação por si só não é suficiente. Em vez disso, é um ponto de

partida para o processo seguinte.

Para usar o gravador de macro como um ponto de partida para a sua solução

1. Registrar as ações que deseja código.

2. Rever o código e encontrar as linhas que realizam essas ações.

Page 10: VBA Excel - Introdução ao VBA no Excel

3. Excluir o resto do código.

4. Modificar o código gravado.

5. Adicionar variáveis, estruturas de controle, e outros códigos que o Macro Recorder não pode

gravar.

Comece a sua investigação por gravar uma macro que renomeia uma planilha para novo nome. Você

pode então usar a macro gravada para desenvolver a sua própria macro que renomeia várias planilhas

com base em seu conteúdo.

Para gravar uma macro que renomeia uma planilha

1. Clique em Gravar Macro na guia Desenvolvedor.

2. Nomear os RenameWorksheets macro, renomear Sheet1 para novo nome e clique em Parar

gravação.

3. Vá para a guia Desenvolvedor ou Vista, clique no botão Macros e escolha Editar para abrir o

Editor do Visual Basic.

O código no Editor do Visual Basic deve ser semelhante ao seguinte.VB

Sub RenameWorksheets () ' 'RenameWorksheets Macro ' ' Sheets ("Sheet1"). Selecione Nome Sheets ("Sheet1"). = "Nome novo" End Sub As primeiras quatro linhas após a linha de Sub são comentários. Qualquer linha que começa com um

apóstrofo é um comentário e não tem efeito sobre o que a macro faz. Os principais usos para comentários

são os seguintes:

Para tornar o código mais fácil de entender, não apenas para você, mas para qualquer pessoa

que pode precisar modificar o código mais tarde.

Para desativar temporariamente uma linha de código (chamado de comentá-la).

Os quatro comentários neste macro gravada servir nem a propósito, para excluí-los.

A próxima linha usa o método Select para selecionar o membro Sheet1 do objeto da coleção Sheets. No

código VBA, não é geralmente necessário para selecionar objetos antes de manipulá-los, apesar de que é

o que o Macro Recorder faz. Em outras palavras, esta linha de código é redundante, de modo que você

pode excluí-lo também.

A última linha da macro gravada modifica a propriedade do nome do membro Sheet1 da

coleção Sheets. Esta é a linha de manter.

Depois de fazer as alterações, o código gravado deve agora olhar como o seguinte.

VB

Sub RenameWorksheets () Nome Sheets ("Sheet1"). = "Nome novo" End Sub Alterar manualmente a folha de chamada Novo nome de volta para Sheet1, em seguida, executar a

macro. O nome deve mudar para novo nome.

Page 11: VBA Excel - Introdução ao VBA no Excel

Modificando o código gravadoAgora é hora de pesquisar a coleção de folhas que o Macro Recorder usado. O tema Folhas na

Referência Object Model inclui o seguinte texto.

"A coleção de folhas pode conter gráfico ou planilha objetos. Se você precisa trabalhar com folhas de

um só tipo, consulte o tópico objeto para esse tipo de folha."

Você só está trabalhando com planilhas, para mudar o código para o seguinte.

VB

Sub RenameWorksheets () Worksheets ("Sheet1") Nome. = "Nome novo" End Sub LoopingUma limitação do código até este ponto é que ele só faz uma alteração em uma planilha. Você pode

adicionar mais uma linha para cada planilha que deseja renomear, mas que se você não sabe quantas

planilhas existem, ou que seus nomes atuais são? Você precisa encontrar uma maneira de aplicar uma

regra para cada folha do livro.

VBA tem uma construção chamada Para cada loop que é o ideal. O loop For Each examina cada item em

um objeto de coleção, como planilhas e pode ser usado para realizar uma ação (como alterar o nome)

para alguns ou todos esses itens.

Para mais informações sobre o loop For Each, consulte a Referência de linguagem VBA . Clique em

"Visual Basic Tópicos conceituais", então "usando para cada ... próximas declarações". Também, estar

ciente de que a referência da linguagem VBA, como o Modelo de Referência de objeto, devolverá de

forma ampla o tempo que você gasta navegando, e é um excelente lugar para procurar idéias se você

ficar preso trabalhando em código.

Usando o exemplo em terceiro lugar no "usando para cada ... próximas declarações" tópico, edite a macro

para que ele se parece com o seguinte código.

VB

Sub RenameWorksheets () Para cada myWorksheet em planilhas myWorksheet.Name = "nome novo" Próximo End Sub myWorksheet é uma variável, isto é, o que ele representa varia. Neste caso,

o myWorksheet variável sucessivamente representa cada planilha na coleção Worksheets. Você não

tem que usar myWorksheet , você poderia usar "x", "ws",

"WorksheetToRenameAfterTheContentsOfCellB1", ou (com algumas restrições) quase qualquer nome

que você quiser.Uma boa regra de ouro é usar nomes de variáveis que são longas o suficiente para

lembrá-lo de que a variável representa, mas não tão longa como a desorganização do código.

Se você executar a macro em seu estado atual, ela produz um erro porque o Excel exige cada planilha

em uma pasta de trabalho para ter um nome único, mas a linha a seguir instrui o Excel para dar a cada

planilha o mesmo nome.

VB

myWorksheet.Name = "nome novo"

Page 12: VBA Excel - Introdução ao VBA no Excel

Para corrigir a linha de modo que você pode verificar que o para cada fábrica, laço, mudar a linha para o

seguinte.

VB

myWorksheet.Name = myWorksheet.Name & ", mudou" Em vez de tentar dar a cada planilha o mesmo nome, esta linha muda o nome atual de cada planilha ( myWorksheet.Name) para o nome atual com "-changed" anexado a ele.

Renomeando útilA macro está ficando perto de algo que possa realmente resolver o problema na mão. O que você precisa

agora é uma forma de levar informações das planilhas-se especificamente de célula B1 em cada planilha

e colocar essa informação para os nomes das planilhas.

Desta vez, em vez de usar o gravador de macros para descobrir como fazer referência a uma célula, dar

um palpite e ver se usando o objeto de celular vai funcionar. É um bom palpite, mas se você abrir o

Modelo de Referência de Objetos e de pesquisa para o objeto Cell, você achar que não há objeto Cell! Há

um objeto CellFormat embora.

O tema objeto CellFormat inclui o seguinte código no primeiro exemplo de código.

VB

'Definir o interior da célula A1 para amarelo. Range ("A1"). Selecione Acontece que você usa Gama para especificar um intervalo de células ou apenas uma célula

individual. Mais uma vez, você não precisa da parte. Select, mas você precisa descobrir como fazer

referência ao conteúdo do objeto Range, ao contrário do objeto Range si. Se você vai para o tema

objeto Range, você pode ler que Gama tem dois métodos e propriedades. O conteúdo de um Range é

uma coisa, não uma ação, então provavelmente seria uma propriedade. Se você digitalizar para baixo na

lista, você pode ver a propriedade Value. Então, tente o seguinte.

VB

Sub RenameWorksheets () Para cada myWorksheet em planilhas myWorksheet.Name = myWorksheet.Range ("B1"). Valor Próximo End Sub Você receberá um erro se você executar isso em um livro que contém planilhas onde B1 está vazia,

porque um intervalovazio tem um valor de "" (uma seqüência de texto vazio), que não é um nome de

planilha legal. É hora de criar alguns dados de exemplo de qualquer maneira. Faça as três folhas no livro

semelhante à figura abaixo, e em seguida, executar a macro.

Figura 4. Os dados da amostra para a macro RenameWorksheets

Page 13: VBA Excel - Introdução ao VBA no Excel

Os nomes de planilha deve mudar de acordo.

Verificação de células vaziasComo observado anteriormente, a macro falhará se qualquer das células B1 na pasta de trabalho estão

vazios. Em vez de verificar manualmente cada planilha, você pode codificar a macro para fazer isso por você. Antes da myWorksheet.Namelinha, adicione a seguinte linha de código.

VB

Se myWorksheet.Range ("B1"). Valor <> "" Then E depois do myWorksheet.Name linha adicione o seguinte texto.

VB

End If Isso é chamado de um If ... Then. O If ... Then instrui o Excel para fazer o que for nas linhas entre a linha

ea Se End If linha, mas somente se a condição na linha Se for cumprida. No exemplo, a linha seguinte

especifica a condição de cumprir.

VB

myWorksheet.Range ("B1"). Valor <> "" A <> significa "não é igual a", e as aspas, sem nada entre eles representam uma seqüência de texto

vazio, isto é, sem texto algum. Portanto, quaisquer que sejam as linhas de código vir entre o Se eo Fim

Se só será executado se o valor em B1 não é igual a nada, isto é, se houver texto na célula B1.

Para mais informações sobre a Se ... Então instrução, consulte a Referência de linguagem VBA. (O nome

completo é "declaração If ... Then ... Else", onde Else é um componente opcional.)

Declarações de variáveisOutra melhoria que você deve fazer para o macro é colocar uma declaração do myWorksheet variável

no início da macro.

VB

MyWorksheet Dim Planilha Dim é a abreviação de "Dimension", e Planilha é o tipo dessa variável particular. Esta declaração diz VBA que tipo de entidade myWorksheet representa. Note que depois de digitar Como, o Editor do Visual

Basic exibe um pop-up que lista todos os tipos disponíveis de variáveis. Isso é um exemplo de tecnologia

IntelliSense, isto é, o Editor do Visual Basic responde ao que determina que você está tentando fazer e

oferece uma lista de opções adequadas. Você pode escolher uma opção a partir da lista ou apenas

continuar a escrever.

Page 14: VBA Excel - Introdução ao VBA no Excel

Apesar de declarações de variáveis não são necessárias em VBA, usando-se fortemente

recomendado! Declarações de variáveis tornam muito mais fácil manter o controle de suas variáveis e

para rastrear erros no código. Além disso, esteja ciente de que se você declarar uma variável com um tipo

de objeto (como Planilha), o IntelliSense exibe uma lista adequada de propriedades e métodos

associados a esse objeto, se você usar a variável de objeto no final do macro.

ComentáriosA macro é complexo o suficiente agora para incluir alguns comentários que lembrá-lo que o código está

fazendo. O número de comentários para usar é em parte uma questão de estilo pessoal, mas, em geral,

também muitos comentários são melhores do que muito poucos. Código geralmente precisa ser

modificado e atualizado ao longo do tempo. Sem comentários, pode ser difícil de entender o que está

acontecendo no código, especialmente se a pessoa que modifica o código não é a mesma pessoa que o

escreveu, em primeiro lugar. Adicionando comentários para a condição Se e para a linha que renomeia

resultados das planilhas, no código a seguir.

VB

Sub RenameWorksheets () MyWorksheet Dim Planilha Para cada myWorksheet em planilhas "Certifique-se que a célula B1 não está vazio Se myWorksheet.Range ("B1"). Valor <> "" Then 'Renomear a planilha para o conteúdo da célula B1 myWorksheet.Name = myWorksheet.Range ("B1"). Valor End If Próximo End Sub Para testar a macro, renomear as planilhas de volta para Plan1, Plan2 e Plan3 e excluir o conteúdo da

célula B1 em uma ou mais das planilhas. Executar a macro para verificar se ele renomeia as planilhas

que têm texto na célula B1 e deixa as outras planilhas sozinho. A macro funciona para qualquer número

de planilhas, com qualquer combinação de células B1 povoadas e vazio.

Mais coisas que você pode fazer com VBAEsta seção examina mais algumas coisas que você pode fazer com o VBA no Excel. Os exemplos desta

seção são projetados para dar-lhe um sentido de os recursos do VBA em vez de focalizar específicas

cenários do mundo real. Você pode achar que é útil para analisar as informações na referência de modelo

de objeto sobre os objetos em cada passo como você trabalhar com os exemplos.

Importância de Ser AbertoUma boa maneira de aprender a programação em geral, e VBA Excel em particular, é uma estratégia em

que você tentar alguma coisa, fazê-lo funcionar, e então pergunte a si mesmo perguntas como:

O que eu poderia tentar em seguida?

O que eu quero aprender primeiro, dada a forma como eu quero usar VBA?

O que poderia ser apenas divertido ou interessante saber?

O que eu sou curioso sobre?

O leitor é fortemente encorajados a investigar o que avenidas abrir o caminho para o conhecimento.GráficosUma tarefa comum no Excel é criar um gráfico com base em um intervalo de células. Criar uma nova

macro chamadaAssortedTasks e digite o seguinte texto no Editor do Visual Basic.

Page 15: VBA Excel - Introdução ao VBA no Excel

VB

MyChart Dim ChartObject Adicione uma linha para criar o objeto gráfico e atribuir o myChart variável a ele.

VB

Definir myChart = ActiveSheet.ChartObjects.Add (100, 50, 200, 200) Os números entre os parênteses determinar a posição e tamanho do gráfico. Os dois primeiros números

são as coordenadas do canto superior esquerdo, eo segundo dois números são a largura e altura.

Criar uma nova planilha em branco e executar a macro. O gráfico que ele cria é inútil porque o gráfico não

tem dados.Excluir o gráfico que você acabou de criar e adicionar as seguintes linhas ao final do macro.

VB

Com myChart . Chart.SetSourceData Fonte: Seleção = End With Este é um padrão comum na programação VBA. Primeiro, você cria um objeto e atribuir a uma variável,

então você usa o ... Com Final Com a construção de fazer as coisas com o objeto. O código de exemplo instrui o gráfico para usar a seleção atual para seus dados. ( Selection é um valor para o

parâmetro Source do método SetSourceData, não um valor de uma propriedade de objeto, de modo a sintaxe VBA exige que você use dois pontos e um sinal de igual ( := ) em vez de apenas um sinal de

igual ( = ) para atribuir o valor).

Digite alguns números nas células A1: A5, selecione as células e, em seguida, executar a macro. O

gráfico mostra-se como o tipo de padrão, um gráfico de barras.

Figura 5. Gráfico de barras criado usando VBA

Page 16: VBA Excel - Introdução ao VBA no Excel

Se você não gosta do gráfico de barras, você pode alterá-lo para algum outro tipo de gráfico usando o

código que é semelhante ao seguinte.

VB

Com myChart . Chart.SetSourceData Fonte: Seleção = . Chart.ChartType = xlPie End With xlPie é um exemplo de um alto-constante, também conhecida como uma constante enumerada. Há

muitos destes casos durante Excel, e eles são exaustivamente documentado. Para mais informações

sobre constantes internas, consulte a seção Enumerações do Modelo de Referência de Objetos. Por

exemplo, as constantes para tipos de gráficos são listadas sob "Enumeration XlChartType".

Você pode modificar os dados. Por exemplo, tente adicionar esta linha logo após a declaração da

variável.

VB

Application.ActiveSheet.Range ("A4") valor. = 8 Você pode obter a entrada do usuário, e usar essa entrada para modificar os dados.

VB

myInput = InputBox ("Por favor digite um número:") Application.ActiveSheet.Range ("a5") Valor. = MyInput Por fim, adicione as seguintes linhas ao final do macro.

VB

ActiveWorkbook.Save ActiveWorkbook.Close A macro completa agora deve ser algo como o seguinte.

VB

AssortedTasks sub () MyChart Dim ChartObject Application.ActiveSheet.Range ("A4") valor. = 8 myInput = InputBox ("Por favor digite um número:") Application.ActiveSheet.Range ("a5") Valor. = MyInput Definir myChart = ActiveSheet.ChartObjects.Add (100, 50, 200, 200) Com myChart . Chart.SetSourceData Fonte: Seleção = . Chart.ChartType = xlPie End With ActiveWorkbook.Save ActiveWorkbook.Close End Sub Verifique se as células A1: A5 são ainda selecionado, executar a macro, digite um número na caixa de

entrada e, em seguida, clique em OK. O código salva e fecha o livro. Reabrir o livro e observe a mudança

para o gráfico de pizza.

UserFormsA seção anterior mostrou como usar uma caixa de entrada simples para obter a entrada do usuário. Além

da caixa de mensagem correspondente que exibe informações, o VBA oferece amplos recursos que você

pode usar para criar caixas de diálogo personalizadas para controles de código que são colocados

diretamente em planilhas, ou para manipular as caixas de diálogo que são construídos para o Excel. Para

mais informações sobre esses recursos, consulte Controles, caixas de diálogo e Formas na Referência do

desenvolvedor Excel.

Esta seção completa este olhar introdutório em Excel VBA dando uma olhada rápida no UserForms.

Na guia Desenvolvedor, clique no botão Visual Basic para abrir o Editor do Visual Basic, e depois vá

para o menu Inserir e escolha UserForm para abrir o Modo Design UserForm.

Você verá duas janelas. Um representa a UserForm que você está criando e de outro, a caixa de

ferramentas, mostra os vários controles que você pode adicionar ao seu formulário de usuário, por

Page 17: VBA Excel - Introdução ao VBA no Excel

exemplo, botões de comando, botões de opção, caixas de seleção e assim por diante. Você pode mover

o mouse sobre um controle caixa de ferramentas para ver que tipo de controle que ele cria.

Crie um formulário de usuário muito simples com um único botão que executa a macro Olá a partir no

início deste artigo.Na Caixa de Ferramentas, pressione o controle CommandButton, e arraste-o para o

formulário de usuário para criar um botão de comando. Direito do mouse no botão de comando e

escolha View Code.

O Sub que você vê é um esqueleto para um procedimento de evento, que é executado quando um

determinado evento ocorrer. Neste caso, como o nome da Sub indica, o evento que executa o código é

um clique em CommandButton1.Adicione a seguinte linha ao procedimento de evento.

VB

Executar ("Olá") O Editor do Visual Basic agora deve ser semelhante ao seguinte.

Figura 6. CommandButton1_Click procedimento de evento

Guarde o livro, vá ao menu Janela e escolha UserForm1 (UserForm) para voltar a ver o

UserForm. Clique na seta verde na barra de ferramentas para executar o UserForm. Quando a caixa de

diálogo aparecer, clique no botão de comando para executar a macro Olá, que exibe o "Olá,

mundo!" caixa de mensagem. Feche a caixa de mensagem para retornar ao formulário de usuário em

execução, em seguida, fechar o UserForm correndo para voltar para o modo Design.

Qual é o próximo?Você pode achar que as informações contidas neste artigo, quando combinado com algumas

experiências e tempo de qualidade estudar o Modelo de Referência de Objetos e Referência de

linguagem VBA, lhe dá informações suficientes para realizar qualquer tarefa que o motivou a começar a

aprender VBA. Se assim for, ótimo! Se não, um bom passo seguinte é o de ampliar o seu escopo para um

entendimento mais geral do VBA.

Uma maneira de aprender mais sobre VBA é estudar código de trabalho. Além dos exemplos no Modelo

de Referência de Objetos e Referência de linguagem VBA, há uma quantidade enorme de Excel VBA

código disponível a partir de várias fontes online, incluindo artigos no MSDN, sites que são mantidos por

Page 18: VBA Excel - Introdução ao VBA no Excel

profissionais Microsoft Most Valuable Professionals (MVPs), que especializar em Excel, e outros que você

pode encontrar com uma rápida pesquisa da web.

O código nesses recursos pode ajudá-lo a resolver seus problemas imediatos de codificação e para lhe

dar idéias para projetos que você pode não ter pensado ainda.

Se você prefere buscar um estudo mais sistemático de VBA, existem vários bons livros disponíveis no

VBA, e vários bons comentários de cada um desses livros sobre a Web que podem ajudar você a

escolher os melhores para o seu estilo de aprendizagem.