You are on page 1of 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

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

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 padronizaçã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 é adquirido 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ância 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 acompanhamento. 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 elaborados na pretensão de simular o dia-a-dia daqueles que necessitam de uma melhor performance para suas planilhas. No disquete você deve encontrar os seguintes 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 tabelas essencialmente numéricas. Este programa desenvolvido pela empresa Microsoft é atualmente o editor de planilhas de maior utilização pelo mercado-detrabalho. 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.

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

Devido a numerosidade de comandos e complexidade de funções o aprendizado 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 iniciantes do Excel, e os recursos mais avançados como funções (lógicas, financeiras, 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” embutida e apropriada aos programas. O nome desta “linguagem” é Visual Basic for Applications (VBA). Esta “forma2” de programação é especialmente desenvolvida para que os usuários dos “softwares comuns3” possam criar novos comandos, 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 é divido4 em duas etapas de ensino, O Excel Iniciante e o Excel Avançado/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 potencializar os programas do Office, serve como base para aprendizado do VB, afinal 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.
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 unicamente do Sistema Operacional. O VBA é chamado de forma de programação por não possuir todos os requisitos de uma linguagem. No quesito funcionalidade, todos os sistemas em VBA dependem primeiramente do programa tronco (neste caso o Excel) e conseqüentemente do Sistema Operacional. Softwares comuns são todos os programas populares “produzidos em alta escala” pelas empresas de desenvolvimento de sistemas. Exemplo de empresas: Microsoft, Corel. Exemplo de softwares comuns: Word, Excel, Access, Corel Draw.
4 3 2 1

Esta é uma divisão meramente didática. 3 / 60

Prof.: Eduardo d’Ávila Albuquerque

mesmo que sejam zeros(0) à esquerda. O comando mesclar e centralizar foi utilizado nos subtítulos da linha 2. Observe que todas as planilhas contidas nesta pasta de trabalho são semelhantes. foi usado o comando células do menu formatar onde os números foram personalizados6 para 0000.COMANDOS AVANÇADOS Para a melhor explicação dos comandos avançados5 do Excel. Lembre-se que os comandos de formatação. Na linha 3. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Primeira Parte CAPÍTULO 1 . Isto significa que o número de dígitos do código será no mínimo 4. Código. No Excel. Na coluna A. tamanho de fonte e outros como entendidos. Formatação No que tange a formatação de uma planilha. Veja a imagem abaixo: Não existe comando avançado oficialmente no Excel. itálico. 6 Usando a Ajuda do Excel procure por formatação de números e observe a utilização do #. porém possuem algumas formatações que facilitam e agilizam nosso trabalho. Clique então em Arquivo. enquanto na linha 1 o título geral pode ser mesclado e centralizado ocupando toda a largura da planilha. Para melhor desempenho é aconselhável copiar este disquete para uma pasta. a diferença observada é exatamente a utilização de comandos que serão explicados a seguir.Coordenação de Pós-graduação. Na coluna C. consideramos os comandos básicos como negrito. do menu formatar. Abrir e localize o arquivo Comandos Avançados. os títulos foram centralizados ocupando o correspondente ao seu espaço. foi utilizada a formatação condicional. dizemos que o arquivo gravado é uma pasta de trabalho que contém a(s) planilha(s). Prof. utilizaremos alguns arquivos salvos em seu disquete. onde podemos escolher qual formatação será utilizada de acordo com a condição feita. necessitam que uma determinada área da planilha seja selecionada.: Eduardo d’Ávila Albuquerque 4 / 60 5 . nós qualificamos assim baseado em sua complexidade e grau de utilização. em sua maioria.

Podemos também dar um clique duplo neste sinal de adição para autopreencher as linhas inferiores. utilizando o recurso de auto preenchimento7. Caso tenha colocado um destes comandos em células indevidas pode-se utilizar o comando limpar. no menu editar. e despesas administrativas. O valor do imposto foi calculado multiplicando o valor da compra pela porcentagem imposto . encontra-se o valor do frete. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Na coluna D. De maneira semelhante. Prof. enquanto as outras estão mostrando apenas o resultado da fórmula. foi usado o estilo moeda e nas colunas referentes à porcentagem o estilo porcentagem. É possível escolher o que deseja remover das células: tudo.. “copiamos” para as linhas seguintes. Observe sua utilidade na planilha. menu janela. formatos. sem perder sua característica inicial. sendo que a primeira fórmula de cada coluna está visível. As cores de preenchimento e bordas imprimíveis nas células são uma forma de melhorar a aparência de sua planilha. sendo que os endereços da fórmula são modificados pelo Excel. Fórmulas simples As fórmulas utilizadas nesta planilha podem ser visualizadas na planilha fórmulas e funções. 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.Coordenação de Pós-graduação. pois sofrem alterações ao serem usadas nos campos posteriores . Para facilitar a visualização dos dados na janela do Excel.: Eduardo d’Ávila Albuquerque 5 / 60 7 . comentários. As fórmulas em geral são adaptáveis a linhas e colunas. Nesta mesma planilha encontraremos outros exemplos de fórmulas simples. da mesma pasta de trabalho.. logo em seguida. arrastando o sinal de adição localizado no canto direitoinferior da célula ativa para a direção desejada. foi usado o comando congelar painéis. O auto preenchimento pode ser realizado posicionando a célula móvel sobre o resultado de uma fórmula e . Constrói-se uma fórmula e. Na quantidade apenas o comando centralizar.

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. o endereço da coluna h e da linha 10 é H10. Clique no comando funções. TESTE_LÓGICO: É o que desejamos que seja analisado pelo Excel. e que estes fornecedores estão em distâncias diferentes em relação ao local de entrega do produto. Utilizamos o recurso de função no seu Excel. ou H8 >=50. é o nome da função. ou B3=“domingo”. Abaixo uma melhor explicação desta sintaxe: SE. seguido do abre parêntese. O teste lógico pode ser dado a um número. O endereço. menu inserir.Coordenação de Pós-graduação. no caso sua loja. Observe ainda que na parte inferior é exibida uma sintaxe do funcionamento da função. Quando a comparação é relacionada a um texto.: Eduardo d’Ávila Albuquerque 6 / 60 8 . É importantíssimo observar esta sintaxe. este deve ser colocado entre aspas. É necessário que as taxas de frete sejam diferentes: masculina 3%. este formato é chamado de formato A1. porém pode-se fazer modificações neste formato do endereço. Neste caso queremos que o próprio Excel regule a porcentagem que será adotada. Por exemplo: 4=B3. a um endereço8 ou a um texto. 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 fornecedor e as peças femininas de outro fornecedor. seguido pela linha (representado pelo número). normalmente. sendo assim. ou B5<H9. feminina 4%. é composto primeiramente pela coluna (representado por uma letra). A BASE DE TODO APRENDIZADO É A OBSERVAÇÃO. Ao fazer esta Endereço no Excel é a união da Coluna com a Linha. Prof.

No caso desta planilha. no menu inserir é um assistente de função. Auxilia na edição e na descoberta de novas funções.3%.: Eduardo d’Ávila Albuquerque 7 / 60 . As funções realizam a tarefa para qual foi pré-determinada utilizando as informações fornecidas pelos usuários. Observe a função SE depois de pronta. Resta ao usuário apenas fornecer as informações necessárias para a execução da função. um texto. Pode ser um número. O comando funções.4%) Prof. =SE(C4="M". Elas retornam resultados alcançados na realização desta tarefa. 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. um endereço e até mesmo uma fórmula ou função. veja como ficou a função: Ao utilizar funções usufruímos comandos pré-prontos inclusos no Excel. Este método exige habilidade e maior atenção do usuário. mas proporciona agilidade.Coordenação de Pós-graduação. um texto. os quais realizam uma determinada tarefa. Existe o método escrito para as funções. Pode ser um número. Valor_se_verdadeiro: Significa o que o Excel deve fazer caso a expressão contida no teste lógico seja verdadeira. 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.

Para visualizar as funções nesta planilha. 10%) ) Se Equilíbrio menor que 10 então adote 30% de lucro. 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. Como esta função tem a necessidade de informações fornecidas pelo usuário (argumentos. SE ( L4 < 20 . deve se atentar para o correta informação destes. O nome da função. senão o adote 10%. basta selecionar a célula que contém o resultado da função. O usuário deve se atentar para os seguintes detalhes: O sinal de igualdade no início da função. As duas funções acima podem ser analisadas utilizando o português estruturado. Neste exemplo. 20% . a mesma função foi utilizada para os cálculos de porcentagem das despesas administrativas. Existem argumentos obrigatórios e opcionais.: Eduardo d’Ávila Albuquerque 8 / 60 . 30% . 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 Prof. A função SE é importante e muito utilizada nas planilhas com teor de complexidade.Coordenação de Pós-graduação. Será exibida na barra de fórmulas a função em sua maneira escrita. A colocação dos parênteses e ponto-e-vírgulas. Observe a função para porcentagem de lucro: = SE ( L4 < 10 . no decorrer dos estudos isto será identificado. senão analise se equilíbrio é menor que 20. sabendo que de argumento para argumento a separação e feita através de ponto-e-vírgula. neste caso 3 argumentos). se for adote 20% de lucro.

fixação da coluna D e fixação da linha 3. porém concentra várias operações em única fórmula. os dois endereços são adaptáveis.: Eduardo d’Ávila Albuquerque 9 / 60 .Coordenação de Pós-graduação. O endereço $K$3 é lido: é fixo a coluna K e é fixo a linha 3. somente parênteses dentro de parênteses. constantes entre os itens. nos cálculos expressamos seu endereço como $K$3. o primeiro endereço é fixo na coluna e o segundo é fixo na linha. Observe que a segunda fórmula para o preço de venda resulta o mesmo valor que a primeira. o endereço dele é K3. =$M15/G$9. sendo os parênteses mais internos prioritários no cálculo. e sim. endereço variável. Exemplos explicativos: =D4*I4. Muitas vezes precisamos realizar mais de uma operação em um cálculo. todas as fórmulas com a necessidade de parênteses. Sendo fixo. não utilizamos colchetes ou chaves. Na criação de fórmulas. O sinal $ significa que o elemento seguinte ao sinal é constante. A ordem a ser seguida ao se calcular é indicada pelos parênteses. Observe a fórmula utilizada: =D4*$K$3 Símbolo de igualdade. não adaptáveis à linhas ou colunas adjacentes. Fórmulas Complexas Por questões didáticas apelidamos de fórmulas complexas. Independente do produto a comissão é de 3%. sinal de multiplicaçã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. Estes 3% é fixo. como é o caso da porcentagem de comissão. =(D4+(E4*D4)+(G4*D4)+(I4*D4)+(D4*$K$3)+(O4*L4)) Prof.

Para remover o auto-filtro basta desativar o comando autofiltro. O comando autofiltro. menu inserir. sendo que podemos filtrar por base em um campo específico. do menu editar. Para utilizar filtragem é necessário selecionar a região da tabela que contém os dados gerais os quais se quer filtrar. e foi excluída a última coluna. utilizando o personalizar.: Eduardo d’Ávila Albuquerque 10 / 60 . Na parte direita dos títulos de colunas é inserida uma caixa para acionamento do filtro. na planilha “manipulação e proteção de dados” foi incluída uma nova coluna de dados denominada Tendência/Estilo. O título de cada coluna será referência para filtragem. submenu filtro. por colocação entre os primeiros e também personalizar a filtragem onde podemos configurá-la usando operadores lógicos. para isto foi utilizado o comando colunas.Coordenação de Pós-graduação. com o comando excluir. encontrado no menu dados. Prof. notamos a necessidade de filtrar dados. Na planilha. submenu filtro. queremos filtrar baseado na tendência/estilo. Observe a utilização do filtro. no menu ferramentas. Filtros Na seqüência do aprendizado de comandos avançados através desta planilha exemplo. Depois queremos filtrar baseado no valor de compra maior que 10. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Para explicação de novos comandos. é prático e útil. Este recurso é muito utilizado para melhor leitura da planilha.

os dados sofrem alterações contínuas enquanto as fórmulas permanecerão as mesmas. Faça isto e observe que sua planilha não será mais facilmente modificada. desative as caixas correspondentes a travada e oculta. Seleciona com o comando ir para as células constantes e no comando células.: Eduardo d’Ávila Albuquerque 11 / 60 . Protegendo arquivos O excel permite utilização de senhas para a abertura e leitura das pastas de trabalho. 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). menu editar. podemos evitar que nosso documento tenha sua forma original modificada. Isto faz com que o Excel exija a digitação da senha antes de abrir o documento. menu formatar. comando salvar como. botão ferramentas. Caso estes arquivos sejam freqüentemente acessados concomitantemente podemos usar o comando salvar área de trabalho. utilize o comando ir para. opção proteção. afinal. Salvando área de trabalho Ao trabalhar com o Excel pode ser necessário abrir várias pastas de trabalho (arquivos) ao mesmo tempo para manipulá-las. opções gerais. e cadastre suas senhas. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Protegendo Células No Excel.. no menu ferramentas. Para selecionar as células de fórmulas. permanecendo as características de arquivo independente a cada um deles.Coordenação de Pós-graduação. menu arquivo. os dados e fórmulas poderão ser impedidos de sofrer alterações através de proteção de células. A própria formatação. As células que contém fórmulas são selecionadas. Observe que na parte inferior desta tela existe uma instrução indicando a necessidade de utilizar o comando proteger planilha. Para cadastrar a senha utilize o menu arquivo. Prof. sub menu proteger. Neste exemplo queremos proteger os campos de fórmulas. em seguida clique em ok. Isto criará um arquivo que abrirá todos os outros arquivos. utilize o menu formatar. comando especial e clique em fórmulas.

obtendo o resultado. Representa qual operação o subtotal deverá realizar (subtotal.Coordenação de Pós-graduação.E4:E30) onde. em sua forma escrita. submenu auditoria. Posicione a célula móvel em K3. observe que outros números. na planilha totalizando de sua pasta de trabalho comandos avançados. Para melhor entendimento de alguma fórmula. o Excel indica todos os resultados de fórmulas que dependem diretamente deste valor. é a faixa de células que onde o subtotal deverá atuar. Prof. utilize o comando classificar. A função Subtotal. que representam outras funções. e através da auditoria. No segundo caso. No próprio submenu auditoria. Para classificar sua tabela. encontramos o comando remover todas as setas para limpeza de tela. o Excel indica todos os campos que foram necessários para a construção da fórmula. subtotal é nome da função. No primeiro caso.: Eduardo d’Ávila Albuquerque 12 / 60 . subtotais e informando o que queremos. pode-se também pressionar a tecla F2 sobre seu resultado. no menu ferramentas. não significa obrigatoriamente somatizar). é o primeiro argumento. (Para utilizar o subtotal baseado em uma coluna é necessário que a coluna seja à base da classificação de sua tabela. Esta tecla também permite correções na célula. clicando em dados. para melhor interpreta-la utilizamos o comando rastrear precedentes. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Funções – Função Subtotais Observe o uso desta função. podem ser utilizados. Foi selecionada a região que onde subtotal será aplicada. peça para rastrear os dependentes. Na tabela ao lado. menu dados). 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 comandos avançados e selecione a célula R5. E4:E30. permitindo a interpretação através de cores. 9. é semelhante a: =subtotal(9. É notória a complexidade da fórmula contida nesta célula. conseguimos obter facilmente os totais de acordo com o grupo selecionado e o total global.

posicionando o ponteiro do mouse sobre o canto vermelho o comentário será exibido. Para selecionar células adjacentes mantenha pressionada a tecla SHIFT e clique na célula final da seqüência. Precisamos primeiramente selecionar as áreas participantes do gráfico.: Eduardo d’Ávila Albuquerque 13 / 60 . Tabela dinâmica Este é um comando extenso e repleto de recursos para sua tabela. clique então em avançar.Coordenação de Pós-graduação. É interessante observar que as mudanças feitas na planilha alteram o gráfico automaticamente. Para selecionar células alternadas mantenha pressionada a tecla CTRL enquanto clique nas áreas em questão. clique em avançar após a escolha do tipo de gráfico e na seqüência de avanços. No exemplo observa-se que a filtragem dos dados resulta na clareza do gráfico. 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). Gráficos Queremos fazer um gráfico comparativo entre preço de compra e de venda dos produtos da Tendência/Estilo W. manuseie os comandos existentes de acordo com a sua necessidade e gosto. Vamos seguir na construção da tabela dinâmica baseada nos dados selecionados no Excel . Chamase Tabela Dinâmica pela praticidade que manipula dados de uma tabela extensa. basta posicionar a célula no campo e clicar no menu inserir. para isto. Observe o canto superior direito da célula C3. menu inserir. Para isto. comentário e editá-lo. podemos criar um gráfico rápido ou um gráfico avançado. Prof. relatório de tabela e gráfico dinâmicos. em seguida clique no menu dados. Acompanhe a seguir o passo-a-passo para se criação da Tabela Dinâmica. Usando o comando gráfico. 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.

