Sie sind auf Seite 1von 18

VBA Excel - Introduo ao VBA no Excel

Este post tem o intuito de apresentar o VBA (Visual Basic for Applications) no Excel para os usurios avanados do Excel que ainda no so programadores de fato. Teremos:

Uma viso geral da linguagem VBA,

Algumas instrues sobre como acessar o VBA no Excel, e

Uma soluo para um problema no mundo real, alm de dicas sobre programao e depurao.

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 informaes. Apesar do conjunto de recursos disponveis na interface padro (UI), podemos querer maneiras mais fceis de executar algumas das nossas repetitivas e aborrecidas tarefas, ou executar alguma tarefa que a UI no pode resolver sozinha. Felizmente, os aplicativos do Office, como o Excel tem no VBA alguma capacidade de estender as suas funcionalidades padro.

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

Aprender a programar pode parecer intimidador, mas com um pouco de pacincia e alguns exemplos a maioria dos usurios acham que vale a pena aprender um pouco de codificao VBA para tornar o trabalho mais fcil, dando-lhes a capacidade de fazer coisas que pensavam ser impossveis. E o melhor: Depois de ter aprendido um pouco, torna-se muito mais fcil aprender tcnicas e coisas diferentes. Ento as possibilidades so ilimitadas!

AUTOMATIZANDO TAREFAS REPETITIVAS

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 dzia de pastas dentro de si, e que cada uma dessas precise sofrer algumas alteraes, estas poderiam ser:

Aplicao de uma nova formatao para algum intervalo fixo entre as clulas.

Retornar alguns detalhes estatsticos dos dados de cada uma destas abas, escolhendo o melhor tipo de grfico para exib-los com as caractersticas selecionadas, e, em seguida, criar e formatar um grfico de conformidade, exportandoo para o Powerpoint.

Qualquer uma das 2 tarefas acima no precisam ser executadas manualmente, pelo menos no mais do que algumas vezes. Em vez disso, poder automatizar as tarefas usando o VBA para escrever instrues explcitas para Excel a seguir.

importante no limitarmos o VBA aplicando-o somente s tarefas repetitivas, pois tambm podemos us-lo em outros mbitos, tais como:

Para construir novas capacidades que no so naturais ao Excel, como desenvolvermos algoritmos que analisem os nossos dados, e em seguida usem os recursos grficos do Excel para exibir os resultados.

Tambm podemos escrever algum cdigo 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. Alm de todas as tarefas que envolvem listas bvias e contbeis, os desenvolvedores usam o Excel em uma srie de tarefas de visualizaes de dados para a criao de prottipos de software.

importante lembrar-nos de que apesar de termos excelentes razes para utilizarmos o VBA para solucionar diversos dos nossos problemas e necessidades, no poderemos envolv-lo em tudo. O Excel tem uma grande variedade de recursos. Mesmo que sejamos Power Users muito provvel no estarmos familiarizados com todos estes. Antes de decidirmos implementar alguma soluo em VBA, procuremos cuidadosamente saber se j no existe um recurso similar ou uma maneira mais simples para obtermos o que desejamos.

Programao VBA

Usando o cdigo para fazer as aplicaes fazerem coisas. Podemos achar que escrever cdigo algo misterioso ou difcil, mas todos os dias usamos os princpios bsicos no nosso dia-a-dia.

Os aplicativos do Office forma construdos de tal forma que so compostos por coisas chamadas de Objetos. Estes podem receber instrues. Podemos interagir com os aplicativos atravs do envio de instrues para vrios objetos da aplicao. Esses objetos so muitos, variados, e flexveis, mas tm os seus limites. S podem fazer aquilo que foram projetados para fazer, e s faro o que instru-los a fazer.

Objetos

Objetos de programao relacionam-se entre si de forma sistemtica em uma hierarquia chamada de object model (OM = modelo de objeto) da aplicao. O OM espelha aproximadamente o que vemos na interface do usurio, por exemplo, o OM do Excel contm: Application, Workbook, Sheet, e Chart objects, entre muitos outros. O OM um mapa conceitual do aplicativo e dos seus recursos.

Propriedades e mtodos

Podemos manipular os objetos, definindo suas propriedades e chamando os seus mtodos. Definir uma propriedade altera alguma caracterstica do objeto. Chamar um mtodo faz com que o objeto realize alguma ao. Por exemplo, o objeto Workbook tem um mtodo Close, que fecha o Workbook e uma propriedade ActiveSheet que representa a planilha ativa no Workbook.

