60
Prof.: Eduardo d’Ávila Albuquerque 1 / 60 Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Apostila sobre Microsoft Excel Avançado e Programado em VBA

Apostila Excel Avancado

Embed Size (px)

Citation preview

Page 1: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 1 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Apostila sobre

Microsoft Excel

Avançado e Programado em VBA

Page 2: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 2 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

CONSIDERAÇÕES INICIAIS

Seja bem vindo

Muito obrigado pela sua confiança em nosso trabalho. Nosso método de ensino será guiado por “ensinar a aprender”. O Excel é um aplicativo composto por uma grande variedade de comandos, porém este software possui uma pa-dronização que facilita o seu aprendizado. Você observará vários comandos no Excel de grande utilidade no cotidiano e em seguida potencializará a eficiência e rapidez utilizando a programação em VBA.

Muito se diz sobre a didática de um professor e pouco sobre a “didática do aluno”. Nossa preocupação em “ensinar a aprender” tem que ser sucedida pela sua preocupação em “aprender a aprender”. É necessário que você saiba qual é a sua melhor forma de aprender. Observe se o seu aprendizado é adqui-rido através da repetição dos exercícios, da concentração na explicação e/ou através das anotações.

A junção da “didática do aluno” à didática do professor é a menor distân-cia até o conhecimento. Tendo dúvidas, ótimo!!! A dúvida é o primeiro ponto do aprendizado. Pergunte e insista até obter resposta. Sanar a dúvida é o ponto final do conhecimento almejado.

Boa sorte!

Material Didático

Esta apostila está vinculada aos arquivos presentes no disquete de a-companhamento. Com este sistema se consegue a otimização do aprendizado evitando o gasto de tempo com a digitação de planilhas-exemplos. Portanto, é indispensável tanto a apostila quanto o disquete. Os exercícios foram elabora-dos na pretensão de simular o dia-a-dia daqueles que necessitam de uma me-lhor performance para suas planilhas. No disquete você deve encontrar os se-guintes arquivos: Comandos Avançados.xls, PedGeral.dbf, Planilha Geral.xls, Realmês.xls, Trabalhando com datas.xls, Arquivo X. Confira se seu disquete está completo. O Excel versão 2000 é o software utilizado neste material. Será comentado em sala as diferenças entre versões as 97 e XP.

Excel, Excel Avançado, Excel Programado

O Excel é um programa com muitos recursos para manipulação de tabe-las essencialmente numéricas. Este programa desenvolvido pela empresa Mi-crosoft é atualmente o editor de planilhas de maior utilização pelo mercado-de-trabalho. Este mesmo mercado tem exigido de seus colaboradores um maior conhecimento deste software na perspectiva de maior eficiência e agilidade na editoração de planilhas em geral.

Page 3: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 3 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Devido a numerosidade de comandos e complexidade de funções o a-prendizado do Excel foi dividido em partes distintas: Excel - Excel Avançado - Programação VBA. Os comandos básicos do Excel são ensinados para os ini-ciantes do Excel, e os recursos mais avançados como funções (lógicas, finan-ceiras, estatísticas...), tabelas dinâmicas, filtros, subtotais, auditoria e outros recursos mais, são ensinados aos interessados no aprofundamento em Excel. Existe ainda neste editor de planilhas uma “Linguagem1 de Programação” em-butida e apropriada aos programas. O nome desta “linguagem” é Visual Basic for Applications (VBA). Esta “forma2” de programação é especialmente desen-volvida para que os usuários dos “softwares comuns3” possam criar novos co-mandos, dentro do próprio programa, facilitando assim a criação dos arquivos em geral.

Podemos dizer que para se aprender Excel em sua totalidade, devemos fazer dois cursos, não que seja dois programas, e sim, um programa que é di-vido4 em duas etapas de ensino, O Excel Iniciante e o Excel Avança-do/Programado.

Existe uma Linguagem de Programação, também criada pela empresa Microsoft, chamada de Visual Basic (VB), onde podemos criar os mais diversos tipos de programas. O VB em sua totalidade é uma linguagem de programa-ção. O VBA não é essencialmente uma linguagem de programação. É uma maneira de interferir nos programas. Alguns ousam dizer que o VBA é um VB “pequenininho”. É bom saber que todo o aprendizado de VBA, além de poten-cializar os programas do Office, serve como base para aprendizado do VB, afi-nal as linhas de instrução e os comandos são semelhantes. Não podemos dizer que um programador em VB tenha a obrigação conhecer VBA, mas caso tenha que conhecer, observará uma enorme facilidade. Uma vantagem do VBA é o fato desta forma de programação servir tanto para o Excel como para os outros “softwares comuns”, sendo assim quem aprende VBA no Excel, com pequenas adaptações, aprende o VBA para qualquer aplicativo.

Concluindo, a melhor definição para o VBA é o seu próprio nome: Visual Basic Applications (Visual Basic para aplicativos), uma “forma” de programa-ção para programas de aplicação. Aprenderemos com esta apostila a dominar o Microsoft Excel, avançado e programado, doravante chamado apenas de EXCEL.

1 Linguagem de Programação é uma biblioteca de termos e expressões que utilizamos para criar um programa. É característica essencial de um programa funcionar dependendo unica-mente do Sistema Operacional. 2 O VBA é chamado de forma de programação por não possuir todos os requisitos de uma lin-guagem. No quesito funcionalidade, todos os sistemas em VBA dependem primeiramente do programa tronco (neste caso o Excel) e conseqüentemente do Sistema Operacional. 3 Softwares comuns são todos os programas populares “produzidos em alta escala” pelas em-presas de desenvolvimento de sistemas. Exemplo de empresas: Microsoft, Corel. Exemplo de softwares comuns: Word, Excel, Access, Corel Draw. 4 Esta é uma divisão meramente didática.

Page 4: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 4 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Primeira Parte

CAPÍTULO 1 - COMANDOS AVANÇADOS

Para a melhor explicação dos comandos avançados5 do Excel, utiliza-remos alguns arquivos salvos em seu disquete. Para melhor desempenho é aconselhável copiar este disquete para uma pasta. Clique então em Arquivo, Abrir e localize o arquivo Comandos Avançados. Observe que todas as plani-lhas contidas nesta pasta de trabalho são semelhantes, a diferença observada é exatamente a utilização de comandos que serão explicados a seguir. No Ex-cel, dizemos que o arquivo gravado é uma pasta de trabalho que contém a(s) planilha(s).

Formatação

No que tange a formatação de uma planilha, consideramos os coman-dos básicos como negrito, itálico, tamanho de fonte e outros como entendidos, porém possuem algumas formatações que facilitam e agilizam nosso trabalho. Lembre-se que os comandos de formatação, em sua maioria, necessitam que uma determinada área da planilha seja selecionada.

Na linha 3, os títulos foram centralizados ocupando o correspondente ao seu espaço, enquanto na linha 1 o título geral pode ser mesclado e centralizado ocupando toda a largura da planilha. O comando mesclar

e centralizar foi utilizado nos subtítulos da linha 2.

Na coluna A, Código, foi usado o comando células do menu formatar onde os números foram personalizados6 para 0000. Isto significa que o núme-ro de dígitos do código será no mínimo 4, mesmo que sejam zeros(0) à es-querda.

Na coluna C, foi utilizada a formatação condicional, do menu formatar, onde podemos escolher qual formatação será utilizada de acordo com a condi-ção feita. Veja a imagem abaixo:

5 Não existe comando avançado oficialmente no Excel, nós qualificamos assim baseado em sua complexidade e grau de utilização. 6 Usando a Ajuda do Excel procure por formatação de números e observe a utilização do #.

Page 5: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 5 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Na coluna D, foi usado o estilo moeda e nas colunas referentes à por-centagem o estilo porcentagem. Na quantidade apenas o comando centralizar.

Para facilitar a visualização dos dados na janela do Excel, foi usado o comando congelar painéis, menu janela, Este comando deixa sempre visível em sua janela todos os dados que estejam localizados acima e a esquerda da célula ativa no instante da utilização deste comando. Observe sua utilidade na planilha.

As cores de preenchimento e bordas imprimíveis nas células são uma forma de melhorar a aparência de sua planilha. Caso tenha colocado um des-tes comandos em células indevidas pode-se utilizar o comando limpar, no me-nu editar. É possível escolher o que deseja remover das células: tudo, forma-tos, comentários...

Fórmulas simples

As fórmulas utilizadas nesta planilha podem ser visualizadas na planilha fórmulas e funções, da mesma pasta de trabalho, sendo que a primeira fórmula de cada coluna está visível, enquanto as outras estão mostrando apenas o re-sultado da fórmula. As fórmulas em geral são adaptáveis a linhas e colunas, pois sofrem alterações ao serem usadas nos campos posteriores , sem perder sua característica inicial. Constrói-se uma fórmula e, utilizando o recurso de auto preenchimento7, “copiamos” para as linhas seguintes, sendo que os ende-reços da fórmula são modificados pelo Excel.

O valor do imposto foi calculado multiplicando o valor da compra pela porcentagem imposto . De maneira semelhante, encontra-se o valor do frete, e despesas administrativas. Nesta mesma planilha encontraremos outros e-xemplos de fórmulas simples.

7 O auto preenchimento pode ser realizado posicionando a célula móvel sobre o resultado de uma fórmula e , logo em seguida, arrastando o sinal de adição localizado no canto direito-inferior da célula ativa para a direção desejada. Podemos também dar um clique duplo neste sinal de adição para autopreencher as linhas inferiores.

Page 6: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 6 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

= VALOR DA COMPRA X PORCENTAGEM

Funções – Função SE

Vamos imaginar que as peças masculinas são compradas de um forne-cedor e as peças femininas de outro fornecedor, e que estes fornecedores es-tão em distâncias diferentes em relação ao local de entrega do produto, no ca-so sua loja. É necessário que as taxas de frete sejam diferentes: masculina 3%, feminina 4%.

Neste caso queremos que o próprio Excel regule a porcentagem que se-rá adotada. Utilizamos o recurso de função no seu Excel. Clique no comando funções, menu inserir.

Função SE

Observe que do lado esquerdo podemos escolher o tipo de função que queremos e do lado direito a função propriamente dita. Observe ainda que na parte inferior é exibida uma sintaxe do funcionamento da função. É importan-tíssimo observar esta sintaxe.

A BASE DE TODO APRENDIZADO É A OBSERVAÇÃO.

Abaixo uma melhor explicação desta sintaxe:

SE, é o nome da função, seguido do abre parêntese.

TESTE_LÓGICO: É o que desejamos que seja analisado pelo Excel. Por exemplo: 4=B3, ou B5<H9, ou B3=“domingo”, ou H8 >=50. Quando a compara-ção é relacionada a um texto, este deve ser colocado entre aspas. O teste lógi-co pode ser dado a um número, a um endereço8 ou a um texto. Ao fazer esta 8 Endereço no Excel é a união da Coluna com a Linha, sendo assim, o endereço da coluna h e da linha 10 é H10. O endereço, normalmente, é composto primeiramente pela coluna (repre-sentado por uma letra), seguido pela linha (representado pelo número), este formato é chama-do de formato A1, porém pode-se fazer modificações neste formato do endereço.

Page 7: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 7 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

análise o Excel verifica se a expressão no campo teste_lógico é verdadeira ou falsa.

Valor_se_verdadeiro: Significa o que o Excel deve fazer caso a expres-são contida no teste lógico seja verdadeira. Pode ser um número, um texto, um endereço e até mesmo uma fórmula ou função.