na barra de ferramentas correspondente.: Eduardo d’Ávila Albuquerque 14 / 60 . em seguida em concluir. Para alterar a tabela dinâmica encontre o menu Tabela Dinâmica na Barra de ferramentas e clique em assistente. a ferramenta formatar relatório e o comando mostrar páginas. 3º passo: é a estruturação da tabela dinâmica. 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 avançar. Prof. clique em layout.Coordenação de Pós-graduação. Para melhorar a aparência de sua tabela dinâmica. em seguida em layout. Clique em suas setas “de dinamismo” para se acostumar com este novo e prático recurso. É uma tabela dinâmica. e observe que aparecerá uma tela para a informação e montagem dos dados nesta tabela. neste momento. Observe a nova tabela gerada. Construa sua tabela e clique em OK. utilize entre outros comandos de formatação.

Utilizando o botão direito do mouse sobre a área selecionada conseguimos inserir e excluir células. na maioria das vezes ao formatar nota-se a necessidade de inserção ou exclusão de campos. e desvantagem é que esta data é extraída do Sistema Operacional Windows e qualquer usuário pode modificar esta data. Vamos começar aprendendo a função hoje. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA CAPÍTULO 2 . função. muita atenção. mesmo assim. tem a missão de mostrar a data que o Windows está adotando como sendo a data atual. para confiar nesta função temos que observar constantemente a data no Windows. pois quando for amanhã esta função mostrará a data de amanhã. Procv No Excel existem várias funções. A vantagem desta função é a atualização automática.Coordenação de Pós-graduação. Para explicação do uso de datas e horas foi elaborado outro documento exemplo chamado Trabalhando com datas. Prof. você aprenderá como utilizar as funções. O Excel dispõe de recursos úteis para esta tarefa.TRABALHANDO COM DATAS E HORAS Trabalhar com datas e horas é uma necessidade cotidiana. O entendimento delas pode depender algumas vezes de um conhecimento prévio. data e hora. Dia. A inserção ou a exclusão pode ser feita através do menu editar.: Eduardo d’Ávila Albuquerque 15 / 60 . então. intuição e as explicações a seguir. Funções – Hoje. A digitação e a formatação têm que proporcionar um entendimento fácil da planilha. HOJE Esta funçãoHoje(). 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.da.Semana. encontrada no menu inserir. Com um pouco de persistência.