Colees

Muitos objetos encontram-se nas verses singular e plural: Workbook e Workbooks, Worksheet e Worksheets, e assim por diante. As verses plurais so chamadas de colees. Objetos de coleo so usados para executarem uma ao em vrios itens da coleo.

Macros e Editor do Visual Basic


Agora que voc sabe algo sobre como o Microsoft Excel expe seu modelo de objeto, voc pode tentar chamar mtodos de objetos e definio de propriedades de objetos. Para isso, voc deve escrever seu cdigo em um lugar e de uma forma que o Office pode entender, normalmente, usando o Visual Basic Editor. Embora seja instalado por padro, muitos usurios no sabem que ainda disponvel at que seja ativado na fita.

Guia Desenvolvedor
Todos 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 no exibir a guia Desenvolvedor por padro, voc deve habilit-lo usando o seguinte procedimento:

Para habilitar a guia Desenvolvedor


1. 2. 3. 4. 5. Na guia Arquivo, selecione Opes para abrir a caixa de dilogo Opes do Excel. Clique em Personalizar Faixa de Opes no lado esquerdo da caixa de dilogo. Em Escolher comandos de, no lado esquerdo da caixa de dilogo, selecione Comandos Populares. Em Personalizar a fita no lado direito da caixa de dilogo, selecione as guias principais, e em seguida, selecione a caixa de seleo Desenvolvedor. Clique em OK.

Aps o Excel exibe a guia Desenvolvedor, observe a localizao do Visual Basic, macros e botes de segurana de macrona guia.

Figura 1. Guia Desenvolvedor no Excel

Questes de segurana
Clique no boto Segurana de macro para especificar quais as macros podem executar e em que condies. Embora desonestos cdigo de macro pode danificar seriamente o computador, as condies de segurana que o impedem de executar macros teis pode prejudicar seriamente a sua produtividade. Macro de segurana um tema complexo e complicado que voc deve estudar e entender se voc trabalha com macros do Excel.

Para os fins deste artigo, estar ciente de que, se o Aviso de Segurana: Macros foram desativados barra aparece entre a fita ea planilha quando voc abrir um livro que contm uma macro, voc pode clicar no boto Contedo Enable para ativar as macros. Alm disso, como medida de segurana, voc no pode salvar uma macro no formato de arquivo padro do Excel (xlsx)., Em vez disso, voc deve salvar a macro em um arquivo com uma extenso especial, xlsm..

Editor do Visual Basic


Este procedimento a seguir mostra como criar um novo livro em branco para armazenar seus macros. Voc pode, ento, salvar o livro no formato de xlsm..

Para criar um novo livro em branco


1. 2. 3. Clique no boto Macros na guia Desenvolvedor. Na caixa de dilogo que aparece macro, tipo, Ol em Nome da macro. Clique no boto Criar para abrir o Editor de Visual Basic com os contornos de uma nova macro j digitou dentro VBA uma linguagem de programao completa, com um ambiente de programao correspondente completo. Este artigo analisa apenas as ferramentas que voc usa para comear a programao, 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 cdigo.

Figura 2. Editor do Visual Basic

O Editor do Visual Basic contm o seguinte cdigo. VB

Sub Ol ()

End Sub

Sub significa Subrotina, que voc pode definir para agora como "macro". Executando o Hello macro executa qualquer cdigo que est entre Sub Hello() e End Sub . Agora edite a macro para que ele se parece com o seguinte cdigo. VB

Sub Ol ()

MsgBox ("Ol, mundo!") End Sub

Volte para a guia Desenvolvedor no Excel e clique no boto Macros novamente.

Selecione a macro Ol na lista que aparece e, em seguida, clique em Executar para exibir uma caixa de mensagem pequena que contm o texto "Ol, mundo!" Voc acabou de criar e implementado personalizado cdigo VBA no Excel. Clique em OK na caixa de mensagem para fech-lo e concluir a execuo da macro. Se a caixa de mensagem no aparecer, verifique as configuraes de segurana de macro e reiniciar o Excel.

Fazendo Macros Acessvel


Voc tambm pode obter a caixa de dilogo Macros da guia View, mas se voc usar uma macro com freqncia, voc pode achar que mais conveniente para acess-lo com um atalho de teclado ou um boto de barra de ferramentas de Acesso Rpido. Para criar um boto para a macro Ol na Barra de Ferramentas de Acesso Rpido, use o seguinte procedimento. O procedimento a seguir descreve como fazer um boto para uma macro na barra de ferramentas de Acesso Rpido:

Para criar um boto para uma macro na barra de ferramentas de Acesso Rpido
1. 2. 3. 4. 5. Clique na guia Arquivo. Clique em Opes para abrir a caixa de dilogo Opes do Excel e, em seguida, clique em Barra de Ferramentas de Acesso Rpido. Na lista em Escolher comandos de:, escolha Macros. Encontre o texto que semelhante ao Book1 Ol! Na lista que aparece e selecione esse texto. Clique no boto Adicionar >> para adicionar a macro para a lista no lado direito, e em seguida, clique no botoModificar ... para selecionar uma imagem de boto para associar com o macro. Clique em OK. Voc dever ver seu novo boto na barra de ferramentas Acesso rpido 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 real


Suponha que voc tem um livro que contm as listas em um grande nmero de planilhas e que pretende mudar o nome de cada planilha para combinar com o ttulo da lista em que planilha. No cada planilha tem uma lista sobre ele, mas se isso acontecer, o ttulo est na clula B1, e se isso no acontecer, a clula 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.

Aprender sobre objetos


Para resolver um problema de programao VBA, voc deve primeiro descobrir quais objetos o cdigo ir manipular. Para pesquisar essa informao, uma ferramenta essencial o Excel Referncia Object Model , que faz parte da Referncia do Desenvolvedor do Excel no Microsoft Developer Network (MSDN). Estes materiais de referncia ser atualizado para o Excel, quando lanado publicamente, mas o Excel Referncia do desenvolvedor adequada para a maioria dos fins do Excel.

Figura 3. Referncia 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, clulas e contedo de clulas. No Excel, h pelo menos duas maneiras de abordar o problema:

Ir diretamente para o Modelo de Referncia de Objetos. Anote algumas das aes que deseja automatizar, ver como o cdigo gravado manipula os objetos, e depois ir para o Modelo de Referncia de Objetos para obter mais informaes.

As opinies variam sobre qual abordagem prefervel, 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 no precisa nem olhar o cdigo. Mais frequentemente, a gravao por si s no 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 soluo
1. 2. Registrar as aes que deseja cdigo. Rever o cdigo e encontrar as linhas que realizam essas aes.

3. 4. 5.

Excluir o resto do cdigo. Modificar o cdigo gravado. Adicionar variveis, estruturas de controle, e outros cdigos que o Macro Recorder no pode gravar.

Comece a sua investigao por gravar uma macro que renomeia uma planilha para novo nome. Voc pode ento usar a macro gravada para desenvolver a sua prpria macro que renomeia vrias planilhas com base em seu contedo.

Para gravar uma macro que renomeia uma planilha


1. 2. 3. Clique em Gravar Macro na guia Desenvolvedor. Nomear os RenameWorksheets macro, renomear Sheet1 para novo nome e clique em Parar gravao. V para a guia Desenvolvedor ou Vista, clique no boto Macros e escolha Editar para abrir o Editor do Visual Basic. O cdigo no Editor do Visual Basic deve ser semelhante ao seguinte. VB

Sub RenameWorksheets () ' 'RenameWorksheets Macro ' ' Selecione Nome Sheets ("Sheet1"). = "Nome novo" End Sub

Sheets ("Sheet1").

As primeiras quatro linhas aps a linha de Sub so comentrios. Qualquer linha que comea com um apstrofo um comentrio e no tem efeito sobre o que a macro faz. Os principais usos para comentrios so os seguintes:

Para tornar o cdigo mais fcil de entender, no apenas para voc, mas para qualquer pessoa que pode precisar modificar o cdigo mais tarde. Para desativar temporariamente uma linha de cdigo (chamado de coment-la).

Os quatro comentrios neste macro gravada servir nem a propsito, para exclu-los. A prxima linha usa o mtodo Select para selecionar o membro Sheet1 do objeto da coleo Sheets. No cdigo VBA, no geralmente necessrio para selecionar objetos antes de manipul-los, apesar de que o que o Macro Recorder faz. Em outras palavras, esta linha de cdigo redundante, de modo que voc pode exclu-lo tambm. A ltima linha da macro gravada modifica a propriedade do nome do membro Sheet1 da coleo Sheets. Esta a linha de manter. Depois de fazer as alteraes, o cdigo 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.

Modificando o cdigo gravado