Valor_se_falso: Significa o que o Excel deve fazer caso a expressão contida no teste lógico seja falsa. Pode ser um número, um texto, um endereço e até mesmo uma fórmula ou função.

No caso desta planilha, veja como ficou a função:

Ao utilizar funções usufruímos comandos pré-prontos inclusos no Excel, os quais realizam uma determinada tarefa, Resta ao usuário apenas fornecer as informações necessárias para a execução da função.

As funções realizam a tarefa para qual foi pré-determinada utilizando as informações fornecidas pelos usuários. Elas retornam resultados alcançados na realização desta tarefa.

O comando funções, no menu inserir é um assistente de função. Auxilia na edição e na descoberta de novas funções. Existe o método escrito para as funções. Este método exige habilidade e maior atenção do usuário, mas pro-porciona agilidade. Observe a função SE depois de pronta.

=SE(C4="M";3%;4%)

Page 8: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 8 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Tudo isto pode ser digitado diretamente na célula que deseja obter a resposta. O usuário deve se atentar para os seguintes detalhes:

O sinal de igualdade no início da função.

O nome da função.

A colocação dos parênteses e ponto-e-vírgulas.

Como esta função tem a necessidade de informações fornecidas pelo usuário (argumentos, neste caso 3 argumentos), deve se atentar para o correta informação destes, sabendo que de argumento para argumento a separação e feita através de ponto-e-vírgula. Existem argumentos obrigatórios e opcionais, no decorrer dos estudos isto será identificado.

A função SE é importante e muito utilizada nas planilhas com teor de complexidade. Neste exemplo, a mesma função foi utilizada para os cálculos de porcentagem das despesas administrativas.

Para visualizar as funções nesta planilha, basta selecionar a célula que contém o resultado da função. Será exibida na barra de fórmulas a função em sua maneira escrita. Observe a função para porcentagem de lucro:

= SE ( L4 < 10 ; 30% ; SE ( L4 < 20 ; 20% ; 10%) )

Se Equilíbrio menor que 10 então adote 30% de lucro, senão analise se equilíbrio é menor que 20, se for adote 20% de lucro, senão o adote 10%.

As duas funções acima podem ser analisadas utilizando o português es-truturado. Observe abaixo:

------------------------------------------------------------------------------

Início se (C4=“M”) então

escreva 3% senão

escreva 4% fim do se fim

------------------------------------------------------------------------------ Início

se (Ll4<10) então escreva 30%

senão faça se (L4<20) então

Page 9: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 9 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

escreva 20% senão

escreva 10% fim do se fim do se fim

------------------------------------------------------------------------------

Fórmulas absolutas

São as formulas que possuem endereços absolutos, não adaptáveis à linhas ou colunas adjacentes, e sim, constantes entre os itens, como é o caso da porcentagem de comissão. Independente do produto a comissão é de 3%. Estes 3% é fixo, o endereço dele é K3. Sendo fixo, nos cálculos expressamos seu endereço como $K$3. O sinal $ significa que o elemento seguinte ao sinal é constante. O endereço $K$3 é lido: é fixo a coluna K e é fixo a linha 3.

Observe a fórmula utilizada:

=D4*$K$3

Símbolo de igualdade, endereço variável, sinal de multiplicação, fixação da coluna D e fixação da linha 3.

Exemplos explicativos:

=D4*I4, os dois endereços são adaptáveis.

=$M15/G$9, o primeiro endereço é fixo na coluna e o segundo é fixo na linha.

Fórmulas Complexas

Por questões didáticas apelidamos de fórmulas complexas, todas as fórmulas com a necessidade de parênteses. Muitas vezes precisamos realizar mais de uma operação em um cálculo. A ordem a ser seguida ao se calcular é indicada pelos parênteses. Na criação de fórmulas, não utilizamos colchetes ou chaves, somente parênteses dentro de parênteses, sendo os parênteses mais internos prioritários no cálculo. Observe que a segunda fórmula para o preço de venda resulta o mesmo valor que a primeira, porém concentra várias opera-ções em única fórmula.

=(D4+(E4*D4)+(G4*D4)+(I4*D4)+(D4*$K$3)+(O4*L4))

Page 10: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 10 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Para explicação de novos comandos, na planilha “manipulação e prote-ção de dados” foi incluída uma nova coluna de dados denominada Tendên-cia/Estilo, para isto foi utilizado o comando colunas, menu inserir, e foi excluída a última coluna, com o comando excluir, do menu editar.

Filtros

Na seqüência do aprendizado de comandos avançados através desta planilha exemplo, notamos a necessidade de filtrar dados. Este recurso é muito utilizado para melhor leitura da planilha. Para utilizar filtragem é necessário se-lecionar a região da tabela que contém os dados gerais os quais se quer filtrar. O título de cada coluna será referência para filtragem. O comando autofiltro,

encontrado no menu dados, submenu filtro, é prático e útil.

Observe a utilização do fil-tro. Na parte direita dos títulos de colunas é inserida uma caixa pa-ra acionamento do filtro, sendo que podemos filtrar por base em um campo específico, por coloca-ção entre os primeiros e também personalizar a filtragem onde po-demos configurá-la usando ope-radores lógicos. Na planilha, que-

remos filtrar baseado na tendência/estilo. Depois queremos filtrar baseado no valor de compra maior que 10, utilizando o personalizar.

Para remover o auto-filtro basta desativar o comando autofiltro, no me-nu ferramentas, submenu filtro.

Page 11: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 11 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Protegendo Células

No Excel, podemos evitar que nosso documento tenha sua forma origi-nal modificada. A própria formatação, os dados e fórmulas poderão ser impe-

didos de sofrer alterações através de proteção de cé-lulas. Neste exemplo queremos proteger os campos de fórmulas, afinal, os dados sofrem alterações contí-nuas enquanto as fórmulas permanecerão as mes-mas.

Para selecionar as células de fórmulas, utilize o comando ir para, menu editar, comando especial e clique em fórmulas. As células que contém fórmulas

são selecionadas., utilize o menu formatar, comando células, guia proteção e ative a caixa travada (que impede a alteração das células) e a caixa oculta (que impede a visualização das fórmulas), em seguida clique em ok.

Seleciona com o comando ir para as células constantes e no comando células, menu formatar, opção proteção, desative as caixas correspondentes a travada e oculta. Observe que na parte inferior desta tela existe uma instrução indicando a necessidade de utilizar o comando proteger planilha, no menu fer-ramentas, sub menu proteger. Faça isto e observe que sua planilha não será mais facilmente modificada.

Protegendo arquivos

O excel permite utilização de senhas para a abertura e leitu-ra das pastas de trabalho. Para cadastrar a senha utilize o menu arquivo, comando salvar como, botão ferramentas, opções gerais, e cadastre suas senhas. Isto faz com que o Excel exija a digitação da senha antes de abrir o docu-mento.

Salvando área de trabalho

Ao trabalhar com o Excel pode ser necessário abrir várias pastas de tra-balho (arquivos) ao mesmo tempo para manipulá-las. Caso estes arquivos se-jam freqüentemente acessados concomitantemente podemos usar o comando salvar área de trabalho, menu arquivo. Isto criará um arquivo que abrirá todos os outros arquivos, permanecendo as características de arquivo independente a cada um deles.

Page 12: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 12 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Funções – Função Sub-totais

Observe o uso desta fun-ção, na planilha totalizando de sua pasta de trabalho comandos avançados. Foi selecionada a região que onde subtotal será aplicada, clicando em dados, subtotais e informando o que queremos, conseguimos obter facilmente os totais de acordo com o grupo selecionado e o to-tal global. (Para utilizar o subtotal baseado em uma coluna é necessário que a coluna seja à base da classificação de sua tabela. Para classificar sua tabela, utilize o comando classificar, menu dados). A função Subtotal, em sua forma escrita, é semelhante a:

=subtotal(9;E4:E30)

onde, subtotal é nome da função,

9; é o primeiro argumento, Representa qual operação o subtotal deverá realizar (subtotal, não significa obrigatoriamente somatizar). Na tabela ao lado, observe que outros números, que representam outras funções, podem ser utili-zados.

E4:E30, é a faixa de células que onde o subtotal deverá atuar.

Auditoria

Este comando facilita a interpretação de um dado ou cálculo em uma planilha. Ative a planilha de fórmulas e funções em sua pasta de trabalho co-mandos avançados e selecione a célula R5. É notória a complexidade da fór-mula contida nesta célula, para melhor interpreta-la utilizamos o comando ras-trear precedentes, no menu ferramentas, submenu auditoria. Posicione a célu-la móvel em K3, e através da auditoria, peça para rastrear os dependentes. No primeiro caso, o Excel indica todos os campos que foram necessários para a construção da fórmula, obtendo o resultado. No segundo caso, o Excel indica todos os resultados de fórmulas que dependem diretamente deste valor. No próprio submenu auditoria, encontramos o comando remover todas as setas para limpeza de tela.

Para melhor entendimento de alguma fórmula, pode-se também pres-sionar a tecla F2 sobre seu resultado, permitindo a interpretação através de cores. Esta tecla também permite correções na célula.

Page 13: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 13 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Comentários

Pode-se incluir comentários em sua planilha para facilitar a interpretação da mesma. Para isto, basta posicionar a célula no campo e clicar no menu in-serir, comentário e editá-lo. Observe o canto superior direito da célula C3, po-sicionando o ponteiro do mouse sobre o canto vermelho o comentário será exi-bido.

Gráficos

Queremos fazer um gráfico comparativo entre preço de compra e de venda dos produtos da Tendência/Estilo W. Precisamos primeiramente sele-cionar as áreas participantes do gráfico.

Para selecionar células alternadas mantenha pressionada a tecla CTRL enquanto clique nas áreas em questão.

Para selecionar células adjacentes mantenha pressionada a tecla SHIFT e clique na célula final da seqüência.

Usando o comando gráfico, menu inserir, podemos criar um gráfico rá-pido ou um gráfico avançado, para isto, clique em avançar após a escolha do tipo de gráfico e na seqüência de avanços, manuseie os comandos existentes de acordo com a sua necessidade e gosto.

É interessante observar que as mudanças feitas na planilha alteram o gráfico automaticamente. No exemplo observa-se que a filtragem dos dados resulta na clareza do gráfico.

Tabela dinâmica

Este é um comando extenso e re-pleto de recursos para sua tabela. Chama-se Tabela Dinâmica pela praticidade que manipula dados de uma tabela extensa. Acompanhe a seguir o passo-a-passo para se criação da Tabela Dinâmica.

1º passo: Selecionar a região que será incluída na Tabela Dinâmica (neste caso selecionamos os dados da planilha manipulação e proteção de dados), em seguida clique no menu dados, relatório de tabela e gráfico dinâmicos. Vamos seguir na construção da tabela dinâmica baseada nos dados selecionados no Excel , clique então em avançar.

Page 14: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 14 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

2º passo: Observe a confirmação da área selecionada para criação da tabela dinâmica. Clique então em a-vançar.

3º passo: é a estruturação da

tabela dinâmica, neste momento, cli-que em layout, e observe que aparecerá uma tela para a informação e monta-gem dos dados nesta tabela. Construa sua tabela e clique em OK, em seguida em concluir.

Observe a nova tabela gerada. É uma tabela dinâmica. Clique em suas setas “de dinamismo” para se acostumar com este novo e prático recurso. Para melhorar a aparência de sua tabela dinâmica, utilize entre outros comandos de formatação, a ferramenta formatar relatório e o comando mostrar páginas, na barra de ferramentas correspondente.