neste caso não precisamos informar mais nada. Isto significa que se a resposta da função foi 1.DA. DIA. função. O resultado deste cálculo é sempre um número de 1 a 7.SEMANA A função dia. 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 domingo como primeiro dia da semana e o sábado o sétimo. sendo então um campo de preenchimento opcional. Se a resposta foi 4. observe que o nome deste campo está em negrito. 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 eficaz da função. então é quarta. Nesta função tivemos que informar argumentos para ela funcionar. Se a resposta foi 7. a data corresponde ao domingo. onde colocamos a data ou um endereço de uma célula que contenha uma data. este campo não está em negrito. então sábado é o dia da semana corresponde à data. O 2º é o retornar_tipo.série.Coordenação de Pós-graduação.: Eduardo d’Ávila Albuquerque 16 / 60 . PROCV Prof.semana. Este argumento é obrigatório para realização da função. encontrada no menu inserir. O 1º é o argumento num.da. data e hora analisa uma data (ou uma referência a uma data) e calcula qual o dia da semana que esta data corresponde.

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. Entendeu?! 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 encontra 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 valor procurado você autoriza o uso da referência mais próxima a este valor preenchendo 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 escolhida 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) rá extraída da 3ª coluna. =PROCV(B12;I1:J8;2) resposta da 2ª coluna. neste caso a diferença é que a resposta seProcure por B12, na tabela I1:J8 e extraia a

=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 observaçõ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 selecione 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 precisar referenciar esta faixa de células poderá utilizar a palavra DADOS.

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

Validação Validar uma célula é avisar ao Excel que os dados que poderão ser inseridos 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 preencher 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. Clique 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.

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

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. É basicamente, uma preparação da planilha para ser impressa.

Prof.: Eduardo d’Ávila Albuquerque

19 / 60

Saída do Almoço. plan3. faz o Excel movimentar a planilha inteira e não a célula móvel.. Observações finais Cuidado: A tecla Scroll Lock. pressione a tecla F2 sobre a célula a ser corrigida. Entrada.” contidas dentro da pasta de trabalho. Aperte Enter ou F2 novamente para sair do modo correção. Observe a planilha exemplo. assim você estará usando o modo de correção e poderá movimentar com o cursor sem movimentar com a célula.. Saída. pode ser “pedra de tropeços” na edição da planilha. Para calcular horas trabalhadas é importante constar na planilha a Data. Esta tecla. Você pode formatar horas usando o comando Formatar Células Número Hora. ao ser pressionada. Somente assim o cálculo de horas trabalhadas neste dia será corretamente calculado. Prof. 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. observe a planilha controle de horas. Entrada Almoço. Modo de Correção: Ao tentar corrigir erro dentro de uma célula.: Eduardo d’Ávila Albuquerque 20 / 60 .Coordenação de Pós-graduação. 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. A manipulação de horas no excel requer atenção. Pasta de trabalho e Planilha: Pasta de trabalho é o arquivo enquanto as planilhas são as “plan1.. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Trabalhando com horas Na pasta de trabalho trabalhando com datas. plan2. para quem não está acostumado.

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 . NO WORD Negrito. então. 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 . Sublinhado CTRL + N. Uma tecla de atalho no Word pode ter uma função e no Excel outra função.: Eduardo d’Ávila Albuquerque CTRL +TAB SCROLL LOCK SHIFT + F11 ALT + F8 ALT + ENTER F4 CTRL + F3 21 / 60 . ALT + PAGE UP Ativar a planilha da esquerda ou da direita CTRL + PAGE DOWN. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA CAPÍTULO 3 . em outros softwares. I. como também. Porém é corriqueiro ocorrer das funções serem as mesmas. CTRL + PAGE UP Mover entre pastas de trabalho Travar o movimento da célula Inserir planilha Exibir caixa de diálogo Macro Iniciar uma nova linha na mesma célula Repetir última ação Definir nomes Prof. é importante testar as teclas não somente no programa especificado abaixo.TECLAS DE ATALHO As teclas de atalho são comandos executados via teclado que realizam funções supostamente inerente unicamente ao mouse.Coordenação de Pós-graduação. Itálico.

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 + .Coordenação de Pós-graduação. Preencher a seleção os dados atuais CTRL + ENTER A tecla ALT seguida da letra que estive sublinhada nos menus ou comando . consultando por TECLAS DE ATALHO. aciona o respectivo Menu ou Comando OBSERVAÇÃO: No Microsoft Excel. Prof. 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 + . você encontra uma lista de teclas de atalho utilizando a ajuda (F1).: Eduardo d’Ávila Albuquerque 22 / 60 .

Pelo Item: “Das escolas particulares. uma escola a classe de objetos escolas. a escolas. Cada objeto pertence a uma coleção de objetos similares e cada coleção de objetos é um item individual dentro de uma coleção maior. exemplo: um aluno pertence à classe de objeto alunos. o objeto sheet (planilha) a coleção sheets. No excel. o objeto row (linha) à coleção rows (linhas). Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Segunda Parte CAPÍTULO 4 .. exemplo: a escola Granbery é um item da coleção Escolas. Prof. uma escola é cheia de salas de aula.. Diretamente: qualidade. o objeto column (coluna) a uma coleção columns (colunas). Pelo Nome: Worksheets(“Granbery”) Pelo Item: Worksheets. Uma cidade é salpicada de escolas. de outra classe...Coordenação de Pós-graduação. Conceitos Iniciais Objeto: A maneira mais fácil de entender o que são objetos no Excel é compará-los a objetos do mundo real.INTRODUÇÃO AO VBA Introdução Seja bem vindo à segunda parte deste curso: a programação em VBA (Visual Basic for Application).. um pouco do universo da programação (orientada a objetos) de computadores. individual. Coleção de Objetos: No mundo real o objeto pertence a uma classe de objetos. a planilha (sheet). a cidade. o objeto workbook (pasta de trabalho) pertence à coleção workbooks (pastas de trabalhos). Assim também no Excel. a coluna (column) e a cada célula (cell) são objetos do Excel. Pode referenciar-se ao Granbery assim: Pelo nome: “Escola Granbery” possui um ensino de qualidade.. e ao mesmo tempo Granbery é uma coleção de objetos.item(2) Diretamente: Activesheet. No mundo real. Nesta parte aprenderemos a criar comandos novos para o Excel otimizando suas tarefas e conhecendo assim.. a linha (row).: Eduardo d’Ávila Albuquerque 23 / 60 “esta escolha aqui” possui um ensino de . Observe que uma coleção de objetos é um objeto. a segunda na ordem alfabética” possui um ensino de qualidade. a sala de aula e o aluno são objetos.. No Excel podemos dizer que a pasta de trabalho (workbook).. uma sala de aula é lotada de estudantes e todos os estudantes são “arrumados” em filas organizadas.

Objetos de mesma classe possuem os mesmos métodos. afinal olhos fechados é uma propriedade do estado dos olhos ou uma ação de fechar Prof. sua altura é 1. Não esqueça. Da mesma maneira que classes de objetos diferentes possuem propriedades diferentes. A distinção entre método e propriedade é difícil devido à notória semelhança. sentado à frente dele também possui as propriedades cabelo. existiria para quê?. mas não possui a propriedade cabelo. dizemos que estas planilhas são objetos individuais da classe Pasta de Trabalho – Workbooks(“Educação”). Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Objetos têm Propriedades: Propriedades são características. Objetos têm Métodos: Métodos são ações. Esta classe também é um objeto. O objeto estudantes da sala 1 e o objeto estudantes da sala 2 possuem as mesmas propriedades e ambas pertencem à classe de objetos estudantes. O método mais comum é o adicionar (add). Tudo isso são as propriedades do objeto Aluno. nome. Enquanto a propriedade quantidade (count) é de grande importância para o objeto Estudantes. A propriedade cabelo não existe no objeto Estudantes. de outra sala. A coleção de estudantes tem suas próprias propriedades. assim também. mas cada um é um objeto estudante. O Rodrigo. Exemplo: O aluno da sala 304. O Douglas. Podemos adicionar um estudante novo à classe estudantes. A propriedades da coleção não são as mesmas propriedades dos objetos individuais contidos nela. estas classes diferentes possuem métodos diferentes.75m e seu nome é Rafael e o estado dos olhos é fechado. altura e o estado dos olhos. objeto carteira possui a propriedade fabricante é objeto aluno não. Considerando que as planilhas Escola e Cursos estejam no mesmo arquivo chamado Educação. camisa.: Eduardo d’Ávila Albuquerque 24 / 60 . camisa azul. objetos que possuem lista de propriedades iguais pertencem à mesma classe de objeto (mesmo que os valores das propriedades sejam diferentes). pois possui as mesmas propriedades.Coordenação de Pós-graduação. assim como Rafael.Sheets(“Escola”) – e também contém a planilha Cursos – Sheets(“Cursos”). O Rafael é um objeto da classe estudante. sentado na quarta carteira da segunda fila tem cabelo curto. Objeto carteira também possui a propriedade altura. Todos os alunos formam a classe Estudantes. porém os valores de suas propriedades são diferentes. O aluno de nome Rafael é um objeto diferente do aluno de nome Douglas. Objeto tem métodos. Assim dizemos que no excel a classe planilhas(sheets) contém a planilha Escola . Os objetos que possuem as mesmas propriedades (mesmo que estas propriedades possuam valores diferentes) pertencem à mesma classe. A Carteira também é um objeto. assim como as propriedades. é um objeto e pertence à mesma classe de objetos estudante.