Agora hora de pesquisar a coleo de folhas que o Macro Recorder usado. O tema Folhas na Referncia Object Model inclui o seguinte texto. "A coleo de folhas pode conter grfico ou planilha objetos. Se voc precisa trabalhar com folhas de um s tipo, consulte o tpico objeto para esse tipo de folha." Voc s est trabalhando com planilhas, para mudar o cdigo para o seguinte. VB

Sub RenameWorksheets ()

Worksheets ("Sheet1") Nome. = "Nome novo" End Sub

Looping
Uma limitao do cdigo at este ponto que ele s faz uma alterao em uma planilha. Voc pode adicionar mais uma linha para cada planilha que deseja renomear, mas que se voc no sabe quantas planilhas existem, ou que seus nomes atuais so? Voc precisa encontrar uma maneira de aplicar uma regra para cada folha do livro. VBA tem uma construo chamada Para cada loop que o ideal. O loop For Each examina cada item em um objeto de coleo, como planilhas e pode ser usado para realizar uma ao (como alterar o nome) para alguns ou todos esses itens. Para mais informaes sobre o loop For Each, consulte a Referncia de linguagem VBA . Clique em "Visual Basic Tpicos conceituais", ento "usando para cada ... prximas declaraes". Tambm, estar ciente de que a referncia da linguagem VBA, como o Modelo de Referncia de objeto, devolver de forma ampla o tempo que voc gasta navegando, e um excelente lugar para procurar idias se voc ficar preso trabalhando em cdigo. Usando o exemplo em terceiro lugar no "usando para cada ... prximas declaraes" tpico, edite a macro para que ele se parece com o seguinte cdigo. VB

Sub RenameWorksheets () Para cada myWorksheet em planilhas myWorksheet.Name = "nome novo" Prximo End Sub myWorksheet uma varivel, isto , o que ele representa varia. Neste caso, o myWorksheet varivel
sucessivamente representa cada planilha na coleo Worksheets. Voc no tem que usar myWorksheet , voc poderia usar "x", "ws", "WorksheetToRenameAfterTheContentsOfCellB1", ou (com algumas restries) quase qualquer nome que voc quiser.Uma boa regra de ouro usar nomes de variveis que so longas o suficiente para lembr-lo de que a varivel representa, mas no to longa como a desorganizao do cdigo. 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"

Para corrigir a linha de modo que voc pode verificar que o para cada fbrica, lao, 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 til
A macro est ficando perto de algo que possa realmente resolver o problema na mo. O que voc precisa agora uma forma de levar informaes das planilhas-se especificamente de clula B1 em cada planilha e colocar essa informao para os nomes das planilhas. Desta vez, em vez de usar o gravador de macros para descobrir como fazer referncia a uma clula, dar um palpite e ver se usando o objeto de celular vai funcionar. um bom palpite, mas se voc abrir o Modelo de Referncia de Objetos e de pesquisa para o objeto Cell, voc achar que no h objeto Cell! H um objeto CellFormat embora. O tema objeto CellFormat inclui o seguinte cdigo no primeiro exemplo de cdigo. VB

'Definir o interior da clula A1 para amarelo.

Range ("A1"). Selecione

Acontece que voc usa Gama para especificar um intervalo de clulas ou apenas uma clula individual. Mais uma vez, voc no precisa da parte. Select, mas voc precisa descobrir como fazer referncia ao contedo do objeto Range, ao contrrio do objeto Range si. Se voc vai para o tema objeto Range, voc pode ler que Gama tem dois mtodos e propriedades. O contedo de um Range uma coisa, no uma ao, ento provavelmente seria uma propriedade. Se voc digitalizar para baixo na lista, voc pode ver a propriedade Value. Ento, tente o seguinte. VB

Sub RenameWorksheets () Para cada myWorksheet em planilhas myWorksheet.Range ("B1"). Valor Prximo End Sub

myWorksheet.Name =

Voc receber um erro se voc executar isso em um livro que contm planilhas onde B1 est vazia, porque um intervalovazio tem um valor de "" (uma seqncia de texto vazio), que no um nome de planilha legal. hora de criar alguns dados de exemplo de qualquer maneira. Faa as trs folhas no livro semelhante figura abaixo, e em seguida, executar a macro.

Figura 4. Os dados da amostra para a macro RenameWorksheets

Os nomes de planilha deve mudar de acordo.

Verificao de clulas vazias


Como observado anteriormente, a macro falhar se qualquer das clulas B1 na pasta de trabalho esto 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 cdigo. 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 condio na linha Se for cumprida. No exemplo, a linha seguinte especifica a condio de cumprir. VB

myWorksheet.Range ("B1"). Valor <> ""