Para alterar a tabela dinâmica encontre o menu Tabela Dinâmica na Bar-ra de ferramentas e clique em assistente, em seguida em layout.

Page 15: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 15 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

CAPÍTULO 2 - TRABALHANDO COM DATAS E HORAS

Trabalhar com datas e horas é uma necessidade cotidiana. O Excel dis-põe de recursos úteis para esta tarefa. Para explicação do uso de datas e ho-ras foi elaborado outro documento exemplo chamado Trabalhando com datas. Observe todas as planilhas desta pasta de trabalho e a explicação abaixo:

Digitação e Formatação

Quando se digita uma planilha imagina-se automaticamente como ela deve ficar depois de formatada, mesmo assim, na maioria das vezes ao forma-tar nota-se a necessidade de inserção ou exclusão de campos. Utilizando o botão direito do mouse sobre a área selecionada conseguimos inserir e excluir células. A inserção ou a exclusão pode ser feita através do menu editar. A digi-tação e a formatação têm que proporcionar um entendimento fácil da planilha.

Funções – Hoje, Dia.da.Semana, Procv

No Excel existem várias funções. O entendimento delas pode depender algumas vezes de um conhecimento prévio. Com um pouco de persistência, muita atenção, intuição e as explicações a seguir, você aprenderá como utili-zar as funções. Vamos começar aprendendo a função hoje, encontrada no me-nu inserir, função, data e hora.

HOJE

Esta funçãoHoje(), tem a missão de mostrar a data que o Windows está adotando como sendo a data atual. A vantagem desta função é a atualização automática, pois quando for amanhã esta função mostrará a data de amanhã, e desvantagem é que esta data é extraída do Sistema Operacional Windows e qualquer usuário pode modificar esta data, então, para confiar nesta função temos que observar constantemente a data no Windows.

Page 16: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 16 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

O fato desta função não necessitar de argumentos é que argumentos são informações que o usuário deve fornecer para o funcionamento efi-caz da função, neste caso não precisamos informar mais nada.

DIA.DA.SEMANA

A função dia.da.semana, encontrada no menu inserir, função, data e ho-ra analisa uma data (ou uma referência a uma data) e calcula qual o dia da semana que esta data corresponde. O resultado deste cálculo é sempre um número de 1 a 7. Isto significa que se a resposta da função foi 1, a data corres-ponde ao domingo. Se a resposta foi 4, então é quarta. Se a resposta foi 7, en-tão sábado é o dia da semana corresponde à data.

Nesta função tivemos que informar argumentos para ela funcionar. O 1º é o argumento num.série, onde colocamos a data ou um endereço de uma célula que contenha uma data. Este argumento é obrigatório para realização da função, observe que o nome deste campo está em negrito. O 2º é o retor-nar_tipo, este campo não está em negrito, sendo então um campo de preen-chimento opcional, caso você não o informe o excel adotará o padrão que é representado pelo número 1 e que significa que estamos considerando o do-mingo como primeiro dia da semana e o sábado o sétimo.

PROCV

Page 17: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 17 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Esta função procura um determinado valor na parte esquerda de uma determinada tabela e encontra o dado posicionado na coluna determinada. En-tendeu?! Nem eu. Vamos estudar campo a campo.

Valor_procurado: é o que desejamos encontrar. Neste campo pode-se colocar um valor, um endereço de célula ou até mesmo caracteres. O Excel estará à procura do que for colocado neste campo.

Matriz_tabela: é a referência do local onde o Excel deverá realizar sua procura. Esta referência deve delimitar o canto superior esquerdo e o campo inferior direito da área de procura, ou melhor falando, da tabela. Caso esta área da planilha tenha recebido um nome, podemos utilizar este nome.

Num_índice_coluna: É a posição vertical na Matriz_tabela onde se en-contra a informação desejada. É a coluna onde se encontra o dado procurado. É importante saber que a coluna mais à esquerda de sua tabela é a coluna de índice 1 e a cada coluna para direita este índice é incrementado com +1.

Procurar_intervalo: Este é um campo opcional. Caso não encontre o va-lor procurado você autoriza o uso da referência mais próxima a este valor pre-enchendo esta campo com verdadeiro. Caso você exija a exatidão na procura do valor preencha este campo com falso. Deixando em branco, a opção esco-lhida será igual a verdadeiro.

Observe alguns exemplos escritos extraídos diretamente da tabela:

=PROCV(B7;E1:G21;2) O Excel irá procurar pelo valor indicado na referência B7. Esta procura será realizada na tabela iniciada em E1 e finalizada em G21. A resposta será extraída da 2ª coluna desta tabela.

=PROCV(B7;E1:G21;3) neste caso a diferença é que a resposta se-rá extraída da 3ª coluna.

=PROCV(B12;I1:J8;2) Procure por B12, na tabela I1:J8 e extraia a resposta da 2ª coluna.

=PROCV(B12;DADOS;2) Procure por B12, na tabela que recebeu o nome de DADOS e extraia a resposta da 2ª coluna desta tabela. (veja obser-vações abaixo)

OBSERVAÇÕES:

1) PROCV é a união de PROCurar com Vertical. Existe a função PROCH, que significa procurar horizontalmente.

2) É possível dar um nome a uma faixa de células. Para isto sele-cione uma faixa de células qualquer (ex: E1:G21) clique em nome, no menu inserir e nomeie esta faixa de DADOS. Todas as vezes que preci-sar referenciar esta faixa de células poderá utilizar a palavra DADOS.

Page 18: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 18 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Validação

Validar uma célula é avisar ao Excel que os dados que poderão ser inse-ridos na célula tem que seguir o critério previamente informado. A célula B4, da planilha formulas-funções-validação foi validada para receber somente data, sendo que esta data deve estar entre os intervalos 01/01/1900 e 31/12/2900. Ao entrar nesta célula observe a informação cadastrada. Caso insista em pre-encher com dados diferentes do exigido observará uma mensagem de erro.

Para se validar uma célula, use o menu dados, comando validação.

Ocultar

Nesta planilha foi utilizado a comando ocultar, menu formatar, submenu colunas, para esconder dados que não são importantes para o usuário, porém úteis nos cálculos da planilha. Podemos ocultar colunas, linhas e até planilhas inteiras. Para não exibir o conteúdo de uma célula pode-se também utilizar a cor branca.

Impressão

Quando for imprimir planilhas, notamos a necessidade de preparar seu documento para ser impresso. Esta preparação chamamos de paginação. Cli-que em visualizar impressão na barra de ferramentas e observe sua página. Para melhorar sua aparência utilize o comando configurar na parte superior da tela.

Page 19: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 19 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Na guia página pode-se deitar a folha (paisagem) ou deixá-la na vertical (retrato), aumentar/diminuir o tamanho normal do documento e ainda configurar o tamanho do papel.

Na guia margens pode-se ajustar as margens e posicionar a tabela no centro da vertical e no centro da horizontal.

Na guia cabeçalho e rodapé podemos personalizar um cabeçalho e/ou um rodapé. Observe que com este comando conseguimos informar a data e/ou a hora da impressão do documento, a numeração de páginas e a inclusão do nome do documento.

É importante ressaltar que as modificações feitas no comando configurar da visualização da impressão pouco (ou nada) interferem na planilha. É basi-camente, uma preparação da planilha para ser impressa.

Page 20: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 20 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Trabalhando com horas

Na pasta de trabalho trabalhando com datas, observe a planilha controle de horas. A manipulação de horas no excel requer atenção. Você pode forma-tar horas usando o comando Formatar Células Número Hora. Para calcular horas trabalhadas é importante constar na planilha a Data, Entrada, Saída do Almoço, Entrada Almoço, Saída. Caso a planilha represente horários noturnos é importante expressar as horas após as 24:00 como sendo continuação do dia e não um novo dia., exemplo: Se a saída ocorreu às 2 horas e 30 minutos da madrugada expressamos 26:30 e formatamos esta célula para que apresente 2:30. Somente assim o cálculo de horas trabalhadas neste dia será correta-mente calculado. Observe a planilha exemplo.

Observações finais

Cuidado: A tecla Scroll Lock, ao ser pressionada, faz o Excel movimen-tar a planilha inteira e não a célula móvel. Esta tecla, para quem não está acos-tumado, pode ser “pedra de tropeços” na edição da planilha.

Modo de Correção: Ao tentar corrigir erro dentro de uma célula, pres-sione a tecla F2 sobre a célula a ser corrigida, assim você estará usando o mo-do de correção e poderá movimentar com o cursor sem movimentar com a cé-lula. Aperte Enter ou F2 novamente para sair do modo correção.

Pasta de trabalho e Planilha: Pasta de trabalho é o arquivo enquanto as planilhas são as “plan1, plan2, plan3...” contidas dentro da pasta de trabalho.

Page 21: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 21 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

CAPÍTULO 3 - TECLAS DE ATALHO As teclas de atalho são comandos executados via teclado que realizam