: Eduardo d’Ávila Albuquerque 25 / 60 . método) um estudante. arquivo(s). enquanto outros significados sofreram adaptações para expressarem a sua verdadeira função no Excel. Propriedades podem envolver ações: Visível ou não? Visibilidade de uma planilha é uma propriedade da planilha. Cadeia de Células Região Prof. possui termos utilizados freqüentemente nesta parte da curso. Tabela de significados Observe a tabela abaixo. parecendo uma ação. Excel) Pasta de trabalho(s). documento(s) Célula(s) Coluna(s) Copiar Quantidade. automaticamente modifica a quantidade (count.Coordenação de Pós-graduação. propriedade) de estudantes. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA os olhos? Todavia. TERMO Active Add Application Book(s) Cell(s) Column(s) Copy Count Current Entire Integer Paste Range Region SIGNIFICADO Ativo Adicionar Aplicativo (no caso. porém ao fazer isto notamos que a planilha sumiu. o cotidiano se encarrega de realçar as diferenças entre método e propriedade. Alguns significados são simplesmente traduções do inglês para o português. Observe os conceitos seguintes. Métodos podem mudar propriedade: Ao adicionar (add. Atual Tudo Nº Inteiro Colar Célula.

Para trabalhar com a macro pode-se utilizar o submenu macro. Clique em Ok. escolher Seleção. Gravando uma macro Abra o arquivo exemplo Planilha do Geral . Passo Dois) Clique na ferramenta gravar macro da barra de ferramentas do Visual Basic. marcado. Verdadeiro A macro é um “mini programa” que realiza as tarefas contidas nela. menu ferramentas. Prof. Passo Um) Selecione a faixa C4:F5. submenu barra de ferramentas. Visual Basic. utilizar Falso. Pode-se definir uma tecla de atalho para sua macro e também descrever algo sobre ela. tecla CTRL+SHIFT+M.Coordenação de Pós-graduação.: Eduardo d’Ávila Albuquerque 26 / 60 . moeda. casa decimais zero. Este nome não pode conter espaços ou símbolos especiais. marcar. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Row(s) Select Selection Sheet(s) Sub Work False. Coloque o nome de FormatarMoeda. OK. True Macro Linha(s) Selecionar. e descreva falando que é sua primeira macro. Siga o passo-a-passo abaixo para criar uma macro para formatação de moeda chamada de FormatarMoeda. Passo Três) Clique em formatar. células. Pode-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. escolhido Planilha(s) Início de uma sub. No campo nome da macro escreva o nome da sua macro. ou ativar a barra de ferramentas no menu exibir.rotina Trabalhar.

a janela do Editor do Visual Basic é exibida. Passo Dois) Clique na ferramenta executar macro. Sub seguido do nome da macro. A única “real instrução” desta macro. End Sub. Passo Três) Selecione a macro FormatarMoeda e clique em executar.##0" End Sub As linhas que começam com apóstrofo são linhas de comentários. No nosso caso Sub indica o início da macro. Neste momento. Passo Dois) Selecione a macro FormatarMoeda e clique em Editar.Coordenação de Pós-graduação.: Eduardo d’Ávila Albuquerque 27 / 60 . 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. contendo nela a macro criada. Vem da palavra sub-rotina de um programa.##0". Prof. 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. Todas as instruções entre Sub e End Sub formam o corpo da macro. diz ao Visual Basic para encerrar a macro. Os comentários são importantes para o “programador”. Examinado uma macro Passo Um) Clique na ferramenta executar macro. Selection.NumberFormat = "$#. Tudo que não for comentário é uma linha de instrução que deverá ser lida pelo Excel quando a macro for executada. porém são linhas ignoradas pelo Visual Basic.NumberFormat = "$#.

Selection é o objeto. a informação que está à direita do sinal de igualdade é a que fica designado para a propriedade. mude a orientação para 90º. Passo Dois) Na caixa de diálogo Gravar macro. coloque o nome MesclarVertical e clique em OK. na guia alinhamento ative a caixa de seleção mesclar células.##0”. Passo Três) Clique no menu formatar. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA • • Selection é parte selecionada da planilha. Passo Um) Selecione a faixa A3:A8 e dê um clique em Gravar macro. e a expressão sua propriedade antes da leitura da propriedade.). terá sua propriedade NumberFormat igualada a Gravando outra macro – Mudando várias propriedades de uma só vez Siga o passo-a-passo para criar uma macro que mescle o texto verticalmente chamada de MesclarVertical.##0”. Prof. Observe o restante da tela que você não modificou e em seguida clique em OK.Coordenação de Pós-graduação.: Eduardo d’Ávila Albuquerque 28 / 60 . centralize o alinhamento horizontal e vertical.##0". Leia-se então: O objeto Selection “$#. NumberFormat = . "$#. Dica para facilitar: • Para melhor interpretação das instruções inclua sempre a palavra objeto antes da leitura do nome do objeto. células. é 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. O objeto e propriedade são separados por um ponto (. Traduzindo melhor: O objeto selecionado terá sua propriedade formato do número igualada a “$#. Propriedade é precedida por um objeto.

= centro ‘Propriedade Alinhamento Vert. Sub MesclarVertical() With Selection ‘Início da macro ‘Início da Estrutura With (detalhes abaixo. ‘ Final da Estrutura With ‘ Final da macro • Estrutura With é usada quando precisamos modificar várias propriedades de um objeto facilitando a leitura da macro pelo usuário.Orientation = 90 . Passo Três) Edite esta macro e interprete a linha de instrução.HorizontalAlignment = xlCenter .VerticalAlignment = xlCenter . Eliminando as linhas desnecessárias. marcada. Sub TrocarGrade() ActiveWindow. = centro ‘Propriedade Orientation = 90 graus ‘Propriedade Mesclar Células.) Objeto Selection (o que está Selecionado) . No caso. observe o formato de sua macro. significando que todas as propriedades descritas até a instrução End With pertence a este objeto. Clique em Executar macro. em seguida clique em ferramentas.DisplayGridlines = False End Sub Esta linha.: Eduardo d’Ávila Albuquerque 29 / 60 . Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Passo Quatro) Clique em Parar Gravação. Esta macro chamará TrocarGrade.Coordenação de Pós-graduação. selecione a macro MesclarVertical e clique em Editar. O objetivo é fazer uma macro que ative e também desative as linhas de grade. Passo Um) Clique em Gravar Macro. a estrutura With está relacionada com o objeto Selection. leia-se: Prof. Modificando uma Macro – Alternação Siga o passo-a-passo para conseguir criar uma macro que realizará a tarefa de exibir/ocultar as linhas de grade de uma planilha.MergeCells = True End With End Sub ‘Propriedade Alinhamento horiz. opções e desmarque a caixa Linha de grade. Passo Dois) Clique em Parar Gravação.

Pode-se criar uma macro para colocar as linhas e outra para retirar. ou seja reserva uma espaço na memória para informações True (verdadeira) ou False (falso).: Eduardo d’Ávila Albuquerque 30 / 60 . como também pode-se modificar esta macro para que ela mesma coloque e retire as linhas. que inverte o valor de GradeAtual. Passo Quatro) Modifique sua macro para que esta fique assim Sub TrocarGrade() Dim GradeAtual as boolean GradeAtual = ActiveWindow.DisplayGridlines pertencente ao objeto ActiveWindow. explicando melhor: Ao iniciar a macro. pressione a tecla F5 para executar a macro automaticamente ou a tecla F8 para executar a macro instrução por instrução. A quarta instrução tem a novidade do NOT (não). Quando uma propriedade é definida como false. A este espaço foi dado o nome de GradeAtual. A terceira instrução guarda na Variável GradeAtual o estado da propriedade . significa que o outro valor existente para ela é true. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA objeto ActiveWindow na sua propriedade DisplayGridLines será false.Coordenação de Pós-graduação.DisplayGridlines = Not GradeAtual End Sub • A Segunda instrução reserva um espaço na memória do computador para informações booleanas. Prof.DisplayGridlines ActiveWindow. GradeAtual é uma variável do tipo booleana. E se ela for definida como true obviamente as linhas de grades aparecerão. • • Acompanhando o funcionamento da Macro Estando o curso posicionado entre Sub e End Sub. GradeAtual guarda o valor atual da grade (True/False) e em seguida muda a propriedade grade para o oposto (not) ao que estava guardado (False/True).