A <> significa "no igual a", e as aspas, sem nada entre eles representam uma seqncia de texto vazio, isto , sem texto algum. Portanto, quaisquer que sejam as linhas de cdigo vir entre o Se eo Fim Se s ser executado se o valor em B1 no igual a nada, isto , se houver texto na clula B1. Para mais informaes sobre a Se ... Ento instruo, consulte a Referncia de linguagem VBA. (O nome completo "declarao If ... Then ... Else", onde Else um componente opcional.)

Declaraes de variveis
Outra melhoria que voc deve fazer para o macro colocar uma declarao do myWorksheet varivel no incio da macro. VB

MyWorksheet Dim Planilha


Dim a abreviao de "Dimension", e Planilha o tipo dessa varivel particular. Esta declarao 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 disponveis de variveis. 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 opes adequadas. Voc pode escolher uma opo a partir da lista ou apenas continuar a escrever.

Apesar de declaraes de variveis no so necessrias em VBA, usando-se fortemente recomendado! Declaraes de variveis tornam muito mais fcil manter o controle de suas variveis e para rastrear erros no cdigo. Alm disso, esteja ciente de que se voc declarar uma varivel com um tipo de objeto (como Planilha), o IntelliSense exibe uma lista adequada de propriedades e mtodos associados a esse objeto, se voc usar a varivel de objeto no final do macro.

Comentrios
A macro complexo o suficiente agora para incluir alguns comentrios que lembr-lo que o cdigo est fazendo. O nmero de comentrios para usar em parte uma questo de estilo pessoal, mas, em geral, tambm muitos comentrios so melhores do que muito poucos. Cdigo geralmente precisa ser modificado e atualizado ao longo do tempo. Sem comentrios, pode ser difcil de entender o que est acontecendo no cdigo, especialmente se a pessoa que modifica o cdigo no a mesma pessoa que o escreveu, em primeiro lugar. Adicionando comentrios para a condio Se e para a linha que renomeia resultados das planilhas, no cdigo a seguir. VB

Sub RenameWorksheets () MyWorksheet Dim Planilha Para cada myWorksheet em planilhas "Certifique-se que a clula B1 no est vazio Se myWorksheet.Range ("B1"). Valor <> "" Then 'Renomear a planilha para o contedo da clula B1 myWorksheet.Name = myWorksheet.Range ("B1"). Valor End If Prximo End Sub
Para testar a macro, renomear as planilhas de volta para Plan1, Plan2 e Plan3 e excluir o contedo da clula B1 em uma ou mais das planilhas. Executar a macro para verificar se ele renomeia as planilhas que tm texto na clula B1 e deixa as outras planilhas sozinho. A macro funciona para qualquer nmero de planilhas, com qualquer combinao de clulas B1 povoadas e vazio.

Mais coisas que voc pode fazer com VBA


Esta seo examina mais algumas coisas que voc pode fazer com o VBA no Excel. Os exemplos desta seo so projetados para dar-lhe um sentido de os recursos do VBA em vez de focalizar especficas cenrios do mundo real. Voc pode achar que til para analisar as informaes na referncia de modelo de objeto sobre os objetos em cada passo como voc trabalhar com os exemplos.

Importncia de Ser Aberto


Uma boa maneira de aprender a programao em geral, e VBA Excel em particular, uma estratgia em que voc tentar alguma coisa, faz-lo funcionar, e ento 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.

Grficos
Uma tarefa comum no Excel criar um grfico com base em um intervalo de clulas. Criar uma nova macro chamadaAssortedTasks e digite o seguinte texto no Editor do Visual Basic.

VB

MyChart Dim ChartObject


Adicione uma linha para criar o objeto grfico e atribuir o myChart varivel a ele. VB

Definir myChart = ActiveSheet.ChartObjects.Add (100, 50, 200, 200)


Os nmeros entre os parnteses determinar a posio e tamanho do grfico. Os dois primeiros nmeros so as coordenadas do canto superior esquerdo, eo segundo dois nmeros so a largura e altura. Criar uma nova planilha em branco e executar a macro. O grfico que ele cria intil porque o grfico no tem dados.Excluir o grfico que voc acabou de criar e adicionar as seguintes linhas ao final do macro. VB

Com myChart

. Chart.SetSourceData Fonte: Seleo = End With