funções supostamente inerente unicamente ao mouse. Uma tecla de atalho no Word pode ter uma função e no Excel outra função. Porém é corriqueiro ocorrer das funções serem as mesmas, então, é importante testar as teclas não so-mente no programa especificado abaixo, como também, em outros softwares. NO WORD Negrito, Itálico, Sublinhado CTRL + N, I, S Centralizar CTRL + E Selecionar SHIFT + setas direcionais Início/Fim de linha HOME, END Início do documento CTRL + HOME Final do documento CTRL + END Imprimir CTRL + P Desfazer CTRL + Z Apagar uma palavra inteira CTRL + DELETE Abrir um arquivo CTRL + A Recortar CTRL + X Colar CTRL + V Copiar CTRL + C Localizar um texto CRTL + L Ortografia e Gramática F7 Subir/Descer página de vídeo Page Up , Page Down Ajuda F1 Sobrescrever textos Insert Copiar visão da tela Print Screen Interfere no mover o Mouse ALT Salvar Ctrl + B Tamanho da Fonte CTRL ] ou CTRL [ Início/final de linha HOME , END NO EXCEL Mover até a borda da região atual CTRL + teclas de direção Mover uma tela para direita ou esquerda ALT + PAGE DOWN , ALT + PAGE UP Ativar a planilha da esquerda ou da direita CTRL + PAGE DOWN, CTRL + PAGE UP Mover entre pastas de trabalho CTRL +TAB Travar o movimento da célula SCROLL LOCK Inserir planilha SHIFT + F11 Exibir caixa de diálogo Macro ALT + F8 Iniciar uma nova linha na mesma célula ALT + ENTER Repetir última ação F4 Definir nomes CTRL + F3

Page 22: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 22 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Editar uma célula F2 Fórmula AutoSoma ALT + = Inserir data atual CTRL + ; Inserir Hora atual CTRL + SHIFT + ; Copiar fórmula da célula acima CTRL + F Janela Formatar Célula CTRL + 1 Formato número geral CTRL + SHIFT + ~ Formato Moeda CTRL + SHIFT + $ Borda simples CTRL + SHIFT + & Ocultar Linhas CTRL + 9 Re-exibir Linhas CTRL + SHIFT + ( Ocultar colunas CTRL + 0 Re-exibir linhas CTRL + SHIFT + ) Inserir Células Vazias CTRL + SHIFT + sinal de adição Excluir seleção CTRL + hífen Selecionar região de dados CTRL + * (teclado numérico) Selecionar até a última célula não-vazia CTRL + SHIFT + teclas de direção Selecionar até o início (final) da planilha CTRL + SHIFT + HOME (END) Selecionar até o início (fim) da linha SHIFT +HOME (END) Selecionar todas as células com comentário CTRL + SHIFT + O Selecionar somente as células visíveis ALT + ; Preencher a seleção os dados atuais CTRL + ENTER A tecla ALT seguida da letra que estive sublinhada nos menus ou comando , aciona o respectivo Menu ou Comando OBSERVAÇÃO: No Microsoft Excel, você encontra uma lista de teclas de atalho utilizando a ajuda (F1), consultando por TECLAS DE ATALHO.

Page 23: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 23 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Segunda Parte

CAPÍTULO 4 - INTRODUÇÃO AO VBA

Introdução

Seja bem vindo à segunda parte deste curso: a programação em VBA (Visual Basic for Application). Nesta parte aprenderemos a criar comandos novos para o Excel otimizando suas tarefas e conhecendo assim, um pouco do universo da programação (orientada a objetos) de computadores.

Conceitos Iniciais

Objeto: A maneira mais fácil de entender o que são objetos no Excel é compará-los a objetos do mundo real. No mundo real, a cidade, a escolas, a sala de aula e o aluno são objetos. Uma cidade é salpicada de escolas, uma escola é cheia de salas de aula, uma sala de aula é lo-tada de estudantes e todos os estudantes são “arrumados” em filas or-ganizadas. No Excel podemos dizer que a pasta de trabalho (workbook), a planilha (sheet), a linha (row), a coluna (column) e a cada célula (cell) são objetos do Excel.

Coleção de Objetos: No mundo real o objeto pertence a uma classe de objetos, exemplo: um aluno pertence à classe de objeto alu-nos, uma escola a classe de objetos escolas. Assim também no Excel, o objeto workbook (pasta de trabalho) pertence à coleção workbooks (pas-tas de trabalhos), o objeto sheet (planilha) a coleção sheets, o objeto row (linha) à coleção rows (linhas), o objeto column (coluna) a uma coleção columns (colunas). Observe que uma coleção de objetos é um objeto, individual, de outra classe, exemplo: a escola Granbery é um item da coleção Escolas, e ao mesmo tempo Granbery é uma coleção de obje-tos. Cada objeto pertence a uma coleção de objetos similares e cada co-leção de objetos é um item individual dentro de uma coleção maior. Pode referenciar-se ao Granbery assim:

Pelo nome: “Escola Granbery” possui um ensino de quali-dade...

Pelo Item: “Das escolas particulares, a segunda na or-dem alfabética” possui um ensino de qualidade....

Diretamente: “esta escolha aqui” possui um ensino de qualidade...

No excel...

Pelo Nome: Worksheets(“Granbery”) Pelo Item: Worksheets.item(2) Diretamente: Activesheet.

Page 24: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 24 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Objetos têm Propriedades: Propriedades são características.

Exemplo: O aluno da sala 304, sentado na quarta carteira da segunda fi-la tem cabelo curto, camisa azul, sua altura é 1,75m e seu nome é Ra-fael e o estado dos olhos é fechado. Tudo isso são as propriedades do objeto Aluno. O Douglas, sentado à frente dele também possui as pro-priedades cabelo, camisa, nome, altura e o estado dos olhos, porém os valores de suas propriedades são diferentes. O aluno de nome Rafael é um objeto diferente do aluno de nome Douglas, mas cada um é um obje-to estudante.

A Carteira também é um objeto. Objeto carteira também possui a propriedade altura, mas não possui a propriedade cabelo, assim tam-bém, objeto carteira possui a propriedade fabricante é objeto aluno não. Os objetos que possuem as mesmas propriedades (mesmo que estas propriedades possuam valores diferentes) pertencem à mesma classe.

O Rafael é um objeto da classe estudante. Todos os alunos for-mam a classe Estudantes. Esta classe também é um objeto. A coleção de estudantes tem suas próprias propriedades. A propriedades da cole-ção não são as mesmas propriedades dos objetos individuais contidos nela. A propriedade cabelo não existe no objeto Estudantes, existiria pa-ra quê?. Enquanto a propriedade quantidade (count) é de grande impor-tância para o objeto Estudantes.

Não esqueça, objetos que possuem lista de propriedades iguais pertencem à mesma classe de objeto (mesmo que os valores das pro-priedades sejam diferentes). O Rodrigo, de outra sala, é um objeto e per-tence à mesma classe de objetos estudante, assim como Rafael, pois possui as mesmas propriedades. O objeto estudantes da sala 1 e o ob-jeto estudantes da sala 2 possuem as mesmas propriedades e ambas pertencem à classe de objetos estudantes.

Assim dizemos que no excel a classe planilhas(sheets) contém a planilha Escola - Sheets(“Escola”) – e também contém a planilha Cur-sos – Sheets(“Cursos”). Considerando que as planilhas Escola e Cursos estejam no mesmo arquivo chamado Educação, dizemos que estas pla-nilhas são objetos individuais da classe Pasta de Trabalho – Workbo-oks(“Educação”).

Objetos têm Métodos: Métodos são ações. Objeto tem métodos. Objetos de mesma classe possuem os mesmos métodos, assim como as propriedades. Da mesma maneira que classes de objetos diferentes possuem propriedades diferentes, estas classes diferentes possuem mé-todos diferentes. O método mais comum é o adicionar (add). Podemos adicionar um estudante novo à classe estudantes. A distinção entre mé-todo e propriedade é difícil devido à notória semelhança, afinal olhos fe-chados é uma propriedade do estado dos olhos ou uma ação de fechar

Page 25: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 25 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

os olhos? Todavia, o cotidiano se encarrega de realçar as diferenças en-tre método e propriedade. Observe os conceitos seguintes.

Métodos podem mudar propriedade: Ao adicionar (add, méto-do) um estudante, automaticamente modifica a quantidade (count, pro-priedade) de estudantes.

Propriedades podem envolver ações: Visível ou não? Visibili-dade de uma planilha é uma propriedade da planilha, porém ao fazer is-to notamos que a planilha sumiu, parecendo uma ação.

Tabela de significados Observe a tabela abaixo, possui termos utilizados freqüentemente nesta

parte da curso. Alguns significados são simplesmente traduções do inglês para o português, enquanto outros significados sofreram adaptações para expres-sarem a sua verdadeira função no Excel.

TERMO SIGNIFICADO

Active Ativo

Add Adicionar

Application Aplicativo (no caso, Excel)

Book(s) Pasta de trabalho(s), arquivo(s), do-cumento(s)

Cell(s) Célula(s)

Column(s) Coluna(s)

Copy Copiar

Count Quantidade,

Current Atual

Entire Tudo

Integer Nº Inteiro

Paste Colar

Range Célula, Cadeia de Células

Region Região

Page 26: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 26 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Row(s) Linha(s)

Select Selecionar, marcar, escolher

Selection Seleção, marcado, escolhido

Sheet(s) Planilha(s)

Sub Início de uma sub- rotina

Work Trabalhar, utilizar

False, True Falso, Verdadeiro

Macro

A macro é um “mini programa” que realiza as tarefas contidas nela. Po-de-se dizer que uma macro tem a capacidade de armazenar os comandos que utilizamos no Excel transformando-os em linhas de instrução dando assim a aparência de programação.

Para trabalhar com a macro pode-se utilizar o submenu macro, menu ferramentas, ou ativar a barra de ferramentas no menu exibir, submenu barra de ferramentas, Visual Basic.

Gravando uma macro

Abra o arquivo exemplo Planilha do Geral , Siga o pas-so-a-passo abaixo para criar uma macro para formatação de moeda chamada de Forma-tarMoeda.

Passo Um) Selecione a faixa C4:F5.

Passo Dois) Clique na ferramenta gravar macro da barra de ferramentas do Visual Basic. No campo nome da macro escreva o nome da sua macro. Este nome não pode conter espaços ou símbolos especi-ais. Pode-se definir uma tecla de atalho para sua macro e também descrever algo sobre ela. Coloque o nome de FormatarMoeda, tecla CTRL+SHIFT+M, e descreva falando que é sua primeira macro. Clique em Ok.

Passo Três) Clique em formatar, células, moeda, casa decimais zero. OK.

Page 27: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 27 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Passo Quatro) Clique em Parar a gravação

Executando uma macro

Passo Um) Selecione a faixa C6:F7.

Passo Dois) Clique na ferramenta executar macro.

Passo Três) Selecione a macro FormatarMoeda e clique em executar.

Examinado uma macro

Passo Um) Clique na ferramenta executar macro.

Passo Dois) Selecione a macro FormatarMoeda e clique em Editar.

Neste momento, a janela do Editor do Visual Basic é exibida, contendo nela a macro criada. A sua macro tem o seguinte formato:

Sub formatarmoeda()

'

' formatarmoeda Macro

' Macro gravada em 29/09/2002 por Eduardo

'

' Atalho do teclado: Ctrl+Shift+M

'

Selection.NumberFormat = "$#,##0"

End Sub

As linhas que começam com apóstrofo são linhas de comentários. Os comentários são importantes para o “programador”, porém são linhas ignora-das pelo Visual Basic. Tudo que não for comentário é uma linha de instrução que deverá ser lida pelo Excel quando a macro for executada.

Sub seguido do nome da macro. Vem da palavra sub-rotina de um programa. No nosso caso Sub indica o início da macro. End Sub, diz ao Visual Basic para encerrar a macro. Todas as instruções entre Sub e End Sub formam o corpo da macro.

Selection.NumberFormat = "$#,##0". A única “real instrução” desta macro.

Page 28: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 28 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

• Selection é parte selecionada da planilha. Selection é o objeto.

• NumberFormat = , é a propriedade do objeto. Quando o gravador de macro incluir o sinal de igualdade na instrução (=) a palavra à esquerda deste sinal é normalmente uma propriedade. Propriedade é precedida por um objeto. O objeto e propriedade são separados por um ponto (.).

• "$#,##0", a informação que está à direita do sinal de igualdade é a que fica designado para a propriedade.

Dica para facilitar:

Para melhor interpretação das instruções inclua sempre a palavra objeto antes da leitura do nome do objeto, e a expressão sua propriedade antes da leitura da propriedade. Leia-se então:

O objeto Selection terá sua propriedade NumberFormat igualada a “$#,##0”,

Traduzindo melhor:

O objeto selecionado terá sua propriedade formato do número igualada a “$#,##0”,

Gravando outra macro – Mudando várias propriedades de uma só vez

Siga o passo-a-passo para criar uma macro que mescle o texto verti-calmente chamada de MesclarVertical.

Passo Um) Selecione a faixa A3:A8 e dê um clique em Gravar macro;

Passo Dois) Na caixa de diálogo Gravar macro, coloque o nome Mes-clarVertical e clique em OK.

Passo Três) Clique no menu formatar, células, na guia alinhamento a-tive a caixa de seleção mesclar células, mude a orientação para 90º, centralize o alinhamento horizontal e vertical. Observe o restante da tela que você não modificou e em seguida clique em OK.

Page 29: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 29 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Passo Quatro) Clique em Parar Gravação. Clique em Executar ma-cro, selecione a macro MesclarVertical e clique em Editar. Eliminando as linhas desnecessárias, observe o formato de sua macro.

Sub MesclarVertical() ‘Início da macro

With Selection ‘Início da Estrutura With (detalhes abaixo.)

Objeto Selection (o que está Selecionado)

.HorizontalAlignment = xlCenter ‘Propriedade Alinhamento horiz. = centro

.VerticalAlignment = xlCenter ‘Propriedade Alinhamento Vert. = centro

.Orientation = 90 ‘Propriedade Orientation = 90 graus

.MergeCells = True ‘Propriedade Mesclar Células, marcada.