Faça sua macro ficar com esta aparência. Passo Cinco) Clique em Parar Gravação. Poder ser copiada. _ SkipBlanks:=False.Copy Selection. clique em executar macro. chamada de ConverterParaValores. subtraço) para informar que a linha de instrução continua na linha abaixo. Trabalhando com métodos Mudar a aparência das células é uma propriedade das células. Siga os passos: Passo Um) Selecione a Célula C4 e observe a fórmula. Sub ConverterParaValores() Selection.Coordenação de Pós-graduação. em seguida no comando Copiar Passo Três) Clique em menu Editar. Clique em Gravar Macro. selecione a opção Valores e clique em OK. Para facilitar a utilização desta macro. selecione a macro TrocarGrade. _ Transpose:=False Application. utilize sempre o Shift para diminuir as possibilidades disto acontecer).: Eduardo d’Ávila Albuquerque 31 / 60 . depois colada já é um método (uma ação) que está sendo feita com aquela célula. _ Operation:=xlNone. Colar Especial. nomeie para ConverterParaValores. (Cuidado. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Atalho para a Macro Teste esta macro estando na planilha. A macro a seguir. Observe sua macro. o atalho para a macro. vai converter as fórmulas de nossa tabela em valores numéricos.PasteSpecial Paste:=xlValues. Passo Seis) Mude para o Editor do Visual Basic (VBA). clique em opções e inclua o atalho CTRL+SHIT+T. clique em Ok. Observe que a fórmula deixou de existir mostrando somente o resultado. Passo Quatro) Pressione a tecla ESC para desaparecer a linha pontilhada desativando assim o modo Copiar. Passo Dois) Clique no menu Editar. e coloque um espaço seguido do sinal _ (underline. Teste a macro usando a tecla de atalho CTRL+SHIT+T.CutCopyMode = False End Sub Prof. pode desativar um atalho para algum comando no Excel.

: Eduardo d’Ávila Albuquerque 32 / 60 . este método precisa de argumentos. observe como sua macro ficou: Sub ConverterParaValores() Selection.. por isso. porém. Quando não possuem argumentos este métodos são simplesmente escritos após o objeto.). apenas avisam ao método como deve fazer a ação. Como não tem nenhum sinal de igualdade a expressão à direita do ponto representa um método.PasteSpecial Paste:=xlValues Application. Quando o método possui argumentos estes devem ser colocados após o método separados apenas com espaço. Depois disto. A terceira instrução.Copy Selection.Coordenação de Pós-graduação. Os argumentos não fazem nenhum ação específica. então para fazer este método foi respondido ao argumento paste (colar) a informação xlvalue (valores). serão excluídas da macro juntamente com o segundo argumento que é padrão. no caso desnecessárias. Os outros dois argumentos são relativos a transpor e ignorar em branco. Este método (ou esta ação) não precisa de argumentos (especificar como fazer).. ao operate (operação) a informação Xlnome (nenhuma). estruturada agora em 5 linhas. Prof. Os métodos poderão ter vários argumentos que deverão ser separados por uma vírgula (. significa: O objeto Selection fará o método PasteSpecial (Colar Especial).CutCopyMode = False End Sub • • Um Objeto tem métodos e este métodos podem ter argumentos ou nã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. Os valores para os argumentos deverão ser atribuídos a este com o símbolo de := (chamado de “recebe”).

. Para facilitar a criação da macro abaixo deixe esta pasta restaurada. a etapa 1 do Assistente de Importação de texto aparece. Como este arquivo não pertence ao Excel. Clique em Passo Quatro) abrir. Fazer isto uma única vez não é tão trabalhoso. Esta modificação inclui em vários passos. Neste caso vamos dividir o serviço em 5 partes. Verifique se a origem do arquivo está com Windows (ANSI).dbf e o RelMês.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. O Excel será usado apenas para manipulá-los. fazer isto várias vezes.txt desaparece. Preenchendo os rótulos vazios. Incluindo o antigo-relatório no arquivo de pedidos.txt.txt (chamada de RelMês) para a direita da planilha Plan1 do seu arquivo Adaptar. 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 Adaptar..: Eduardo d’Ávila Albuquerque 33 / 60 .xls. (É importante que o local da gravação seja o mesmo dos arquivos anteriores). e coloque o início da importação de linhas igual a 4. Considere as demais etapas do assistente com opção padrão clicando em concluir.MACRO . Os arquivos modelos deste capítulo serão o PedGeral. e não maximizada. é necessário uma macro para facilitar o serviço. Arraste a única planilha do arquivo RelMês. Selecione a célula A2 e no menu Editar dê um clique no comando Excluir. Passo Três) Clique em Abrir. Selecione a opção linha inteira e clique em OK. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA CAPÍTULO 5 . mas. Prof. Observe que nenhum destes pertencem ao Excel. excluindo o antigo-relatório. Passo Dois) Clique em gravar macro. Adicionando a data. Abrindo um Arquivo de Relatório Passo Um) Comece uma nova pasta de trabalho no Excel e salve-a como Adaptar.txt. Clique em Largura fixa. pois não se pode mostrar uma pasta de trabalho no Excel sem planilhas. Abrindo o arquivo. Logo após observe que o documento RelMês. Este relatório terá que ser modificado para se enquadrar no seu arquivo de pedidos geral da firma.Coordenação de Pós-graduação. então o Excel fecha esta arquivo automaticamente. nomeie como ImportarArquivo e clique em OK. Macros que realizam tarefas extensas devem ser divididas em várias partes. Digite em nome do arquivo: RelMês. Passo Seis) A linha 2 contém sinais de igualdade desnecessários.

Lembrese que para futuras interpretações da sua macro você pode adicionar comentários. _ DataType:=xlFixedWidth. e observe a sua macro. _ Array(25. Você pode transformar linhas de instrução temporariamente em linhas de comentário para avaliar se esta linha é de importância na macro. _ Array(39.Move Before:=Workbooks("adaptar. _ Array(50. _ StartRow:=4.xls"). Passo Oito)Salve a pasta de trabalho Adaptar. Exclua estas linhas e também as linhas de comentário.EntireRow. _ Array(8.txt").: Eduardo d’Ávila Albuquerque 34 / 60 .txt.Delete Range("A1"). Para interpretá-la utilize a tecla F8.OpenText Filename:= _ "C:\Meus documentos\Excel VBA 2002\RelMes.txt".Select Selection. É o caso das linhas de instrução sobre arrastar da janela.Select End Sub Prof.Select Sheets("RelMes.txt"). Passo Nove) Observe que algumas instruções desnecessárias para um programa foram também gravadas. Observe sua macro. ela deve estar semelhante a macro abaixo: Sub ImportarArquivo() 'este mes vou abrir este arquivo e o mes que vem? Workbooks. 1)) Sheets("RelMes. 1). _ Array(20. _ Origin:=xlWindows.Sheets(1) Range("A2"). Estruture melhor sua sub-rotina para melhor interpretação dos comandos. 1). 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.Coordenação de Pós-graduação. 1). 1). _ FieldInfo:=Array(Array(0. 1).

1)) ActiveSheet. 1).: Eduardo d’Ávila Albuquerque 35 / 60 . copie a instrução a seguir logo acima da instrução que inicia com Workbooks Dim MeuArquivo as string MeuArquivo = Application. _ FieldInfo:=Array(Array(0. Sub ImportarArquivo() MeuArquivo = Application.txt”).txt") Workbooks.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. 1).GetOpenFilename("text files. No próximo mês você poderá ter que abrir um arquivo com o conteúdo semelhante e o nome totalmente diferente. _ Origin:=xlWindows. 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 escolhido em uma variável Para isto. _ Array(39. _ Array(50.txt”). 1).*.Coordenação de Pós-graduação.Sheets(1) Prof. _ Array(8. 1). _ DataType:=xlFixedWidth.Move e exclua a linha Sheets(“RelMês.Move Before:=Workbooks("adaptar.*. 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. Passo Três) Troque a expressão Sheets(“RelMes.Move para ActiveSheet. 1).OpenText Filename:=MeuArquivo. _ Array(25.select. _ StartRow:=4. Use o F8 várias vezes para acompanhar a execução da macro. _ Array(20.txt.GetOpenFilename("text files.xls"). Observe então a aparência de sua macro.

Dê um clique na opção Valores. Passo Um) Selecione uma cópia da planilha RelMês. Pressione CTRL+ * (ou CTRL + SHIFT + * caso utilize o teclado principal em vez do numérico) para selecionar a região. comando Ir para.EntireRow. (mesmo que já esteja selecionada). Clique em especial e em seguida clique na opção Em branco. digite PreencherRótulos. Observe que ao clicar em OK. deixe-as.Delete Range("A1"). Clique em OK. Você acaba de concluir esta primeira etapa.: Eduardo d’Ávila Albuquerque 36 / 60 . Passo Sete) Pressione a tecla ESC para sair do modo copiar e selecione A1. Clique em Editar. Para o Excel isto é um problema que será resolvido através da macro a seguir. existe em sua pasta de trabalho Adaptar várias cópias da RelMês. Passo Cinco) Digite =. Passo Dois) Clique em gravar macro. somente as células vazias desta região estão selecionadas. • Como a macro foi executada muitas vezes. representam os mesmos valores da parte superior. Passo Três) Selecione a célula A1. ou cadeia de células. selecione o menu Editar e dê um clique em Colar especial.Coordenação de Pós-graduação.Select Selection. pressione a seta para cima e em seguida Pressione CTRL+* Passo Seis) Selecione o menu Editar e dê um clique em Copiar. Em seguida. e em OK. dedutivamente. Preenchendo valores ausentes Observe o seu relatório. Prof.Select End Sub • O gravador de Macro utilizou o objeto Range que significa célula. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Range("A2"). Este possui alguns espaços vazios que. Passo Quatro) CTRL+ Enter. Por enquanto.

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. então. podemos dizer que a fórmula representa D que é a mesma coluna e 2 que é a linha atual –1.Select Selection.FormulaR1C1 = "=R[-1]C" Selection.CutCopyMode = False Range("A1").Select End Sub • Das instruções acima. Passo Dois) Selecione a célula A1. O objeto selection na sua propriedade formulaR1C1 (R de Row=linha.Copy Selection. Indicamos.PasteSpecial Paste:=xlValues Application.Select Selection.: Eduardo d’Ávila Albuquerque 37 / 60 .Select Selection. se a fórmula na macro indica R-1 ( linha – 1) e C (coluna). observe a Selection. escolha o comando coluna no menu inserir. Prof. Adicionando uma Coluna de Data Para saber de que período são estes pedidos se faz necessário uma coluna de data. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Passo Oito)Dê um clique no botão Parar gravação.FormulaR1C1 = "=R[-1]C".Select Selection. e salve a pasta de trabalho.Coordenação de Pós-graduação. adicione o nome AdicionarColunasDatas.SpecialCells(xlCellTypeBlanks). 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.CurrentRegion. Sua macro tem a seguinte aparência: Sub PrencherVazios() Range("A1"). Entenda isto: D3 é a referência que representa Coluna D e linha 3. clique em OK.CurrentRegion. Esta fórmula foi criada assim porque ao digitá-la apertamos CTRL + Enter. C de Column=Coluna) vai ser igual ao próprio R subtraído de -1 e C. Passo Três) Digite Data na célula A1 e pressione Enter.