Este um padro comum na programao VBA. Primeiro, voc cria um objeto e atribuir a uma varivel, ento voc usa o ... Com Final Com a construo de fazer as coisas com o objeto. O cdigo de exemplo instrui o grfico para usar a seleo atual para seus dados. ( Selection um valor para o parmetro Source do mtodo SetSourceData, no 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 nmeros nas clulas A1: A5, selecione as clulas e, em seguida, executar a macro. O grfico mostra-se como o tipo de padro, um grfico de barras.

Figura 5. Grfico de barras criado usando VBA

Se voc no gosta do grfico de barras, voc pode alter-lo para algum outro tipo de grfico usando o cdigo que semelhante ao seguinte. VB

Com myChart With

. Chart.SetSourceData Fonte: Seleo =

. Chart.ChartType = xlPie End

xlPie um exemplo de um alto-constante, tambm conhecida como uma constante enumerada. H muitos destes casos durante Excel, e eles so exaustivamente documentado. Para mais informaes sobre constantes internas, consulte a seo Enumeraes do Modelo de Referncia de Objetos. Por exemplo, as constantes para tipos de grficos so listadas sob "Enumeration XlChartType". Voc pode modificar os dados. Por exemplo, tente adicionar esta linha logo aps a declarao da varivel. VB

Application.ActiveSheet.Range ("A4") valor. = 8


Voc pode obter a entrada do usurio, e usar essa entrada para modificar os dados. VB

myInput = InputBox ("Por favor digite um nmero:") 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 nmero:") Application.ActiveSheet.Range ("a5") Valor. = MyInput Definir myChart = ActiveSheet.ChartObjects.Add (100, 50, 200, 200) Com myChart . Chart.SetSourceData Fonte: Seleo = . Chart.ChartType = xlPie End With ActiveWorkbook.Save ActiveWorkbook.Close End Sub
Verifique se as clulas A1: A5 so ainda selecionado, executar a macro, digite um nmero na caixa de entrada e, em seguida, clique em OK. O cdigo salva e fecha o livro. Reabrir o livro e observe a mudana para o grfico de pizza.

UserForms
A seo anterior mostrou como usar uma caixa de entrada simples para obter a entrada do usurio. Alm da caixa de mensagem correspondente que exibe informaes, o VBA oferece amplos recursos que voc pode usar para criar caixas de dilogo personalizadas para controles de cdigo que so colocados diretamente em planilhas, ou para manipular as caixas de dilogo que so construdos para o Excel. Para mais informaes sobre esses recursos, consulte Controles, caixas de dilogo e Formas na Referncia do desenvolvedor Excel. Esta seo completa este olhar introdutrio em Excel VBA dando uma olhada rpida no UserForms. Na guia Desenvolvedor, clique no boto 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 vrios controles que voc pode adicionar ao seu formulrio de usurio, por

exemplo, botes de comando, botes de opo, caixas de seleo 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 formulrio de usurio muito simples com um nico boto que executa a macro Ol a partir no incio deste artigo.Na Caixa de Ferramentas, pressione o controle CommandButton, e arraste-o para o formulrio de usurio para criar um boto de comando. Direito do mouse no boto 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 cdigo 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 dilogo aparecer, clique no boto de comando para executar a macro Ol, que exibe o "Ol, mundo!" caixa de mensagem. Feche a caixa de mensagem para retornar ao formulrio de usurio em execuo, em seguida, fechar o UserForm correndo para voltar para o modo Design.

Qual o prximo?
Voc pode achar que as informaes contidas neste artigo, quando combinado com algumas experincias e tempo de qualidade estudar o Modelo de Referncia de Objetos e Referncia de linguagem VBA, lhe d informaes suficientes para realizar qualquer tarefa que o motivou a comear a aprender VBA. Se assim for, timo! Se no, 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 cdigo de trabalho. Alm dos exemplos no Modelo de Referncia de Objetos e Referncia de linguagem VBA, h uma quantidade enorme de Excel VBA cdigo disponvel a partir de vrias fontes online, incluindo artigos no MSDN, sites que so mantidos por

profissionais Microsoft Most Valuable Professionals (MVPs), que especializar em Excel, e outros que voc pode encontrar com uma rpida pesquisa da web. O cdigo nesses recursos pode ajud-lo a resolver seus problemas imediatos de codificao e para lhe dar idias para projetos que voc pode no ter pensado ainda. Se voc prefere buscar um estudo mais sistemtico de VBA, existem vrios bons livros disponveis no VBA, e vrios bons comentrios de cada um desses livros sobre a Web que podem ajudar voc a escolher os melhores para o seu estilo de aprendizagem.

Das könnte Ihnen auch gefallen