End With ‘ Final da Estrutura With

End Sub ‘ Final da macro

• Estrutura With é usada quando precisamos modificar várias propriedades de um objeto facilitando a leitura da macro pelo usuário. No caso, a estrutu-ra With está relacionada com o objeto Selection, significando que todas as propriedades descritas até a instrução End With pertence a este objeto.

Modificando uma Macro – Alternação

Siga o passo-a-passo para conseguir criar uma macro que realizará a ta-refa de exibir/ocultar as linhas de grade de uma planilha. Esta macro chamará TrocarGrade. O objetivo é fazer uma macro que ative e também desative as linhas de grade.

Passo Um) Clique em Gravar Macro, em seguida clique em ferramen-tas, opções e desmarque a caixa Linha de grade.

Passo Dois) Clique em Parar Gravação.

Passo Três) Edite esta macro e interprete a linha de instrução.

Sub TrocarGrade()

ActiveWindow.DisplayGridlines = False

End Sub

Esta linha, leia-se:

Page 30: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 30 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

objeto ActiveWindow na sua propriedade DisplayGridLines será false.

Quando uma propriedade é definida como false, significa que o outro va-lor existente para ela é true. E se ela for definida como true obviamente as li-nhas de grades aparecerão.

Pode-se criar uma macro para colocar as linhas e outra para retirar, co-mo também pode-se modificar esta macro para que ela mesma coloque e retire as linhas.

Passo Quatro) Modifique sua macro para que esta fique assim

Sub TrocarGrade()

Dim GradeAtual as boolean

GradeAtual = ActiveWindow.DisplayGridlines

ActiveWindow.DisplayGridlines = Not GradeAtual

End Sub

• A Segunda instrução reserva um espaço na memória do computador para informações booleanas, ou seja reserva uma espaço na memória para in-formações True (verdadeira) ou False (falso). A este espaço foi dado o no-me de GradeAtual. GradeAtual é uma variável do tipo booleana.

• A terceira instrução guarda na Variável GradeAtual o estado da propriedade .DisplayGridlines pertencente ao objeto ActiveWindow.

• A quarta instrução tem a novidade do NOT (não), que inverte o valor de GradeAtual, explicando melhor: Ao iniciar a macro, GradeAtual guarda o va-lor atual da grade (True/False) e em seguida muda a propriedade grade pa-ra o oposto (not) ao que estava guardado (False/True).

Acompanhando o funcionamento da Macro

Estando o curso posicionado entre Sub e End Sub, pressione a tecla F5 pa-ra executar a macro automaticamente ou a tecla F8 para executar a macro instrução por instrução.

Page 31: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 31 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Atalho para a Macro

Teste esta macro estando na planilha. Para facilitar a utilização desta macro, clique em executar macro, selecione a macro TrocarGrade, clique em opções e inclua o atalho CTRL+SHIT+T. (Cuidado, o atalho para a macro, pode desativar um atalho para algum comando no Excel, utilize sempre o Shift para diminuir as possibilidades disto acontecer). Teste a macro usando a tecla de atalho CTRL+SHIT+T.

Trabalhando com métodos

Mudar a aparência das células é uma propriedade das células. Poder ser copiada, depois colada já é um método (uma ação) que está sendo feita com aquela célula. A macro a seguir, chamada de ConverterParaValores, vai converter as fórmulas de nossa tabela em valores numéricos. Siga os passos:

Passo Um) Selecione a Célula C4 e observe a fórmula. Clique em Gra-var Macro, nomeie para ConverterParaValores, clique em Ok.

Passo Dois) Clique no menu Editar, em seguida no comando Copiar

Passo Três) Clique em menu Editar, Colar Especial, selecione a opção Valores e clique em OK.

Passo Quatro) Pressione a tecla ESC para desaparecer a linha pontilhada desativando assim o modo Copiar.

Passo Cinco) Clique em Parar Gravação. Observe que a fórmula deixou de existir mostrando somente o resultado.

Passo Seis) Mude para o Editor do Visual Basic (VBA). Observe sua macro, e coloque um espaço seguido do sinal _ (underline, subtraço) para in-formar que a linha de instrução continua na linha abaixo. Faça sua macro ficar com esta aparência.

Sub ConverterParaValores()

Selection.Copy

Selection.PasteSpecial Paste:=xlValues, _

Operation:=xlNone, _

SkipBlanks:=False, _

Transpose:=False

Application.CutCopyMode = False

End Sub

Page 32: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 32 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

• A segunda instrução significa: Objeto Selection fará o método (ação) copiar. Como não tem nenhum sinal de igualdade a expressão à direita do ponto representa um método. Este método (ou esta ação) não precisa de argu-mentos (especificar como fazer).

• A terceira instrução, estruturada agora em 5 linhas, significa: O objeto Se-lection fará o método PasteSpecial (Colar Especial), porém... este método precisa de argumentos, então para fazer este método foi respondido ao ar-gumento paste (colar) a informação xlvalue (valores), ao operate (operação) a informação Xlnome (nenhuma). Os outros dois argumentos são relativos a transpor e ignorar em branco, no caso desnecessárias, por isso, serão ex-cluídas da macro juntamente com o segundo argumento que é padrão. De-pois disto, observe como sua macro ficou:

Sub ConverterParaValores()

Selection.Copy

Selection.PasteSpecial Paste:=xlValues

Application.CutCopyMode = False

End Sub

• Um Objeto tem métodos e este métodos podem ter argumentos ou não. Quando não possuem argumentos este métodos são simplesmente escritos após o objeto. Quando o método possui argumentos estes devem ser colo-cados após o método separados apenas com espaço. Os valores para os argumentos deverão ser atribuídos a este com o símbolo de := (chamado de “recebe”). Os argumentos não fazem nenhum ação específica, apenas avisam ao método como deve fazer a ação. Os métodos poderão ter vários argumentos que deverão ser separados por uma vírgula (,).

Page 33: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 33 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

CAPÍTULO 5 - MACRO - TAREFAS EXTENSAS

Imagine que todo mês você recebe via e-mail um relatório de pedidos do mês da filial da firma onde trabalha. Este relatório terá que ser modificado para se enquadrar no seu arquivo de pedidos geral da firma. Esta modificação inclui em vários passos. Fazer isto uma única vez não é tão trabalhoso, mas, fazer isto várias vezes, é necessário uma macro para facilitar o serviço.

Macros que realizam tarefas extensas devem ser divididas em várias partes. Neste caso vamos dividir o serviço em 5 partes, Abrindo o arquivo, Pre-enchendo os rótulos vazios, Adicionando a data, Incluindo o antigo-relatório no arquivo de pedidos, excluindo o antigo-relatório.

Os arquivos modelos deste capítulo serão o PedGeral.dbf e o Rel-Mês.txt,. Observe que nenhum destes pertencem ao Excel. O Excel será usado apenas para manipulá-los.

Abrindo um Arquivo de Relatório

Passo Um) Comece uma nova pasta de trabalho no Excel e salve-a co-mo Adaptar.xls. (É importante que o local da gravação seja o mesmo dos ar-quivos anteriores). Para facilitar a criação da macro abaixo deixe esta pasta restaurada, e não maximizada.

Passo Dois) Clique em gravar macro, nomeie como ImportarArquivo e clique em OK.

Passo Três) Clique em Abrir. Passo Quatro) Digite em nome do arquivo: RelMês.txt. Clique em

abrir. Como este arquivo não pertence ao Excel, a etapa 1 do Assistente de Importação de texto aparece. Clique em Largura fixa, e coloque o início da im-portação de linhas igual a 4.. Verifique se a origem do arquivo está com Win-dows (ANSI). Considere as demais etapas do assistente com opção padrão clicando em concluir.

Passo Cinco) Arraste a borda inferior da janela nova para cima de modo que se possam ver as guias da parte inferior da pasta de trabalho Adap-tar. Arraste a única planilha do arquivo RelMês.txt (chamada de RelMês) para a direita da planilha Plan1 do seu arquivo Adaptar. Logo após observe que o do-cumento RelMês.txt desaparece, pois não se pode mostrar uma pasta de traba-lho no Excel sem planilhas, então o Excel fecha esta arquivo automaticamente.

Passo Seis) A linha 2 contém sinais de igualdade desnecessários. Sele-cione a célula A2 e no menu Editar dê um clique no comando Excluir. Selecio-ne a opção linha inteira e clique em OK.

Page 34: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 34 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Passo Sete) Selecione a célula A1 e dê um clique no botão desativar o gravador.

Passo Oito) Salve a pasta de trabalho Adaptar. e observe a sua macro. Para interpretá-la utilize a tecla F8.

Passo Nove) Observe que algumas instruções desnecessárias para um programa foram também gravadas. É o caso das linhas de instrução sobre ar-rastar da janela. Exclua estas linhas e também as linhas de comentário. Estru-ture melhor sua sub-rotina para melhor interpretação dos comandos. Lembre-se que para futuras interpretações da sua macro você pode adicionar comentá-rios. Você pode transformar linhas de instrução temporariamente em linhas de comentário para avaliar se esta linha é de importância na macro. Observe sua macro, ela deve estar semelhante a macro abaixo:

Sub ImportarArquivo()

'este mes vou abrir este arquivo e o mes que vem?

Workbooks.OpenText Filename:= _

"C:\Meus documentos\Excel VBA 2002\RelMes.txt.txt", _

Origin:=xlWindows, _

StartRow:=4, _

DataType:=xlFixedWidth, _

FieldInfo:=Array(Array(0, 1), _

Array(8, 1), _

Array(20, 1), _

Array(25, 1), _

Array(39, 1), _

Array(50, 1))

Sheets("RelMes.txt").Select

Sheets("RelMes.txt").Move Before:=Workbooks("adaptar.xls").Sheets(1)

Range("A2").Select

Selection.EntireRow.Delete

Range("A1").Select

End Sub

Page 35: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 35 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Selecionando o arquivo na execução da macro

Passo Um) Este mês o arquivo que será aberto é o RelMes.txt. No pró-ximo mês você poderá ter que abrir um arquivo com o conteúdo semelhante e o nome totalmente diferente. Então se faz necessário escolher o arquivo que será aberto em meio a execução da macro e guardar o nome do arquivo esco-lhido em uma variável Para isto, copie a instrução a seguir logo acima da instrução que inicia com Workbooks

Dim MeuArquivo as string

MeuArquivo = Application.GetOpenFilename("text files,*.txt")

Passo Dois) Na linha correspondente ao arquivo que esta sendo aberto coloque o nome da variável (MeuArquivo) que contém o nome do arquivo que desejamos abrir.

Passo Três) Troque a expressão Sheets(“RelMes.txt”).Move para Acti-veSheet.Move e exclua a linha Sheets(“RelMês.txt”).select. Observe então a aparência de sua macro. Use o F8 várias vezes para acompanhar a execução da macro.

Sub ImportarArquivo()

MeuArquivo = Application.GetOpenFilename("text files,*.txt")

Workbooks.OpenText Filename:=MeuArquivo, _

Origin:=xlWindows, _

StartRow:=4, _

DataType:=xlFixedWidth, _

FieldInfo:=Array(Array(0, 1), _

Array(8, 1), _

Array(20, 1), _

Array(25, 1), _

Array(39, 1), _

Array(50, 1))

ActiveSheet.Move Before:=Workbooks("adaptar.xls").Sheets(1)

Page 36: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 36 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Range("A2").Select

Selection.EntireRow.Delete

Range("A1").Select

End Sub

• O gravador de Macro utilizou o objeto Range que significa célula, ou cadeia de células.