38 / 60 Prof. Esta instrução deverá ser inserida no início da macro logo abaixo do comando Sub( ). Esta instrução é uma função9 do Visual Basic chamada de InputBox ().Coordenação de Pós-graduação. Sub AdicionarColunasDatas() Dim MinhaData as date MinhaData = InputBox("Entre com a data do relatório no formato Mmm-yyyy") Range("A1"). A instrução abaixo diz ao Excel: Reserve um espaço da memória. Dim MinhaData as date Existe uma instrução que faz uma pergunta ao usuário e aguarda a resposta para continuar a execução da tarefa.Select Selection. Passo Sete) Selecione a célula A1. Passo Seis) Digite Nov-2002 e pressione CTRL + Enter para preencher as outras células com esta data. Prepare-se para guardar neste espaço uma “data”. o que for escrito ao se perguntar a data será guardado na variável MinhaData.”) Neste caso. Especial. Finalmente compare sua macro com o modelo abaixo. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Passo Quatro) Passo Cinco) Ir para. Seguindo as explicações abaixo.: Eduardo d’Ávila Albuquerque . Edite a sua macro fazendo as alterações propostas. Selecione as células Em Branco. Basta colocar conforme abaixo: MinhaData = InputBox (“Qual a data deste relatório? Formato Mmmyyyy. Percorra a macro pressionando F8 ou F5 e observe que neste caso sempre será colocada a data de nov-2002. A tecla cancelar também não está programada no momento. Perguntar algo para o usuário é comum para programadores por isso o VBA incorporou esta função da linguagem VB.Insert 9 Função: As linguagens de programação possuem “mini-programas” já prontos que realizam tarefas corriqueiras. Selecione a região pressionando CTRL + *. A conferência do que foi digitado com o que se esperava que fosse digitado não foi programada. modifique a macro para que venha solicitar a data. e clique em Parar Gravação.EntireColumn. clicando em Editar. Chame este espaço de MinhaData.

selecionei a região e copiei.Select Selection. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA ActiveCell.AutoFit Prof.: Eduardo d’Ávila Albuquerque 39 / 60 . Observe as duas macros abaixo.Open Filename:= _ "C:\Meus documentos\Excel VBA 2002\Pedidos.Select Selection.Copy 'abrindo o arquivo de banco de dados Workbooks.Select Selection.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.Select Selection. deletei a linha inteira.EntireRow.EntireColumn. Range("A1").Delete Selection. Para forçar a interpretação.SpecialCells(xlCellTypeBlanks). Sub IncluirAoBancoDeDados() ''selecionei A1. Os nomes dos arquivos poderão ser diferentes.SmallScroll Down:=64 ActiveWindow.dbf" 'mexendo com a barra de rolagem ActiveWindow. Columns("A:A").CurrentRegion.Coordenação de Pós-graduação.Select Selection.FormulaR1C1 = MinhaData Range("A1"). realizadas para esta mesma planilha. Vamos interpretálas? Observe os comentários. criação e leitura das macros estaremos doravante escrevendo as macros apenas com linhas de comentários.CurrentRegion.FormulaR1C1 = "Data " Range("A2").ScrollRow = 1 'Para auto-ajuste da largura da coluna A foi usado os 2 clique no rótulo da coluna.

Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA 'fui para a última linha escrita desta coluna Selection. que é um banco de dados foi atribuido 'os novos dados selecionados Selection.Select End Sub -------------------------------------------------------------------------------------------------- Prof.Name = "Database" 'fechei o arquivo ativo optando por gravar as alterações ActiveWorkbook. Range("A1").CutCopyMode = False 'selecionei a região Selection.Select 'Cole na planilha ativa ActiveSheet.CurrentRegion.Paste 'desativei o copiar Application.: Eduardo d’Ávila Albuquerque 40 / 60 .Select 'ao arquivo ativo.Offset(1.Range("A1"). A célula atual é considerada a primeira célula (“A1”) desta área atual. ActiveCell.Close savechanges:=True 'selecionei coluna a1. 0).End(xlDown).Coordenação de Pós-graduação.Select 'A instrução abaixo significa: ' Selecione a célula que está uma linha abaixo da atual.

Coordenação de Pós-graduação.Delete End Sub Criando sozinho uma macro Já esta na hora de você criar uma macro sozinho. Confio em você. Crie uma para executar as outras macros desta planilha.: Eduardo d’Ávila Albuquerque 41 / 60 .DisplayAlerts = False ‘deletei as planilhas selecionadas da janela ativa ActiveWindow. terminamos mais um capítulo. Bom. 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.SelectedSheets. Prof.

Início Workbooks.value = "S." Rows(2).name = "Atrasados" Workbooks(5). Digite os comando abaixo na Verificação Imediata e observe o que acontece com seu Excel.Close Workbooks.Delete RAnge("A50"). Dica: Caso deseja repetir a execução do comando digitado basta posicionar o cursor novamente sobre a linha do comando e apertar a tecla Enter novamente.Coordenação de Pós-graduação.name Pasta7 Fim Prof. Para iniciar um comando pressione CTRL + ESPAÇO para que o VBA Basic exiba uma lista de comandos para facilitar seu trabalho.Activate Worksheets(2).add Range("A1:b50").O.Add WorkBooks(7).APRENDENDO A APRENDER Verificação Imediata Neste capítulo estaremos aprendendo a trabalhar com a janela de verificação imediata do VBA.Select selection.Select ?ActiveWorkbook.Close ?Workbooks.name = "Cobrança" Worksheets(3). O Visual Basic abre uma tela de Edição de comandos.Count 1 Workbooks.select activesheet. Tudo o que for digitado dentro desta tela será automaticamente executado ao se apertar a tecla Enter. Caso queira incluir uma linha vazia entre linhas já escritas utilize o comando CTRL + ENTER.: Eduardo d’Ávila Albuquerque 42 / 60 . 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. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA CAPÍTULO 6 .select Selection.Activate ActiveWorkbook.S.

