Objetos no VBA Objetos no VBA • Ao executarmos uma macro todas as tarefas realizadas ficaram gravadas na pasta de trabalho que foram escritas numa linguagem de programação chamada Visual Basic Application. • Para verificar o que foi criado com o gravador de macro do Excel, clicar na guia Desenvolvedor, escolher Visual Basic ou pressionar as teclas <ALT>+<F11>. Tela do MS Visual Basic Applications Objetos Procedimentos Project Explorer Módulo Janela de Propriedades Projeto VBAProject Nome do arquivo de projeto (*.xlsm), as planilhas existentes neste suplemento e os códigos existentes em cada uma delas. Propriedades Nome do módulo em uso e as propriedades atuais deste módulo, neste exemplo somente a propriedade Name está sendo visualizada. Módulos • Nesta janela temos o módulo atual, ou seja, toda a descrição das tarefas a serem executadas. • São procedimentos que constituem a unidade básica do código em VBA. • Podemos classificá-lo como uma sequência de instruções que ensinam ao Excel o que fazer. • A maioria dos módulos do Excel poderá ter mais de um procedimento. Para criar um Módulo 1. Posicionar o cursor sobre a Pasta de Trabalho, 2. Clicar no menu Inserir, escolher Módulo. Para renomear um Módulo 1. Na janela Propriedades, clique sobre o Módulo 1 e renomeie 2. Escreva: a_caixas_diálogo Todo Procedimento poderá começar com Sub ou Function, seguido de um espaço, o nome do procedimento e um par de parênteses, seguido de instruções a serem seguidas. Objetos • O Visual Basic Application é uma linguagem de programação orientada a Eventos. • Temos vários objetos dentro de um aplicativo, por exemplo, uma barra de ferramentas, uma planilha aberta, uma caixa de texto, etc. • O Excel possuí mais de 400 Objetos. • Para visualizar os objetos: – Clicar no Menu Exibir, – Escolher Pesquisador de Objetos. Para visualizar os Objetos • Clicar no Menu Exibir, • Escolher Pesquisador de Objetos. • Ou Clicar no ícone Pesquisador de Objetos Objetos • Alguns objetos aparecem listados duas vezes: – AddIn e AddIns, Border e Borders. • Os objetos que se encontram no plural são objetos chamados de COLEÇÕES. • Os objetos no VBA formam uma hierarquia: – No topo encontra-se o objeto Application, é o EXCEL, – Nos níveis abaixo temos Workbooks, AddIns, Dialogos, MenuBars, ToolBar, Windows... • Para nos referirmos a eles é necessário digitar a coleção que ele pertence e o objeto. Application.WorkBooks(“Minha Planilha”) Objetos • Na maioria das vezes, fazemos referências a uma planilha ou células dessa planilha, portanto objetos ativos, que podem ser os seguintes: • ActiveCell • ActiveDialog • ActiveMenuBar • ActivePrinter • ActiveWindow • ActiveChart • ActiveX • ActivePanel • ActiveSheet • ActiveWorkBook Digitar o seguinte procedimento: Para executar utilize o botão Executar ou clicar no menu Executar, escolher Executar Sub/User Form ou Dentro da subrotina pressionar a tecla <F5> A Macro é um procedimento, que por sua vez é um conjunto de instruções que passamos para o Excel executar. Já os objetos são itens a serem alterados nestas instruções. Métodos e Propriedades Digitar o procedimento abaixo: 1. A macro se iniciou com Sub, pois é uma sub-rotina. 2. Terminou com End Sub. 3. Encontramos as seguintes instruções: Selection.Style=“Currency” Nesta instrução, informamos ao Excel que a seleção atual (selection – área selecionada), desejamos alterar o estilo dos valores para Currency, ou seja: 1. Selecionamos o objeto (Selection) 2. Alteramos a propriedade deste objeto (Style) 3. Para o formato (Currency). Métodos Toda ação que não utilizam o sinal de igualdade, para definir o valor da propriedade são chamadas de Métodos. Selection.Style=“Currency” -> Propriedade Estilo é igual a Currency Selection.Copy -> Método (Ação) Ao pedir para copiar uma determinada célula, o Excel não pede nenhuma informação adicional, ou seja, não é uma propriedade para o qual se atribui um valor. Localizando Procedimentos A maneira mais rápida de localizar procedimentos na janela do Visual Basic Application é utilizar a caixa de combinação Procedimentos: Variáveis de Memória As variáveis no VBA armazenam valores das propriedades, os resultados de cálculos. Um variável é um valor que será armazenado na memória do computador enquanto o procedimento está rodando. Ao terminar de executar o procedimento esta VARIÁVEL é removida da memória. Regras para Nomeação em VBA Para nomear procedimentos, constantes, variáveis e argumentos em quaisquer um dos módulos, sempre obedeça a seguinte regra: • Não utilize pontos, espaços, virgulas, exclamação ou caracteres com símbolos ($,@,#,etc) • O nome deve iniciar com Letras de A-Z. • O nome não pode exceder 255 caracteres. • Como nome, não utilize palavras reservadas ao sistema, por exemplo, nomear uma variável com nome de WorkSheet, que é um objeto do MS-Excel. Adicionando Comentário ao Código Um comentário irá auxiliar o usuário a respeito do funcionamento do código(procediemento). Para criar um comentário utilize o apostrofo (‘) no início de cada linha. Ele é apresentado em verde Definindo Variáveis As variáveis podem armazenar Valores e Objetos. Ao atribuir um valor a uma variável podemos fazê-lo utilizando seu nome o sinal de igualdade e o valor correspondente à mesma: NomeDaVariavel=Valor Ao atribuir um objeto de referência a uma variável além de utilizar o sinal de igualdade, devemos colocar a palavra chave Set(Fixar) no início da instrução: Set MeuObjeto=Range(“A1”) Digitar o seguinte procedimento: No exemplo acima temos 5 Variáveis com tipos diferentes. Para ver como as mesmas são armazenadas na memória, faça: 1. Clicar no Menu Exibir, 2. Escolher Variáveis Locais, 3. Vá pressionado a tecla <F8>. Digitar o seguinte procedimento: Digitar na célula A1: Green Treinamento e escrever o procedimento abaixo Declarando Variáveis de Memória Apesar o VBA não exigir que as variáveis sejam declaradas, devemos fazê-lo sempre. Ao declarar uma variável estamos informando ao VBA para reservar uma quantidade de memória para prender o conteúdo da variável declarada. É possível minimizar o espaço requerido para as variáveis ao especificar o tipo de dado que a mesma deverá armazenar. Para declarar uma variável faça: Dim NomeDaVariavel As TipoDaVariavel Nota: Ao utilizar a instrução Option Explicit, na seção de declarações (início do procedimento), obrigamos o VBA a exigir que todas as variáveis sejam declaradas. Tipos de Dados Tipo de Campo Tipo de Variável Texto String Número Integer, Long, Double ou Single Moeda Currency Sim/Não Boolean Data/Hora Date Variante Variant Variant é um tipo especial de variável, caso declare as variáveis como Variant, qualquer tipo de dado poderá ser armazenado na mesma. Se não declarar o tipo da variável o Excel assume Variant, o que requer mais espaço de memória os demais tipo.