• Como a macro foi executada muitas vezes, existe em sua pasta de trabalho Adaptar várias cópias da RelMês. Por enquanto, deixe-as.

Você acaba de concluir esta primeira etapa.

Preenchendo valores ausentes

Observe o seu relatório. Este possui alguns espaços vazios que, dedutiva-mente, representam os mesmos valores da parte superior. Para o Excel isto é um problema que será resolvido através da macro a seguir.

Passo Um) Selecione uma cópia da planilha RelMês.

Passo Dois) Clique em gravar macro, digite PreencherRótulos. Clique em OK.

Passo Três) Selecione a célula A1, (mesmo que já esteja selecionada), Pressione CTRL+ * (ou CTRL + SHIFT + * caso utilize o teclado principal em vez do numérico) para selecionar a região. Clique em Editar, comando Ir para. Clique em especial e em seguida clique na opção Em branco. Observe que ao clicar em OK, somente as células vazias desta região estão selecionadas.

Passo Quatro) Digite =, pressione a seta para cima e em seguida CTRL+ Enter.

Passo Cinco) Pressione CTRL+*

Passo Seis) Selecione o menu Editar e dê um clique em Copiar. Em se-guida, selecione o menu Editar e dê um clique em Colar especial. Dê um clique na opção Valores, e em OK.

Passo Sete) Pressione a tecla ESC para sair do modo copiar e selecio-ne A1.

Page 37: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 37 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Passo Oito) Dê um clique no botão Parar gravação, e salve a pasta de trabalho. Sua macro tem a seguinte aparência:

Sub PrencherVazios()

Range("A1").Select

Selection.CurrentRegion.Select

Selection.SpecialCells(xlCellTypeBlanks).Select

Selection.FormulaR1C1 = "=R[-1]C"

Selection.CurrentRegion.Select

Selection.Copy

Selection.PasteSpecial Paste:=xlValues

Application.CutCopyMode = False

Range("A1").Select

End Sub

• Das instruções acima, observe a Selection.FormulaR1C1 = "=R[-1]C", O objeto selection na sua propriedade formulaR1C1 (R de Row=linha, C de Co-lumn=Coluna) vai ser igual ao próprio R subtraído de -1 e C. Entenda isto: D3 é a referência que representa Coluna D e linha 3, se a fórmula na macro indica R-1 ( linha – 1) e C (coluna), podemos dizer que a fórmula represen-ta D que é a mesma coluna e 2 que é a linha atual –1. Esta fórmula foi cria-da assim porque ao digitá-la apertamos CTRL + Enter. Indicamos, então, que a mesma fórmula deverá ser aceita por toda a área selecionada. Assim toda célula selecionada possui uma fórmula que faz com que o resultado de cada célula seja igual ao valor inscrito na célula superior a ela.

Adicionando uma Coluna de Data

Para saber de que período são estes pedidos se faz necessário uma coluna de data. Para criar e preencher esta coluna faça uma macro:

Passo Um) Selecione a planilha que tenha os rótulos preenchidos e clique em Gravar Macro, adicione o nome AdicionarColunasDatas, clique em OK.

Passo Dois) Selecione a célula A1, escolha o comando coluna no menu inserir.

Passo Três) Digite Data na célula A1 e pressione Enter.

Page 38: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 38 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Passo Quatro) Selecione a região pressionando CTRL + *.

Passo Cinco) Selecione as células Em Branco, clicando em Editar, Ir para, Especial.

Passo Seis) Digite Nov-2002 e pressione CTRL + Enter para preencher as outras células com esta data.

Passo Sete) Selecione a célula A1, e clique em Parar Gravação.

Percorra a macro pressionando F8 ou F5 e observe que neste caso sempre será colocada a data de nov-2002. Seguindo as explicações abaixo, modifique a macro para que venha solicitar a data.

A instrução abaixo diz ao Excel: Reserve um espaço da memória; Cha-me este espaço de MinhaData; Prepare-se para guardar neste espaço uma “data”. Esta instrução deverá ser inserida no início da macro logo abaixo do comando Sub( ).

Dim MinhaData as date

Existe uma instrução que faz uma pergunta ao usuário e aguarda a res-posta para continuar a execução da tarefa. Esta instrução é uma função9 do Visual Basic chamada de InputBox (). Basta colocar conforme abaixo:

MinhaData = InputBox (“Qual a data deste relatório? Formato Mmm-yyyy.”)

Neste caso, o que for escrito ao se perguntar a data será guardado na variável MinhaData.

A conferência do que foi digitado com o que se esperava que fosse digi-tado não foi programada. A tecla cancelar também não está programada no momento. Edite a sua macro fazendo as alterações propostas. Finalmente compare sua macro com o modelo abaixo.

Sub AdicionarColunasDatas()

Dim MinhaData as date

MinhaData = InputBox("Entre com a data do relatório no formato Mmm-yyyy")

Range("A1").Select

Selection.EntireColumn.Insert

9 Função: As linguagens de programação possuem “mini-programas” já prontos que realizam tarefas corriqueiras. Perguntar algo para o usuário é comum para programadores por isso o VBA incorporou esta função da linguagem VB.

Page 39: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 39 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

ActiveCell.FormulaR1C1 = "Data "

Range("A2").Select

Selection.CurrentRegion.Select

Selection.SpecialCells(xlCellTypeBlanks).Select

Selection.FormulaR1C1 = MinhaData

Range("A1").Select

End Sub

Interpretando macros já criadas e criando sem passo-a-passo

Até aqui esta apostila foi dando um passo-a-passo para você criar suas macro. Para forçar a interpretação, criação e leitura das macros estaremos do-ravante escrevendo as macros apenas com linhas de comentários. Observe as duas macros abaixo, realizadas para esta mesma planilha. Vamos interpretá-las? Observe os comentários. Os nomes dos arquivos poderão ser diferentes.

Sub IncluirAoBancoDeDados()

''selecionei A1, deletei a linha inteira, selecionei a região e copiei.

Range("A1").Select

Selection.EntireRow.Delete

Selection.CurrentRegion.Select

Selection.Copy

'abrindo o arquivo de banco de dados

Workbooks.Open Filename:= _

"C:\Meus documentos\Excel VBA 2002\Pedidos.dbf"

'mexendo com a barra de rolagem

ActiveWindow.SmallScroll Down:=64

ActiveWindow.ScrollRow = 1

'Para auto-ajuste da largura da coluna A foi usado os 2 clique no rótulo da coluna.

Columns("A:A").EntireColumn.AutoFit

Page 40: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 40 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

'fui para a última linha escrita desta coluna

Selection.End(xlDown).Select

'A instrução abaixo significa:

' Selecione a célula que está uma linha abaixo da atual. A célula atual é considerada a primeira célula (“A1”) desta área atual.

ActiveCell.Offset(1, 0).Range("A1").Select

'Cole na planilha ativa

ActiveSheet.Paste

'desativei o copiar

Application.CutCopyMode = False

'selecionei a região

Selection.CurrentRegion.Select

'ao arquivo ativo, que é um banco de dados foi atribuido

'os novos dados selecionados

Selection.Name = "Database"

'fechei o arquivo ativo optando por gravar as alterações

ActiveWorkbook.Close savechanges:=True

'selecionei coluna a1.

Range("A1").Select

End Sub

--------------------------------------------------------------------------------------------------

Page 41: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 41 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Sub ExcluirPlanilha()

‘ avisei para não emitir a pergunta de confirmação

Application.DisplayAlerts = False

‘deletei as planilhas selecionadas da janela ativa

ActiveWindow.SelectedSheets.Delete

End Sub

Criando sozinho uma macro

Já esta na hora de você criar uma macro sozinho. Crie uma para execu-tar as outras macros desta planilha. Confio em você.

Bom, terminamos mais um capítulo.

Page 42: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 42 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

CAPÍTULO 6 - APRENDENDO A APRENDER

Verificação Imediata

Neste capítulo estaremos aprendendo a trabalhar com a janela de verifi-cação imediata do VBA. Então clique no botão Editor do Visual Basic na barra de ferramentas do Visual Basic e em seguida clique em Exibir Código para mostrar a área de código e também em Exibir Janela de Verificação Imediata.

O Visual Basic abre uma tela de Edição de comandos. Tudo o que for digitado dentro desta tela será automaticamente executado ao se apertar a te-cla Enter.

Dica: Caso deseja repetir a execução do comando digitado basta posi-cionar o cursor novamente sobre a linha do comando e apertar a tecla Enter novamente.

Caso queira incluir uma linha vazia entre linhas já escritas utilize o comando CTRL + ENTER.

Para iniciar um comando pressione CTRL + ESPAÇO para que o VBA Basic exiba uma lista de comandos para facilitar seu trabalho.

Digite os comando abaixo na Verificação Imediata e observe o que a-contece com seu Excel.

Início

Workbooks.Add

WorkBooks(7).Activate

Worksheets(2).name = "Cobrança"

Worksheets(3).select

activesheet.name = "Atrasados"

Workbooks(5).Activate

ActiveWorkbook.Close

?Workbooks.Count

1

Workbooks.Close

Workbooks.add

Range("A1:b50").Select

selection.value = "S.O.S."

Rows(2).select

Selection.Delete

RAnge("A50").Select

?ActiveWorkbook.name

Pasta7

Fim

Page 43: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 43 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

As propriedades de somente leitura dos objetos, deverão ser antecedi-das por ? para serem exibidas na linha inferior ao comando.

Você pode também manipular várias planilhas ao mesmo tempo. Obser-ve a instrução abaixo.

Workbooks.Add

?Workbooks.count

5

1

Worksheets.Add

Worksheets(array(1,3,5)).select

A lista de ajuda (Auto List) pode não está aparecendo automaticamente para alguns comandos. Isto acontece quando o excel não consegue definir exatamente a classe que o objeto pertence. Observe o caso do comando Acti-veSheet. Para que a lista de ajuda apareça é necessário avisar ao Excel a classe deste objeto, pois assim, é possível ao Excel exibir a Auto List com os métodos e propriedades inerente aos objetos desta classe.. Para determinar isto ao Excel se faz necessário o uso de variável. Clique em Inserir Módulo e escreva o seguinte:

Sub Teste() Dim MinhaPlanilha As Worksheet Set MinhaPlanilha = ActiveSheet MinhaPlanilha.Name = "Teste" End Sub

A primeira linha esta instruindo ao Excel que a variável MinhaPlanilha só representará uma planilha. Já na segunda linha esta avisando que a variável refere-se a planilha ativa e na terceira instrução muda-se a propriedade name da minha variável que representa uma planilha, automaticamente, mudando o nome da planilha. Usa-se declaração de variável , entre alguns outros fatores, para forçar a exibição da Auto List que muito nos ajuda.

Pesquisador de Objetos Este comando ajuda você encontrar objetos que podem ser trabalhados na sua planilha. Imagine uma situação onde se faz necessário o controle das linhas escritas no Excel. Será que existe um objeto referente a linhas? A qual classe este objeto pertence? Quais são suas propriedades e métodos? Usando o pesquisador de objeto e muita intuição (principalmente no caso de iniciantes em programação!!!) você descobrirá objetos úteis para determinadas situações.

Lista automática de propriedades de métodos Ao digitar o nome de um objeto e em seguida o ponto, o Excel automati-camente exibi a AutoList. Uma lista de propriedades e métodos inerentes ao objeto. Observando esta lista com atenção você descobrirá métodos e proprie-dades úteis para casos particulares. É importante relacionar os símbolos que antecedem aos itens da lista com propriedades ou métodos.