Uma lista de propriedades e métodos inerentes ao objeto. Observe a instrução abaixo. Você pode também manipular várias planilhas ao mesmo tempo. Pesquisador de Objetos Este comando ajuda você encontrar objetos que podem ser trabalhados na sua planilha. mudando o nome da planilha. Prof.. entre alguns outros fatores.count 5 1 Worksheets. Para determinar isto ao Excel se faz necessário o uso de variável. Para que a lista de ajuda apareça é necessário avisar ao Excel a classe deste objeto. Observando esta lista com atenção você descobrirá métodos e propriedades úteis para casos particulares.3. Observe o caso do comando ActiveSheet.Add ?Workbooks. o Excel automaticamente exibi a AutoList. Usa-se declaração de variável .Name = "Teste" End Sub A primeira linha esta instruindo ao Excel que a variável MinhaPlanilha só representará uma planilha. É importante relacionar os símbolos que antecedem aos itens da lista com propriedades ou métodos. para forçar a exibição da Auto List que muito nos ajuda.5)).select A lista de ajuda (Auto List) pode não está aparecendo automaticamente para alguns comandos. 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.Coordenação de Pós-graduação. Lista automática de propriedades de métodos Ao digitar o nome de um objeto e em seguida o ponto. pois assim. Isto acontece quando o excel não consegue definir exatamente a classe que o objeto pertence. 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. é possível ao Excel exibir a Auto List com os métodos e propriedades inerente aos objetos desta classe. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA As propriedades de somente leitura dos objetos. deverão ser antecedidas por ? para serem exibidas na linha inferior ao comando. automaticamente. Imagine uma situação onde se faz necessário o controle das linhas escritas no Excel.Add Worksheets(array(1. Workbooks. Clique em Inserir Módulo e escreva o seguinte: Sub Teste() Dim MinhaPlanilha As Worksheet Set MinhaPlanilha = ActiveSheet MinhaPlanilha.: Eduardo d’Ávila Albuquerque 43 / 60 .

Aconselha-se que as macros sejam editadas.FormaDaArea. 12#.AdicionarForma(Retângulo. Nestas alterações podemos usar o Recurso de Variável que nos permite a utilizarmos termos em português e ainda faz com que o VBA exiba a AutoList.Select Selection. sofrendo acréscimos de linhas de instruções . Posicione o cursor abaixo do End Sub e crie uma macro escrevendo as instruções abaixo: Sub CriarRetanguloEuMesmo() Prof. Essas características se transformam em propriedades do objeto quando estamos em programação. 27#). MedidaDaLargura. 48.Solid End Sub Em português podemos traduzir nossa macro assim: Sub-rotina CriarRetangulo() PlanilhaAtiva.ShapeRange.Fill.Fill.ForeColor. Vá para o Editor do Visual Basic.ShapeRange. Compare com a escrita abaixo.Shapes. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA CAPÍTULO 7 .Visible = msoTrue Selection. DoTopo.TabelaDeCores = 10 (0 à 56) Selecionado.Fomatação.Formatação.Visibilidade = verdadeira Selecionado. crie um retângulo cobrindo a área B2:B3 na cor de preenchimento vermelha. _ DistânciaDaEsquerda.Selecionar Selecionado.75. DaAltura).RealcedeCores. Utilizando o gravador de macro. inclusão de comentários e/ou exclusão de linhas.Formatação.Sólido Final da sub-rotina Utilizar o gravador de macro é um método prático de se descobrir um comando.AddShape(msoShapeRectangle.FormaDaArea. Edit sua macro CriarRetangulo. Alguns valores podem alterar.FormaDaArea.ShapeRange.: Eduardo d’Ávila Albuquerque 44 / 60 .Formas.SchemeColor = 10 Selection. Sub CriarRetangulo() ActiveSheet. _ 48.TRABALHANDO COM DESENHOS Quando se trabalha com objetos de desenho no Excel podemos notar que estes objetos são móveis e dimensionáveis.Fill.Coordenação de Pós-graduação.75.

TabeladeCores = 10 Forma.Shapes.Formatação.AddShape(msoShapeRectangle.SchemeColor = 10 End Sub Traduzindo.RealceCores. Prof. 72.Delete.Fill. Estes nomes podem ser utilizados na macro.IncluaNovaForma(FormadeRetângulo.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. ficou assim: Sub-rotina CriarRetanguloEuMesmo() DimensioneEspaço raUmaPlanilha DimensioneEspaço maForma ParaVariavelChamadaPlanilha QueSeráSempreUsado Pa- ParaVariavelChamadaForma QueSeráSempreUsado ParaU- FaçaQueA VariavelPlanilha Receba(ou SejaIgualA) PlanilhaAtiva FaçaQueO ObjetoPlanilha.Coordenação de Pós-graduação.: Eduardo d’Ávila Albuquerque 45 / 60 . 36) Forma.ForeColor. Usando 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. 36. 72. com as medidas) Variavel(AgoraObjeto)Forma. É importante lembrar que as imagens podem ser nomeadas da mesma forma que nomeamos as áreas da planilha. usando o comando Forma. 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. Você também excluiu o retângulo sem selecioná-lo.

pois este possui a propriedade Gráfico (Chart) que no exemplo foi atribuída a variável Gráfico. Prof. Macro SelecionarGrafico: Esta foi criada sem o gravador. Name:="Criando Gráfico" End Sub Clique no valor correspondente a propriedade tipo de gráfico (xlColumnClustered) e em seguida clique em Editar Listar Constante. SelecionarGrafico.Add ActiveChart. Observe que um gráfico possui dois elementos distintos.: Eduardo d’Ávila Albuquerque 46 / 60 .Location Where:=xlLocationAsObject.SetSourceData Source:=Sheets("Criando Gráfico"). Edite estas macro para entendelas melhor. Referindo ao gráfico Edite a macro SelecionarGrafico e execute-a linha a linha com o F8. Para “entrar” dentro do gráfico temos que aceitá-lo como um ChartObject. para referenciar ao gráfico podemos considerá-lo um shape ou um ChartObject. Observe abaixo a macro gerada. Tente fazê-las usando os mesmos nomes seguidos do numeral 2. pois a intenção era testar qual a maneira de referenciar ao gráfico. O segundo é a parte interna do gráfico que só pode ser referenciada através de um Objeto Gráfico. 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). escolha o xlConeBarStacked e execute a macro novamente. 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 A1. foram criadas as macros GerarGrafico. o Visual Basic exibe a lista de nomes dos tipos de gráficos possíveis. Ative o gravador de macro e clique em assistente de gráfico e logo em seguida em concluir.Coordenação de Pós-graduação. Em seu arquivo. ModificarGrafico e ExcluirGraficoEFormas. Resumindo. Sub GerarGráfico() Charts. Selecione a planilha Criando Gráficos.ChartType = xlColumnClustered ActiveChart. Chega-se a conclusão que os elementos internos do gráfico só podem ser referenciados através do objeto ChartObjects.Range("A1:C4") ActiveChart.

ative a planilha Dois Gráficos.ChartObjects(2). selecionando o gráfico e deletando. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Macro ModificarGrafico: Usando o gravador.Chart Set VarLeste = ActiveSheet. Você afirmará que os faturamentos da região Leste e Oeste foram semelhantes. clique em Ok e pare o gravador. Observe rapidamente os 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). Observe que a sua macro é bem extensa em relação a macro já gravada para você comparar.Chart VarOeste.Axes(xlValue).Coordenação de Pós-graduação.: Eduardo d’Ávila Albuquerque 47 / 60 .Axes(xlValue).Axes(xlValue). Depois foi totalmente modificada para evitar erros. Afirmação errada. ExcluirGrafico: A criação desta macro começou com o gravador. Na sua macro existe várias linhas que podem ser remanejadas ou até mesmo excluídas. modifique a escala para 50000.MaximumScaleIsAuto = True VarLeste. Prof. Execute a Macro.MaximumScale End Sub = Va- Vá em seu arquivo e mude o faturamento de Março da Região Oeste para 15000. clique duas vezes no eixo dos valores. Vamos criar uma macro para ajustar este gráficos. clique na área do gráfico. O desempenho da região Oeste foi consideravelmente melhor que o desempenho da Leste. Escrevendo uma Macro que sincronize dois gráficos No arquivo gráficos para aula. como apagar um gráfico ou forma inexistente.MaximumScale rOeste.

MANIPULANDO E PERSONALIZANDO BOTÕES Neste capítulo você poderá alterar os botões e menus do seu Excel. Observe que você pode retirar qualquer botão ou menu da tela do Excel apenas arrastando para esta tela .: Eduardo d’Ávila Albuquerque 48 / 60 . Estando nesta tela pode-se ainda clicar nas barras de ferramentas do Excel ou nos Menus. Resta agora aprender a criar um botão para que este referencie as linhas de instrução previamente criadas – as macros. personalizar.Coordenação de Pós-graduação. 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. Prof. como também criar novos. criando assim duas macros – MaisZoom e MenosZoom. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA CAPÍTULO 8 CRIANDO. Para melhor explicação deste capítulo. comandos. Observe 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. Isto nos permite uma alteração completa da tela do Excel. levando botões desta tela para as barras de ferramentas do Excel e/ou menus. Podemos ainda incluir novos comandos. Vá ao Editor do Visual Basic e edite as linhas de instrução abaixo. salve um arquivo novo no Excel com o nome de Aula de Botões. Vá em seu Excel e clique em ferramentas. Cuidado as alterações da aparência geral do Excel podem te beneficiar e prejudicar a muitos outros usuários.

Zoom + 10 If numero <= 400 Then ActiveWindow. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Sub MaisZoom() Dim numero As Integer numero = ActiveWindow.Coordenação de Pós-graduação.Zoom = numero End If End Sub Sub MenosZoom() Dim numero As Integer numero = ActiveWindow.Zoom .: Eduardo d’Ávila Albuquerque 49 / 60 . barra de ferramentas.10 If numero >= 10 Then ActiveWindow. personalizar. Prof.Zoom = numero End If End Sub Criando uma barra de ferramentas personalizada Clique em ferramentas.

