UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL Centro Interdisciplinar de Novas Tecnologias na Educação TUTORIAL POWERPOINT VBA Profª Liane Tarouco Introdução a linguagem VBA - Visual Basic For Applications O VBA teve origem no Visual Basic. O Visual Basic é um ambiente de desenvolvimento completo, onde podemos criar programas para o ambiente Windows. Um programa como o Programa Para Declaração de Imposto de Renda da Pessoa Física, pode ser criado utilizando-se o Visual Basic. Um aplicativo como o Winzip ou como um sistema para controle de clientes e de vendas, também poderia ser criado utilizando o Visual Basic. Já o VBA é uma linguagem bastante poderosa, embora não seja tão poderosa quanto o Visual Basic, para criação de aplicativos e automação de tarefas, baseados nos aplicativos do Microsoft Office: Access, Word, Excel, PowerPoint e Outlook. É importante entender que existe uma diferença fundamental entre o Visual Basic e o VBA: Com o Visual Basic é possível criar os programas executáveis, ou seja, você cria o programa e gera os arquivos de instalação. Nos arquivos de instalação estão todos os recursos necessários à instalação e ao funcionamento do programa. Já com o VBA não é possível criar programas executáveis. As rotinas de programação criadas com o VBA tem que ser executadas dentro de um dos aplicativos do Office, como por exemplo o Access, Excel, Word, PowerPoint ou Outlook. Onde podemos utilizar o VBA? Existem, basicamente, duas situações/locais diferentes onde podemos utilizar o VBA: • Como resposta a um evento: o modelo de programação do ambiente Windows é baseado em Eventos. Um Evento é uma ação do usuário ao utilizar o teclado ou o mouse. Por exemplo, quando o usuário clica em um botão de comando é gerado o evento "Ao clicar" associado com este botão. Quando o usuário altera o valor em um campo de dados e pressiona a tecla TAB para ir para o próximo campo são gerados dois eventos associados com o campo que foi atualizado: "Após atualizar" e "Ao perder o foco". Ah, também será gerado o evento "Ao receber o foco", associado com o capo para o qual foi posicionado o cursor. Quando o usuário dá um clique duplo em um determinado elemento de uma tela do Windows, é disparado o evento "Ao clicar duas vezes", e assim por diante. Por padrão nenhuma ação é programada para responder aos eventos que são disparados. É possível criar macros que serão executadas em resposta a um determinado evento. Podemos utilizar o VBA para criar um procedimento (um procedimento é formado por um ou mais comandos e pode ser do tipo Sub-procedimento ou Função) que será executado em resposta ao evento. Por exemplo, podemos criar um procedimento para validar um número de CPF (calcular o DV do CPF). Este procedimento pode ser configurado para ser executado em resposta ao evento Após atualizar do campo CPF. O código criado para ser executado em resposta a um evento, é gravada juntamente com o formulário (ou relatório), onde está o elemento que dispara o evento. • Criação de funções e procedimentos em módulos separados: Se quisermos criar procedimentos ou funções que não estejam ligados a um evento específico em um formulário ou relatório (podendo, porém serem chamados em diversos eventos diferentes), podemos criar funções gravadas em Módulos. Um Módulo é um objeto cuja única finalidade é armazenar código de procedimentos e funções do VBA. Quando um procedimento ou função é definido e armazenado em um módulo, podemos usá-lo em qualquer expressão, como se fosse uma função interna do ou chamá-lo em resposta a um evento. Sintaxe # Declaração de variáveis Public variável – reconhecida em todo o projeto Private variável – reconhecida somente naquele Slide Dim – reconhecida somente dentro de função ou procedimento # Janela popup MsgBox (“mensagem”) ou Msg “mensagem” ou Msg variável # Caixa de entrada de dados variável = InputBox(prompt:=”pergunta”, Title:=”título”) # Mover para outro slide SlideShowWindows(1).View .GotoSlide número – vai para o número indicado .Next – vai para o próximo slide .First – vai para o primeiro slide .Last – vai para o ultimo slide .Previous – vai para o slide anterior # Alterar textos ActivePresentation.Slides(número).Shapes(número).TextFrame.TextRange.Paragraphs(1). Font .Color = RGB(255,0,0) – altera cor .Size = 40 – altera tamanho da fonte .Bold/.Italic = True/False – altera estilo para negrito/itálico # Caixa de Texto Dinâmica - uma caixa de texto com algo escrito deve ser colocado no slide, onde se quer que a msg apareça: ActivePresentation.Slides(número).Shapes(número).TextFrame.TextRange.Text = “mensagem” # OnMouseOver - ao atribuir uma ação, selecionar ‘Sem o mouse’ # Chamada de funções e procedimentos Call Função (obs.: sem os parênteses!!!) – ex: Call Inicio # Controlar visibilidade de elementos ActivePresentation.Slides(número).Shapes(número).Visible = True/False # Condicionais Then If (condição) Then <ação> <ação> Else <ação> <ação> End if If (condição) Then <ação> <ação> Elseif (condição) Else <ação> <ação> <ação> <ação> End if For (condição) <ação> Next i Do while (condição) <ação> Loop If varNome = ”” Then MsgBox(“Preencha o nome”) Else MsgBox(“Seu nome é “ & varNome) End if If varPontos=”10” Then MsgBox(“Muito bem, você gabaritou!”) SlideShowWindows(1).View.GotoSlide 3 Elseif (6>= varPontos > 10) Then MsgBox(“Você pode prosseguir...”) SlideShowWindows(1).View.GotoSlide 2 Else MsgBox(“É melhor você refazer o teste”) SlideShowWindows(1).View.GotoSlide 1 End if For (i=1 to 10) <step=2> opcional MsgBox(i) Loop Do while (i <= 10) MsgBox(i) i=i+1 Loop Select case (variável) Select case varPontos Case (valor) Case (varPontos<=5) <ação> MsgBox(“Refaça o exercício!”) Case (valor) Case (6>=varPontos>=8) MsgBox(“Muito bem, mas reveja alguns <ação> Case else tópicos!”) <ação> Case else End Select MsgBox(“Parabéns!”) End Select # Usando elementos da Barra de Ferramentas Basta selecioná-los na barra e arrastar para a apresentação. Para editá-los, clicar com o botão direito do mouse e escolher Propriedades. Abaixo segue uma relação das propriedades mais importantes, que podem ser alteradas, não sendo comentadas as que se repetem em outros elementos: - Botão de comando Name – dá um nome ao botão AutoSize – se True, ajusta automaticamente o tamanho do botão ao texto BackColor – cor de fundo do botão BackStile – 0 = botão transparente, 1 = opaco (normal) Caption – texto que vai aparecer no botão Font – formatação da fonte, tamanho e estilo do texto do botão ForeColor – cor da fonte do botão MousePointer – tipo de ponteiro que aparecerá quando o cursor for colocado sobre o botão Default – seta padrão Arrow – flecha Cross – cruz IBeam – entrada de texto HourGlass – temporizador Help – ponto de interrogação Picture – associar uma figura ao botão, ao invés de um texto PicturePosition – posição da figura associada ao botão TakeFocusOnClcik – se True, realça clique Visible – se True, mostra o objeto - Caixa de Texto Name – variável que gravará o dado entrado AutoTab – considera a entrada dos dados ao usar a tecla TAB BorderColor – define a cor da borda da caixa BorderStyle – 0 = sem borda, 1 = borda simples MaxLength – número máximo de caracteres MultiLine – se True, permite mostrar texto em múltiplas linhas ScrollBars – 0 = sem barra de rolagem, 1 = barra de rolagem horizontal, 2 = barra de rolagem vertical, 3 = ambas Text – texto a ser mostrado na caixa. Se for caixa de entrada, deixar vazio TextAlign – 1 = esquerda, 2 = centro, 3 = direita # Como atribuir ações aos elementos da Barra de Ferramentas Duplo clique no elemento faz abrir a rotina criada especificamente para aquele elemento, na janela de edição do VBA. Dentro dessa rotina, deve-se colocar a ação, chamando-a com call função. Ex.: Duplo clique no Botão de comando faz abrir: Private/Public Sub Botao_Click() <aqui se coloca a chamada da função ou as ações para quando o botão for clicado> End Sub Obs.: no caso de caixa de entrada, a variável deverá ser tratada como: Slide(número).NomeVariável #