Page 44: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 44 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

CAPÍTULO 7 - TRABALHANDO COM DESENHOS

Quando se trabalha com objetos de desenho no Excel podemos notar que estes objetos são móveis e dimensionáveis. Essas características se trans-formam em propriedades do objeto quando estamos em programação.

Utilizando o gravador de macro, crie um retângulo cobrindo a área B2:B3 na cor de preenchimento vermelha.

Edit sua macro CriarRetangulo. Compare com a escrita abaixo. Alguns valores podem alterar.

Sub CriarRetangulo()

ActiveSheet.Shapes.AddShape(msoShapeRectangle, _

48.75, 12#, 48.75, 27#).Select

Selection.ShapeRange.Fill.ForeColor.SchemeColor = 10

Selection.ShapeRange.Fill.Visible = msoTrue

Selection.ShapeRange.Fill.Solid

End Sub

Em português podemos traduzir nossa macro assim:

Sub-rotina CriarRetangulo()

PlanilhaAtiva.Formas.AdicionarForma(Retângulo, _

DistânciaDaEsquerda, DoTopo, MedidaDaLargura, DaAltura).Selecionar

Selecionado.FormaDaArea.Fomatação.RealcedeCores.TabelaDeCores = 10 (0 à 56)

Selecionado.FormaDaArea.Formatação.Visibilidade = verdadeira

Selecionado.FormaDaArea.Formatação.Sólido

Final da sub-rotina

Utilizar o gravador de macro é um método prático de se descobrir um comando. Aconselha-se que as macros sejam editadas, sofrendo acréscimos de linhas de instruções , inclusão de comentários e/ou exclusão de linhas. Nes-tas alterações podemos usar o Recurso de Variável que nos permite a utilizar-mos termos em português e ainda faz com que o VBA exiba a AutoList.

Vá para o Editor do Visual Basic. Posicione o cursor abaixo do End Sub e crie uma macro escrevendo as instruções abaixo:

Sub CriarRetanguloEuMesmo()

Page 45: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 45 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Dim planilha As Worksheet

Dim forma As Shape

Set planilha = ActiveSheet

Set forma = planilha.Shapes.AddShape(msoShapeRectangle, 72, 36, 72, 36)

Forma.Fill.ForeColor.SchemeColor = 10

End Sub

Traduzindo, ficou assim:

Sub-rotina CriarRetanguloEuMesmo()

DimensioneEspaço ParaVariavelChamadaPlanilha QueSeráSempreUsado Pa-raUmaPlanilha

DimensioneEspaço ParaVariavelChamadaForma QueSeráSempreUsado ParaU-maForma

FaçaQueA VariavelPlanilha Receba(ou SejaIgualA) PlanilhaAtiva

FaçaQueO ObjetoPlanilha.IncluaNovaForma(FormadeRetângulo, com as medidas)

Variavel(AgoraObjeto)Forma.Formatação.RealceCores.TabeladeCores = 10

Forma.delete

Final da Sub-Rotina

Inclua as seguintes instruções logo acima do End Sub:

Execute sua macro através do F8 e observe que você cria um retângulo sem seleciona-lo. O retângulo aparece na instrução Set Forma. Você também excluiu o retângulo sem selecioná-lo, usando o comando Forma.Delete. Usan-do variáveis e os nomes dos objetos facilitamos o entendimento da macro e evitamos linhas de instruções desnecessárias que utilizam o objeto selection.

É importante lembrar que as imagens podem ser nomeadas da mesma forma que nomeamos as áreas da planilha. Estes nomes podem ser utilizados na macro.

Page 46: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 46 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Trabalhando com Gráficos

Abra o arquivo gráficos para aula. Selecione a planilha Criando Gráficos, selecione A1. Ative o gravador de macro e clique em assistente de gráfico e logo em seguida em concluir. Observe abaixo a macro gerada.

Sub GerarGráfico()

Charts.Add

ActiveChart.ChartType = xlColumnClustered

ActiveChart.SetSourceData Source:=Sheets("Criando Gráfico").Range("A1:C4")

ActiveChart.Location Where:=xlLocationAsObject, Name:="Criando Gráfico"

End Sub

Clique no valor correspondente a propriedade tipo de gráfico (xlColumn-Clustered) e em seguida clique em Editar Listar Constante, o Visual Basic exibe a lista de nomes dos tipos de gráficos possíveis, escolha o xlConeBarStacked e execute a macro novamente.

Referindo ao gráfico

Edite a macro SelecionarGrafico e execute-a linha a linha com o F8. Ob-serve que um gráfico possui dois elementos distintos.

O primeiro Elemento é o recipiente que comporta o gráfico que é uma forma (objeto Shape) ou pode ser também referenciado como um Objeto Grá-fico (ChartObject).

O segundo é a parte interna do gráfico que só pode ser referenciada a-través de um Objeto Gráfico, pois este possui a propriedade Gráfico (Chart) que no exemplo foi atribuída a variável Gráfico.

Resumindo, para referenciar ao gráfico podemos considerá-lo um shape ou um ChartObject. Para “entrar” dentro do gráfico temos que aceitá-lo como um ChartObject.

Em seu arquivo, foram criadas as macros GerarGrafico, SelecionarGrafi-co, ModificarGrafico e ExcluirGraficoEFormas. Edite estas macro para entende-las melhor. Tente fazê-las usando os mesmos nomes seguidos do numeral 2.

Macro SelecionarGrafico: Esta foi criada sem o gravador, pois a intenção era testar qual a maneira de referenciar ao gráfico. Chega-se a conclusão que os elementos internos do gráfico só podem ser referenciados através do objeto ChartObjects.

Page 47: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 47 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Macro ModificarGrafico: Usando o gravador, clique na área do gráfico, clique duas vezes no eixo dos valores, modifique a escala para 50000, clique em Ok e pare o gravador. Observe que a sua macro é bem extensa em relação a macro já gravada para você comparar. Na sua macro existe várias linhas que podem ser remanejadas ou até mesmo excluídas.

ExcluirGrafico: A criação desta macro começou com o gravador, sele-cionando o gráfico e deletando. Depois foi totalmente modificada para evitar erros, como apagar um gráfico ou forma inexistente.

Escrevendo uma Macro que sincronize dois gráficos

No arquivo gráficos para aula, ative a planilha Dois Gráficos. Observe rapidamente os gráficos. Você afirmará que os faturamentos da região Leste e Oeste foram semelhantes. Afirmação errada. O desempenho da região Oeste foi consideravelmente melhor que o desempenho da Leste. Vamos criar uma macro para ajustar este gráficos.

Vá ao Visual Basic e escreva a macro abaixo:

Sub SincronizarGrafico()

Dim VarOeste As Chart

Dim VarLeste As Chart

Set VarOeste = ActiveSheet.ChartObjects(1).Chart

Set VarLeste = ActiveSheet.ChartObjects(2).Chart

VarOeste.Axes(xlValue).MaximumScaleIsAuto = True

VarLeste.Axes(xlValue).MaximumScale = Va-rOeste.Axes(xlValue).MaximumScale

End Sub

Vá em seu arquivo e mude o faturamento de Março da Região Oeste para 15000. Execute a Macro.

Page 48: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 48 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

CAPÍTULO 8

CRIANDO, MANIPULANDO E PERSONALIZANDO BOTÕES

Neste capítulo você poderá alterar os botões e menus do seu Excel, co-mo também criar novos.

Vá em seu Excel e clique em ferramentas, personalizar, comandos. Ob-serve que todos os menus estão descritos do lado esquerdo da tela e do lado direito são mostrados os botões referentes ao menu escolhido.

Estando nesta tela pode-se ainda clicar nas barras de ferramentas do Excel ou nos Menus. Isto nos permite uma alteração completa da tela do Excel. Observe que você pode retirar qualquer botão ou menu da tela do Excel ape-nas arrastando para esta tela . Podemos ainda incluir novos comandos, levan-do botões desta tela para as barras de ferramentas do Excel e/ou menus. Cui-dado as alterações da aparência geral do Excel podem te beneficiar e prejudi-car a muitos outros usuários.

Quando se clica em algum botão das barras de ferramentas do Excel você está autorizando o Excel a interpretar as linhas de instrução relativas a este botão. O conhecimento recém adquirido com este material possibilitou-o a criar linhas de instrução para o Excel através do VBA. Resta agora aprender a criar um botão para que este referencie as linhas de instrução previamente cri-adas – as macros.

Para melhor explicação deste capítulo, salve um arquivo novo no Excel com o nome de Aula de Botões. Vá ao Editor do Visual Basic e edite as linhas de instrução abaixo, criando assim duas macros – MaisZoom e MenosZoom.

Page 49: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 49 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Sub MaisZoom()

Dim numero As Integer

numero = ActiveWindow.Zoom + 10

If numero <= 400 Then

ActiveWindow.Zoom = numero

End If

End Sub

Sub MenosZoom()

Dim numero As Integer

numero = ActiveWindow.Zoom - 10

If numero >= 10 Then

ActiveWindow.Zoom = numero

End If

End Sub

Criando uma barra de ferramentas personalizada

Clique em ferramentas, personalizar, barra de ferramentas.

Page 50: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 50 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Clique em seguida no comando Nova, dê o nome Zoom, OK. Clique na guia comandos, na categoria Macros, e arraste o personalizar botão para den-tro da nova barra de ferramentas chamada de Zoom

Em seguida, clique em modificar seleção e observe as alterações que podem ser feitas em seu botão. Pode-se dar um nome, alterar sua imagem e etc... Pode-se ainda atribuir este botão a uma macro!!!. Atribua-o a macro MaisZoom e faça também um botão para a macro Menos Zoom. Sua barra de ferramentas deve estar como abaixo.

Utilizando a caixa de ferramenta controle

Esta caixa permite criar botões de controle pertencentes a pasta de trabalho e não ao Excel.

O 1º botão ativa/desativa o modo de criação de botões.

O 2º botão exibi uma janela com todas as propriedades referente ao ob-jeto selecionado, seja este a planilha ou os botões de controle. A seguir as pro-priedades mais utilizadas desta janela:

Name: Nomeia internamente o objeto. Este nome será usado na programação.

Caption: Dá um título ao objeto. Este será o texto que o usuário irá ler em sua tela.

AutoSize: Faz com que o tamanho do objeto altere (ou não) de acordo com o Caption.

Font: Permite formatar a fonte do Caption.

Left: É à distância da parte esquerda do objeto da margem es-querda da planilha.

Height: é a altura do objeto.

Locked: É a proteção do objeto. Funciona juntamente com o co-mando proteger do menu ferramentas.

TakeFocusOnClick: A célula ativa da planilha será transferida – false - (ou não - true) para o objeto clicado.

PrintObject: Este objeto será impresso ou não.

Page 51: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 51 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Visible: Este objeto está visível ou não.

Enabled: Este objeto esta ativa ou desativado.

Top: Distância da parte superior do objeto à margem superior.

Width: Largura do objeto.

LinkedCell: Para qual célula este objeto retornará resultados.

Min/Max: São os valores mínimos e máximos que algum objeto pode representar.

SmalChange: Cada clique no objeto representará o aumento de quanto no ao valor

Value: É o valor deste objeto, podemos considerar como sendo o conteúdo do objeto.

Delay: é o tempo que será considerado como um clique.

ListFillRange: é um nome de uma área da planilha que vai ser uti-lizada como uma lista para o objeto.

ColumnCount: É quantidade de colunas que possui a listagem.

BoundColumn: Qual das colunas será a coluna de referência, que fornecerá o valor para a linkedCell.

O 3º botão exibi os códigos criados para o objeto selecionado

Do 4º ao 11º botão cria-se os objetos para os quais podemos atribuir as propriedades.

O último botão exibi uma lista de outros controles que poderão ser utili-zados em nossa planilha.

Page 52: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 52 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

CAPÍTULO 9

FAZENDO O EXCEL RECONHECER SUA MACRO COMO SEGURA.

O Excel se protege contra as pastas de trabalho que contenham macros, pois podem interferir de forma automática causando dano a funcionalidade des-te software. São chamados de Vírus de Macro, toda macro que causa algum dano ao Excel ou a planilhas dos usuários. Se você não mudou a configuração de segurança padrão clicando no botão correspondente da barra de ferramen-tas do Visual Basic, todas as vezes que abrir um pasta de trabalho que contem macro, o Excel exibirá uma tela de Mensagem de alerta tipo a seguinte:

A maneira de evitar a exibição da tela de advertência são duas: A primei-ra é configurando sua proteção no nível mais baixo, isto não é recomendado. A segunda forma é adicionando uma assinatura digital ao seu projeto VBA e fa-zendo esta assinatura ser reconhecida pelo Excel.

Criando uma assinatura digital pessoal

O CD do Microsoft Office inclui um programa que pode ser usado para criar uma assinatura pessoal. Ao instalar o Office peça para instalar Assinatura Digital para projetos do VBA.

Procure em seu Windows Explorer o arquivo SelfCert que executa o programa de assinatura digital, este programa somente será encontrado se previamente instalado.

Adicione uma assinatura ao seu projeto

Você adiciona uma assinatura à parte do projeto VBA da sua pasta de trabalho, para isto abra seu arquivo que contém macros, clique na ferramenta que leva ao Visual Basic e dê um clique em ferramentas, assinatura digital. Lo-go após, ao abrir pela primeira vez o arquivo que contem macros assinadas aparecerá uma tela pedindo confirmação, clique então, na caixa de seleção “sempre confiar em macros dessa fonte”

Page 53: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 53 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

CAPÍTULO 10

IF END IF - DO WHILE LOOP

Neste capítulo vamos estudar duas estruturas de controle de programa-ção: Estruturas de Tomadas de Decisão e Estruturas de Loop.

Estruturas de Controle

As estruturas de tomas de decisão servem para desviar a programação para os caminhos desejados de acordo com veracidade da condição. Existem várias estruturas de tomadas de decisão, estudaremos a estrutura de controle denominada If End If.

If teste-lógico then

Comando 1

Comando 2

Comando 3

Comando n

Else

Comando A

Comando B

Comando C

Comando ...

End If

As linhas sublinhadas são obrigatórias na Estrutura If End If. Elas formam a parte constante desta estrutura.

O teste-lógico é uma expressão “matemática” onde podemos responder apenas Verdadeiro ou Falso.

O then antecede os comandos que deverão ser executados caso o valor do teste-lógico seja verdadeiro.

Page 54: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 54 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

O else antecede os comandos que deverão ser executados caso o teste-lógico seja falso.

O end if marca o fim da estrutura. Observe que o Excel nunca executará todos os comandos contidos no If End If de forma linear. Sempre o Excel terá que saltar alguns comandos, tomado assim a decisão do que será execu-tado. Caso o teste-lógico seja Verdadeiro executa os comandos iniciais e ao encontrar o else pula-se para o end if. Caso o teste –lógico seja falso executa os comandos após o else até o end if.

A estrutura If End If pode ser compactada omitindo o else. Assim ca-so o teste-lógico seja falso o Excel procura pelo else, mas como não o encontra vai para o end if.

Para os programadores esta estrutura é cotidiana.

Estruturas de Loop

As estruturas de Loop realizam determinados comandos enquanto a resposta para o teste lógico for verdadeiro. Os comandos que deverão ser exe-cutados repetitivamente serão delimitados no início por Do While e no fim por Loop. Observe o modelo abaixo:

Do While teste-lógico

Comando 1

Comando 2

Comando 3

Comando n

Loop

Estruturas Mistas

Podemos utilizar as estruturas If End If ou Do While Loop repetidas vezes de forma independente ou interligadas entre si observe o exemplo estru-tural abaixo

INÍCIO

A = ?

B = ?

Page 55: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 55 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

C = ?

If A>B then

C = A + B

Do While C >= B

B = B +1

A= A + B

Loop

Else

A = C + 1

C = B

If A = C then

A=3

C= 1

Do While B > A

A=A+1

Loop

End If

End if

FIM

Para acompanhar os comandos acima é aconselhável fazer uma tabela de acompanhamento de comandos linha a linha.

Page 56: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 56 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

CAPÍTULO 11

INCLUSÃO DE DADOS E EMISSÃO DE BOLETAS

No seu disquete existe um arquivo chamado Arquivo X. Neste arquivo você encontra várias planilhas. Acesse a planilha Tela Principal e observe os botões de comando e as macros já criadas neste exercício.

Comentário sobre as macros já criadas

Executando as rotinas através da tecla F8, tente entender as funções de cada linha das macros existente no arquivo X. Somente com a compreensão individual de cada linha podemos entender a funcionalidade da macro.

A macro abaixo inclui no banco de dados o Nome do Cliente. Os outros dados do Cliente são inseridos por macros semelhantes. Todas as linhas da macro IncluirNome foram feitas através do gravador.

Sub IncluirNome()

Range("B4").Select

Selection.Copy

Sheets("BASE DE DADOS").Select

Range("A1").Select

Selection.End(xlDown).Select

ActiveCell.Offset(1, 0).Range("A1").Select

ActiveSheet.Paste

Sheets("TELA PRINCIPAL").Select

Application.CutCopyMode = False

Range("A2:B2").Select

End Sub

As linhas,

End(xlDown).Select - Selecione a última célula não-vazia desta colu-na. Neste momento o Excel abaixa a célula até encontrar uma célula vazia, encontrando ele seleciona a primeira anterior a esta. Como já criamos uma

Page 57: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 57 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

macro para impedir os espaços em branco, posso acionar este comando na primeira linha com a certeza que selecionarei a última linha de dados.

ActiveCell.Offset(1, 0).Range("A1").Select - Esta linha posiciona uma linha abaixo da linha atual. Esta linha de instrução é devido ao ícone Referên-cia Relativa. Este ícone se encontra na barra de ferramentas Parar Gravação. Este comando, a partir da célula ativa, cria uma espécie de planilha virtual ini-ciando em (linhas, Colunas) depois célula corrente e pede para selecionar a célula A1 referente a esta planilha virtual.

A macro IncluirImprimir inclui a Letra N na coluna correspondente a Im-presso, informando então que a boleta correspondente ainda Não foi impressa.

---------------------------------------------------------------------------------------

Sub Incluir( )

IncluirNome

IncluirRua

IncluirBairro

IncluirCidade

IncluirUF

IncluirDTCompra

IncluirValor

IncluirDTVenc

IncluirImprimir

End Sub

Sem precisar do gravador, criou-se a macro acima para executar as ou-tras macros relativas a inclusão dos dados. A macro chamada de Incluir ape-nas chama à execução outras macros de inclusão de dados.

---------------------------------------------------------------------------------------

Sub PreencherVazios()

Sheets("BASE DE DADOS").Select

Range("A1").Select

Selection.ClearContents

Page 58: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 58 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Selection.CurrentRegion.Select

Selection.SpecialCells(xlCellTypeBlanks).Select

Selection.FormulaR1C1 = "****"

Range("A1").Select

Selection.Value = "NOME"

Selection.End(xlDown).Select

Sheets("TELA PRINCIPAL").Select

Range("A2:B2").Select

End Sub

A macro PreencherVazios apenas inseri **** nas células vazias da nossa base de dados. Pode acontecer que nenhuma célula esteja vazia, com isto, o comando Selection.SpecialCells(xlCellTypeBlanks).Select emitirá uma men-sagem de erro. Apagando o conteúdo de A1 [ Range("A1").Select , Selecti-on.ClearContents ] garantimos que pelo menos A1 estará vazia. Assim a macro executa normalmente e no final devolve para a célula A1 o seu conteúdo [Se-lection.Value = "NOME"]

---------------------------------------------------------------------------------------

Private Sub CommandButton1_Click()

botao = MsgBox("Confirma Impressão de Boletas?", vbOKCancel)

If botao = vbOK Then

'Imprimir

End If

A linha Private Sub CommandButton1_Click() indica que é uma macro privada. Só será executada caso o ocorra um Clique no Botão de Comando.

A instrução MsgBox("Confirma Impressão de Boletas?", vbOKCancel) exibi um caixa de mensagem na tela com a pergunta, sendo que esta caixa irá conter o botão OK e Cancelar. A variável Botao receberá a mensagem vbOK quando o usuário clicar em Ok.

---------------------------------------------------------------------------------------

Page 59: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 59 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

Private Sub Botaodeinclusao_Click()

Incluir

PreencherVazios

End Sub

O botão de inclusão chama pela Sub Incluir, que por sua vez, chama as rotinas de inclusão de dados. É sempre aconselhável o quebrar uma progra-mação extensa em vários procedimentos menores e de fácil compreensão. De-pois de Executa as funções de inclusão de dados a macro Incluir terá sido exe-cutada, logo em seguida, a macro PreencherVazios, impedindo que algum campo fique vazio.

---------------------------------------------------------------------------------------

Sub Imprimir()

Dim Celula As String

Dim Coluna As Integer

Dim Linha As Integer

Worksheets("Base de Dados").Select

Linha = 2

Coluna = 9

Celula = Cells(Linha, Coluna).Value

Do While Celula <> ""

If Celula = "N" Then

‘neste espaço devemos fazer as instruções de Copiar os dados, ir para a planilha

‘correspondente a boleta a ser impressa, posicionar a célula, Colar e Imprimir e

Page 60: Apostila Excel Avancado

Prof.: Eduardo d’Ávila Albuquerque 60 / 60

Coordenação de Pós-graduação, Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA

‘voltar para esta planilha chamada de base de dados.

Cells(Linha, Coluna).Value = "S"

End If

Linha = Linha + 1

Celula = Cells(Linha, Coluna).Value

Loop

End Sub

A macro imprimir é uma macro criada sem o gravador. Vamos interpretá-la passo a passo em sala de aula. Macros diferentes podem fazer as mesmas funções. Esta macro poderia ser criada com o auxílio do gravador e depois so-frer as alterações necessárias.

---------------------------------------------------------------------------------------

CONCLUSÃO

Parabéns!!! Você acaba de concluir os estudos sobre Excel Avançado e Programado em VBA. É certo que este material não é um manual completo de auto-ajuda, mas com toda certeza , é uma referência importante para consul-tas. Lembre que suas aulas foram totalmente baseadas nesta apostila, o que facilita para você relembrar os ensinamentos transmitidos. Cuide bem de seu material, daqui em diante ele será o seu ASSISTENTE.

Para completar seu aprendizado, observe as bibliografias abaixo:

JACOBSON, R. Excel 2002 Visual Basic for Applications. Tradução de

Joaquim Pinheiro Nunes da Silva. Revisão técnica de Marcelo Rosin Ci-

trangulo. São Paulo: Makron Books, 2002.

WANG, W. Visual Basic 6 para Dummies.Tradução de Ana Beatriz Ro-

drigues e Priscilla Martins Celeste. Consultor editorial Fernando Barcel-

los Ximens e Kpmg Consulting. Rio de Janeiro: Campus, 2. ed., 1999.

Fim