A seguir as propriedades mais utilizadas desta janela: Name: Nomeia internamente o objeto. AutoSize: Faz com que o tamanho do objeto altere (ou não) de acordo com o Caption. Prof. Pode-se ainda atribuir este botão a uma macro!!!. alterar sua imagem e etc.Coordenação de Pós-graduação. O 1º botão ativa/desativa o modo de criação de botões.: Eduardo d’Ávila Albuquerque 50 / 60 . O 2º botão exibi uma janela com todas as propriedades referente ao objeto selecionado. Este nome será usado na programação. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Clique em seguida no comando Nova. clique em modificar seleção e observe as alterações que podem ser feitas em seu botão.true) para o objeto clicado. Funciona juntamente com o comando proteger do menu ferramentas. Left: É à distância da parte esquerda do objeto da margem esquerda da planilha. PrintObject: Este objeto será impresso ou não. dê o nome Zoom.(ou não . e arraste o personalizar botão para dentro da nova barra de ferramentas chamada de Zoom Em seguida. Font: Permite formatar a fonte do Caption. Pode-se dar um nome. TakeFocusOnClick: A célula ativa da planilha será transferida – false . Clique na guia comandos. Este será o texto que o usuário irá ler em sua tela.. Utilizando a caixa de ferramenta controle Esta caixa permite criar botões de controle pertencentes a pasta de trabalho e não ao Excel. na categoria Macros. seja este a planilha ou os botões de controle. Height: é a altura do objeto. Atribua-o a macro MaisZoom e faça também um botão para a macro Menos Zoom. Caption: Dá um título ao objeto. OK. Locked: É a proteção do objeto. Sua barra de ferramentas deve estar como abaixo..

Width: Largura do objeto. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Visible: Este objeto está visível ou não. O último botão exibi uma lista de outros controles que poderão ser utilizados em nossa planilha. Top: Distância da parte superior do objeto à margem superior. Min/Max: São os valores mínimos e máximos que algum objeto pode representar.Coordenação de Pós-graduação. podemos considerar como sendo o conteúdo do objeto. ListFillRange: é um nome de uma área da planilha que vai ser utilizada como uma lista para o objeto. 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. SmalChange: Cada clique no objeto representará o aumento de quanto no ao valor Value: É o valor deste objeto. ColumnCount: É quantidade de colunas que possui a listagem. que fornecerá o valor para a linkedCell.: Eduardo d’Ávila Albuquerque 51 / 60 . BoundColumn: Qual das colunas será a coluna de referência. Prof. Enabled: Este objeto esta ativa ou desativado. LinkedCell: Para qual célula este objeto retornará resultados. Delay: é o tempo que será considerado como um clique.

A segunda forma é adicionando uma assinatura digital ao seu projeto VBA e fazendo esta assinatura ser reconhecida pelo Excel. clique na ferramenta que leva ao Visual Basic e dê um clique em ferramentas. Procure em seu Windows Explorer o arquivo SelfCert que executa o programa de assinatura digital. toda macro que causa algum dano ao Excel ou a planilhas dos usuários.: Eduardo d’Ávila Albuquerque 52 / 60 . Adicione uma assinatura ao seu projeto Você adiciona uma assinatura à parte do projeto VBA da sua pasta de trabalho. Ao instalar o Office peça para instalar Assinatura Digital para projetos do VBA. pois podem interferir de forma automática causando dano a funcionalidade deste software. Criando uma assinatura digital pessoal O CD do Microsoft Office inclui um programa que pode ser usado para criar uma assinatura pessoal. ao abrir pela primeira vez o arquivo que contem macros assinadas aparecerá uma tela pedindo confirmação. este programa somente será encontrado se previamente instalado. 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 primeira é configurando sua proteção no nível mais baixo. clique então. O Excel se protege contra as pastas de trabalho que contenham macros.Coordenação de Pós-graduação. assinatura digital. São chamados de Vírus de Macro. para isto abra seu arquivo que contém macros. isto não é recomendado. Logo após. Se você não mudou a configuração de segurança padrão clicando no botão correspondente da barra de ferramentas do Visual Basic. todas as vezes que abrir um pasta de trabalho que contem macro. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA CAPÍTULO 9 FAZENDO O EXCEL RECONHECER SUA MACRO COMO SEGURA. na caixa de seleção “sempre confiar em macros dessa fonte” Prof.

End If. Elas O teste-lógico é uma expressão “matemática” onde podemos responder apenas Verdadeiro ou Falso. 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. End If As linhas sublinhadas são obrigatórias na Estrutura If formam a parte constante desta estrutura.. O then antecede os comandos que deverão ser executados caso o valor do teste-lógico seja verdadeiro. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA CAPÍTULO 10 IF END IF .Coordenação de Pós-graduação. estudaremos a estrutura de controle denominada If End If.: Eduardo d’Ávila Albuquerque 53 / 60 ..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. Prof. If teste-lógico then Comando 1 Comando 2 Comando 3 Comando n Else Comando A Comando B Comando C Comando . Existem várias estruturas de tomadas de decisão.

Caso o teste-lógico seja Verdadeiro executa os comandos iniciais e ao encontrar o else pula-se para o end if. tomado assim a decisão do que será executado. Caso o teste –lógico seja falso executa os comandos após o else até o end if. mas como não o encontra vai para o end if. Observe que o Excel nunca executará todos os comandos contidos no If End If de forma linear.: Eduardo d’Ávila Albuquerque 54 / 60 . Assim caso o teste-lógico seja falso o Excel procura pelo else. Os comandos que deverão ser executados repetitivamente serão delimitados no início por Do While e no fim por Loop. A estrutura If End If pode ser compactada omitindo o else. 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 estrutural abaixo INÍCIO A=? B=? Prof. O end if marca o fim da estrutura.Coordenação de Pós-graduação. Para os programadores esta estrutura é cotidiana. 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 testelógico seja falso. Estruturas de Loop As estruturas de Loop realizam determinados comandos enquanto a resposta para o teste lógico for verdadeiro. Sempre o Excel terá que saltar alguns comandos.

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. Prof.Coordenação de Pós-graduação.: Eduardo d’Ávila Albuquerque 55 / 60 .

End(xlDown). Os outros dados do Cliente são inseridos por macros semelhantes.: Eduardo d’Ávila Albuquerque 56 / 60 .Select .Select ActiveSheet. Acesse a planilha Tela Principal e observe os botões de comando e as macros já criadas neste exercício.Select End Sub As linhas.Select Application.Selecione a última célula não-vazia desta coluna.Coordenação de Pós-graduação.Copy Sheets("BASE DE DADOS").Select ActiveCell. Neste arquivo você encontra várias planilhas.CutCopyMode = False Range("A2:B2"). tente entender as funções de cada linha das macros existente no arquivo X. Todas as linhas da macro IncluirNome foram feitas através do gravador. 0).Paste Sheets("TELA PRINCIPAL").Select Range("A1"). Como já criamos uma Prof. A macro abaixo inclui no banco de dados o Nome do Cliente. Neste momento o Excel abaixa a célula até encontrar uma célula vazia. 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. Comentário sobre as macros já criadas Executando as rotinas através da tecla F8. End(xlDown).Range("A1"). Sub IncluirNome() Range("B4").Offset(1.Select Selection. Somente com a compreensão individual de cada linha podemos entender a funcionalidade da macro. encontrando ele seleciona a primeira anterior a esta.Select Selection.

A macro IncluirImprimir inclui a Letra N na coluna correspondente a Impresso. Colunas) depois célula corrente e pede para selecionar a célula A1 referente a esta planilha virtual. cria uma espécie de planilha virtual iniciando em (linhas. ActiveCell. A macro chamada de Incluir apenas chama à execução outras macros de inclusão de dados. posso acionar este comando na primeira linha com a certeza que selecionarei a última linha de dados. Este comando.Range("A1"). criou-se a macro acima para executar as outras macros relativas a inclusão dos dados. Esta linha de instrução é devido ao ícone Referência Relativa.: Eduardo d’Ávila Albuquerque 57 / 60 .Esta linha posiciona uma linha abaixo da linha atual.Select Selection. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA macro para impedir os espaços em branco.Select Range("A1"). Este ícone se encontra na barra de ferramentas Parar Gravação.Coordenação de Pós-graduação.Offset(1. a partir da célula ativa. --------------------------------------------------------------------------------------Sub PreencherVazios() Sheets("BASE DE DADOS"). 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.ClearContents Prof. 0).Select .

sendo que esta caixa irá conter o botão OK e Cancelar. Assim a macro executa normalmente e no final devolve para a célula A1 o seu conteúdo [Selection. Apagando o conteúdo de A1 [ Range("A1"). com isto. Só será executada caso o ocorra um Clique no Botão de Comando. vbOKCancel) exibi um caixa de mensagem na tela com a pergunta.End(xlDown). Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA Selection.Select . A instrução MsgBox("Confirma Impressão de Boletas?". A variável Botao receberá a mensagem vbOK quando o usuário clicar em Ok. Pode acontecer que nenhuma célula esteja vazia.Select emitirá uma mensagem de erro.Value = "NOME" Selection.Select Selection.Select Sheets("TELA PRINCIPAL"). o comando Selection. vbOKCancel) If botao = vbOK Then 'Imprimir End If A linha Private Sub CommandButton1_Click() indica que é uma macro privada.Select Selection.ClearContents ] garantimos que pelo menos A1 estará vazia.FormulaR1C1 = "****" Range("A1").SpecialCells(xlCellTypeBlanks). --------------------------------------------------------------------------------------Prof.Value = "NOME"] --------------------------------------------------------------------------------------- Private Sub CommandButton1_Click() botao = MsgBox("Confirma Impressão de Boletas?".CurrentRegion. Selection.SpecialCells(xlCellTypeBlanks).Select Range("A2:B2").Coordenação de Pós-graduação.: Eduardo d’Ávila Albuquerque 58 / 60 .Select End Sub A macro PreencherVazios apenas inseri **** nas células vazias da nossa base de dados.Select Selection.

Value Do While Celula <> "" If Celula = "N" Then ‘neste espaço devemos fazer as instruções de Copiar os dados. chama as rotinas de inclusão de dados. 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.Select Linha = 2 Coluna = 9 Celula = Cells(Linha. É sempre aconselhável o quebrar uma programação extensa em vários procedimentos menores e de fácil compreensão. a macro PreencherVazios. logo em seguida. impedindo que algum campo fique vazio.Coordenação de Pós-graduação.: Eduardo d’Ávila Albuquerque 59 / 60 . Colar e Imprimir e Prof. ir para a planilha ‘correspondente a boleta a ser impressa. --------------------------------------------------------------------------------------- Sub Imprimir() Dim Celula As String Dim Coluna As Integer Dim Linha As Integer Worksheets("Base de Dados"). posicionar a célula. Depois de Executa as funções de inclusão de dados a macro Incluir terá sido executada. Coluna). que por sua vez.

Excel 2002 Visual Basic for Applications. 2. Cuide bem de seu material. Revisão técnica de Marcelo Rosin Citrangulo. 2002. --------------------------------------------------------------------------------------- CONCLUSÃO Parabéns!!! Você acaba de concluir os estudos sobre Excel Avançado e Programado em VBA. o que facilita para você relembrar os ensinamentos transmitidos. Coluna). Coluna).Coordenação de Pós-graduação. Fim Prof. Vamos interpretála passo a passo em sala de aula.Value Loop End Sub A macro imprimir é uma macro criada sem o gravador. Rio de Janeiro: Campus.: Eduardo d’Ávila Albuquerque 60 / 60 . Macros diferentes podem fazer as mesmas funções. é uma referência importante para consultas. Visual Basic 6 para Dummies. Cells(Linha. daqui em diante ele será o seu ASSISTENTE. Esta macro poderia ser criada com o auxílio do gravador e depois sofrer as alterações necessárias. 1999. ed. Para completar seu aprendizado. É certo que este material não é um manual completo de auto-ajuda. Lembre que suas aulas foram totalmente baseadas nesta apostila. R..Value = "S" End If Linha = Linha + 1 Celula = Cells(Linha. observe as bibliografias abaixo: JACOBSON. mas com toda certeza . Tradução de Joaquim Pinheiro Nunes da Silva. Pesquisa e Extensão Curso de Excel Avançado e Programado em VBA ‘voltar para esta planilha chamada de base de dados. WANG. Consultor editorial Fernando Barcellos Ximens e Kpmg Consulting. São Paulo: Makron Books. W.Tradução de Ana Beatriz Rodrigues e Priscilla Martins Celeste.