VBA USANDO TABELA DO WORD COMO BANDO DE DADOS

Documentos relacionados
A finalidade deste e-book é mostrar na prática como personalizar um formulário (UserForm) fazendo ou não uso da API s do Windows.

10. CRIANDO FORMULÁRIOS DO VBA

Módulo 1a: Introdução ao Visual Basic for Applications (VBA) - Eventos, Gráficos e Interfaces gráficas -

EISnt Centro de Formação em Tecnologia

Aplicações - VBA. Programação Interna

Centro de Formação em Tecnologia

1) Mostrando uma mensagem. 10 exemplos de macros essenciais no Excel. Este conteúdo faz parte da série: Excel VBA Ver 6 posts dessa série

Executar uma macro clicando em um botão da Barra de Ferramentas de Acesso Rápido

BARRA DE PROGRESSO EM VBA

Atalho de teclado CTRL + P

Microsoft Excel Macro V. Índice 16-) Formulários ) Gerando código para o Formulário... 49

Excel Macros e Programação em VBA

Modelagem em Engenharia C & A Aula 1- Introdução e informações

O que é e como funciona o VBA no excel?

Macros e Programação VBA

Adicionando Imagens no Formulário

Criando um formulário no VBA

Plano de Aula - Access cód Horas/Aula

VISUAL BASIC PARA APLICAÇÕES (VBA)

1. Estrutura do Projeto (0,2) pontos

Crie uma folha de cálculo para registo de dados com Excel e VBA.

Fundamentos Programação

Excel 2016 com VBA. Aula 5. Prof. Guilherme Nonino Rosa

VBA Visual Basic for Applications. APROG - Civil

Para iniciarmos o trabalho se faz necessária a implantação da GUIA DESENVOLVEDOR. Botão Direito do Mouse; Personalizar Faixa de Opções

Introdução ao ASP.NET

Curso Introdução à Educação Digital - Carga Horária: 40 horas (30 presenciais + 10 EaD)

Plano de Aula - Access cód Horas/Aula

Excel 2010 Avançado Plano de Aula - 24 Aulas (Aulas de 1 Hora).

Introdução à Computação

Linguagem de Programação II Professor: Luiz Claudio Ferreira de Souza Assunto: Linguagem Pascal (Ambiente Lazarus) com Banco de Dados

UNIVERSIDADE FEDERAL DE PELOTAS. Índice

Introdução a Tecnologia da Informação

Windows Forms Applications - Introdução. Prof. Robinson Alves IFRN

Trabalhando com MDI e Menus

A c c e s s B á s i c o

OBS2: Para o Trainee e Profissional não é necessário a realização do teste de nivelamento!

CURSO DE ACCESS AULA 3 FORMULÁRIOS. Cartão de Referência Rápida Um formulário para cada função

Adoption Lab de VB6 para VB.NET Laboratório VB.NET básico

Visual Basic for Applications

Módulo 1a: Introdução ao Visual Basic for Applications (VBA)

Modulo 2 Gestão de Base

Desenvolvendo Aplicações Poderosas com Excel e VBA

Microsoft Excel Macros aula 1

Objectos Gráficos 1. APROG (Civil) Aula 4

Introdução a Tecnologia da Informação

NIVELAMENTO DE INFORMÁTICA. Professor: Cleber Semensate

Conteúdo de Formação

MS Office para Secretariado e Assessoria, Ciclo de Offce Secretariado

Gestão Unificada de Recursos Institucionais GURI

Introdução ao ASP.NET

UNIVERSIDADE FEDERAL DA PARAÍBA PRÓ-REITORIA DE EXTENSÃO E ASSUNTOS COMUNITÁRIOS - PRAC COORDENAÇÃO DE PROGRAMAS DE AÇÃO COMUNITÁRIA - COPAC

seleciona os campos de linha da Tabela Dinâmica e transforma-os em campos de categoria no gráfico.

Habilitar ou desabilitar macros em arquivos do Office. Habilitar macros quando a Barra de Mensagens for exibida

Excel 2016 com VBA. Aula 2. Prof. Guilherme Nonino Rosa

Faixa de Opções, Ajuda e outros atalhos de teclado do Microsoft Office. Acesso pelo teclado à Faixa de Opções da Office Fluent

Apresentação do Microsoft Word

Informática Básica. Aula 13 Macros e introdução a programação

PowerPoint CAPÍTULO 1... CAPÍTULO 2... CAPÍTULO 3...

DESVENDANDO OS PODEROSOS RECURSOS DO WORD

Programação de Computadores usando VBA

Introdução Capítulo 1: Um Olhar sobre as Funcionalidades e Interface do Microsoft Excel

Excel VBA - Parte IV:Inserindo um formulário e seus comandos

Laboratório Configuração do Backup e da Restauração de Dados no Windows 7 e no Vista

Sistema NetConta I - Guia de Referência

Laboratório de Programação I

Relatórios Avançados

Selecione o menu FILE NEW PROJECT como apresentado a seguir:

Consolidar dados de várias planilhas em uma única planilha

RESUMO DE AULAS PC1 ETEC TAQUARITUBA 2 SEM 2011

Manual da Turma Virtual: CONFIGURAÇÕES. Para acessar a turma virtual com o perfil Docente, siga o caminho indicado abaixo:

PORTAL INSTITUCIONAL

Problemas de compatibilidade de relatórios de Tabela Dinâmica. Problemas que causam perda significativa de funcionalidade

Saiba mais Scribd Carregar um documento Pesquisar Documentos Explorar. gersonjpl

Manual prático de Ajuizamento de Iniciais Portal Processo Eletrônico Nova rotina de anexação de peças

A IMPORTÂNCIA DO EXCEL NAS EMPRESAS E SUA UTILIZAÇÃO PELOS PROFISSIONAIS DE RH

Tabela Dinâmica MS-Excel

Plano de Aula - Excel 2010 Avançado - cód Horas/Aula

Tutorial de Extensibilidade

Aula 4 Microsoft PowerPoint 2003: Criando uma Apresentação

MANUAL EXPLICATIVO DE MANUSEIO DAS EMPRESAS NA PLATAFORMA DO CONSUMIDOR.GOV

WINDOWS FORMS APPLICATION - Aplicação (Programa) que não usa a CONSOLE

Este Exame é individual, sem consulta e com a duração de 90 minutos. Responda às questões no próprio teste, no espaço próprio.

MANUAL. Certificado de Origem Digital PERFIL PRODUTOR. Versão

GUIA RÁPIDO DO e-livro. Iniciando

Access Módulo I. Gabarito

Access Prof. Ari Oliveira

Objectivos. Introdução à programação Macros em Microsoft Excel Introdução ao Visual Basic para Aplicações (VBA)

Aula 01 Microsoft Excel 2016

WINDOWS FORMS APPLICATION - Aplicação (Programa) que não usa a CONSOLE

Referência =SOMA(C20:C30) =SOMA(VendasDoPrimeiroTrimestre) Constante =PRODUTO(A5,8.3) =PRODUTO (Preço,ImpostoSobreVendasDeWA)

Manual de Instruções MEDTISS

Excel 2016 Avançado Plano de Aula - 24 Aulas (Aulas de 1 Hora)

DESVENDANDO OS PODEROSOS RECURSOS DO WORD

Gestão Unificada de Recursos Institucionais GURI

Elaborado por: Genilson Vieira

1. Introdução O que é Microsoft PowerPoint Recursos de PowerPoint. Introdução

. Tutorial de Acesso.

INFORMÁTICA (PC-SP / ESCRIVÃO / VUNESP / 2014)

Transcrição:

VBA USANDO TABELA DO WORD COMO BANDO DE DADOS PREENCHENDO UMA TABELA ATRAVÉS DE UM USERFORM Nível: Avançado w w w. t u t o r i a i s w o r d. c o m

ÍNDICE O QUE É VBA?... 3 OBJETIVO DESTE EBOOK.... 4 AUTOR... 6 CAPÍTULO I... 7 CRIANDO A INTERFACE (FORMULÁRIO)... 8 CAPÍTULO II... 17 CRIAÇÃO DO CÓDIGO... 18 CAPÍTULO III... 53 PARA IR MAIS ALÉM... 54 CONSIDERAÇÃO FINAL... 54 DOWNLOAD... 54 w w w. t u t o r i a i s w o r d. c o m

O QUE É VBA? O Visual Basic for Applications é uma linguagem de programação interna, ligada a todos os aplicativos do pacote Office, como o Access, Word, Excel, PowerPoint e outros. O Visual Basic for Applications, também chamado de VBA, propicia o desenvolvimento de ferramentas e rotinas que proporcionam ao Office recursos quase ilimitados. w w w. t u t o r i a i s w o r d. c o m Página 3

OBJETIVO DESTE EBOOK. A finalidade deste e-book é mostrar na prática um pouco do que se pode fazer utilizando os recursos de programação VBA do Microsoft Word. Este e-book é voltado para usuários que já possuem um bom conhecimento em VBA, porém, também é muito instrutivo para aqueles que estão dando os primeiros passos em programação VBA. Neste e-book mostrarei como utilizar uma tabela do próprio Word como um pequeno banco de dados, onde o usuário poderá cadastrar, excluir, pesquisar, imprimir relatório e navegar pelos registros sem ter que fazer nenhuma referência a Biblioteca DAO (Microsoft DAO 3.6 Object Library) Antes de tudo quero deixar bem claro que a melhor opção para trabalhar com um banco de dados através do Word é fazendo referência a Biblioteca DAO, deste modo o Word pode gerenciar de forma apropriada qualquer banco de dados, estando a base dados no Access ou no Excel, porém, há um inconveniente, pois, sempre que você for abrir o arquivo em outro equipamento será necessário fazer a referência a Biblioteca para que tudo funcione perfeitamente. No exemplo que aqui será mostrado usaremos uma tabela do Word como nossa base de dados e um formulário (UserForm) que irá gerenciar este banco de dados. Infelizmente o Word também tem alguns limites como, por exemplo: Número máximo de colunas de uma tabela: 63 Número máximo de linhas de uma tabela: 32.767 Tamanho máximo do arquivo: 32 MB (somente texto) Tamanho máximo do arquivo: 512 MB (texto e elementos gráficos) Entretanto, se o seu banco de dados for pequeno, este exemplo é uma boa opção para usar o Word como se fosse um Banco de Dados. Na intenção de fazer este e-book com o menor número de páginas possível não farei uma abordagem explicativa de cada linha de código usado neste exemplo, no entanto, adicionarei comentários (textos em verde) dentro do código que ajudarão o leitor a compreender a sua funcionalidade. Mas lembre-se, em se tratando de programação não existe uma maneira correta de fazer isso, ou seja, o processo de desenvolvimento muitas vezes pode ser feito de maneira diferente, de acordo com a experiência do programador e se chegar ao mesmo resultado final, portanto, o ideal é procurar w w w. t u t o r i a i s w o r d. c o m Página 4

deixar o código mais enxuto possível e fazer com que tudo que funcione de forma prática, dessa maneira, peçoao leitor que encare os exemplos aqui apresentados como ponto de partida e/ou sugestões para que através deles o leitor possa ter ideias e criar novos projetos ou adaptá-los às suas necessidades. w w w. t u t o r i a i s w o r d. c o m Página 5

AUTOR Ednilson Muniz Mendes, Técnico de Informática: Possui mais de 15 anos de conhecimento e experiência em MS Office, automatização de Documentos, Aplicações e Soluções em VBA (Visual Basic For Applications). w w w. t u t o r i a i s w o r d. c o m Página 6

CAPÍTULO I w w w. t u t o r i a i s w o r d. c o m Página 7

CRIANDO A INTERFACE (FORMULÁRIO) Como este e-book é voltado para usuários que já possuem um conhecimento prévio de programação em VBA, não farei aqui um passo a passo de como criar o formulário, apenas mostrarei a relação dos controles que deverão ser utilizados e as propriedades que deverão ser alteradas bem como a aparência do formulário depois de concluído. De qualquer forma no final deste e-book será disponibilizado um link onde poderá ser feito o download do arquivo utilizado neste exemplo. Controles necessários para a construção do Formulário: Quantidade Controle 4 Frame (Quadro) 12 Label (Rótulo) 9 TextBox (Caixa de Texto) 1 ListBox (Caixa de Listagem) 1 SpinButton (Botão de Rotação) 7 CommandButton (Botão de Comando) Adicione os controles abaixo ao formulário e altere suas propriedades: Userform1 Name: frmcadastro Height: 417 Width: 430,5 Frame1 Caption:(deixar esta propriedade em branco) Height: 132 Top: 36 Width: 330 Frame2 Caption:Buscar pelo nº do Registro Height: 48 Left: 256 Top: 312 Width: 162 w w w. t u t o r i a i s w o r d. c o m Página 8

Frame3 Caption:(deixarestapropriedadeembranco) Height: 132 Left: 342 Top: 36 Width: 78 Frame4 Caption: Buscar pelo nº do RG Height: 48 Top: 312 Width: 180 Os controles abaixo devem ser adicionados dentro do Frame1: Label1 Caption: Nome: Font: Tahoma, Negrito, Tamanho 11 Height: 18 Top: 24 Width: 42 Label2 Caption: RG: Font: Tahoma, Negrito, Tamanho 11 Height: 18 Top: 48 Width: 36 Label3 Caption: CPF: Font: Tahoma, Negrito, Tamanho 11 Height: 18 Top: 72 Width: 30 w w w. t u t o r i a i s w o r d. c o m Página 9

Label4 Caption: Total de Registros: Font: Tahoma, Regular, Tamanho 10 Height: 12 Left: 198 Top: 108 Width: 84 Label5 Caption: Registro nº Font: Tahoma, Regular, Tamanho 10 Height: 12 Left: 96 Top: 108 Width: 54 Label6 Caption: Somente números (sem traço e sem ponto) Font: Tahoma, Regular, Tamanho 7 Height: 18 Left: 222 Top: 48 Width: 96 Label7 Caption:(Deixar esta propriedade em branco) Font: Tahoma, Regular, Tamanho 10 Height: 12 Left: 150 Top: 108 Visible: false Width: 42 TextBox1 Name: txtnome Font: Tahoma, Regular, Tamanho 10 Height: 20 Left: 48 Top: 24 Width: 276 w w w. t u t o r i a i s w o r d. c o m Página 10

TextBox2 Name: txtrg Font: Tahoma, Regular, Tamanho 10 Height: 20 Left: 48 Top: 48 Width: 168 TextBox3 Name: txtcpf Font: Tahoma, Regular, Tamanho 10 Height: 20 Left: 48 Top: 72 Width: 168 TextBox4 Height: 24 Left: 240 Top: 72 Width: 18 TextBox5 Height: 24 Left: 270 Top: 72 Width: 18 SpinButton1 Height: 24 Left: 12 Top: 102 Width: 78 w w w. t u t o r i a i s w o r d. c o m Página 11

O controle abaixo devem ser adicionado acima do Frame1: Label8 Caption: Cadastro de Dados Pessoais Font: Tahoma, Negrito, Tamanho 14 Height: 18 Left: 12 TextAlign: 2fmTextAlignCenter Top: 12 Width: 408 Os controles abaixo devem ser adicionados abaixo do Frame1: TextBox6 Height: 2 Left: 12 Top: 186 Width: 402 Label11 Caption: Nome: Font: Tahoma, Regular, Tamanho 10 Height: 12 Left: 72 Top: 192 Width: 42 Label12 Caption: RG: Font: Tahoma, Regular, Tamanho 10 Height: 12 Left: 246 Top: 192 Width: 24 Label13 Caption: CPF: Font: Tahoma, Regular, Tamanho 10 Height: 12 Left: 342 Top: 192 Width: 30 w w w. t u t o r i a i s w o r d. c o m Página 12

ListBox1 Height: 83,95 SpecialEffect: 3-fmSpecialEffectEtched Top: 204 Width: 413,20 Label14 Caption: BUSCA Font: Tahoma, Negrito, Tamanho 12 Height: 18 SpecialEffect: 3-fmSpecialEffectEtched Top: 294 Width: 413,20 Os controles abaixo devem ser adicionados dentro do Frame2: TextBox9 Name: txtbuscanumreg Font: Tahoma, Regular, Tamanho 10 Height: 20 Left: 12 Top: 12 Width: 60 CommandButton5 Name: cmdpesquisarnumreg Caption: Pesquisar Font: Tahoma, Negrito, Tamanho 10 Forecolor: &H00404000 Height: 22 Left: 78 Top: 10 Width: 60 w w w. t u t o r i a i s w o r d. c o m Página 13

Os controles abaixo devem ser adicionados dentro do Frame3: CommandButton1 Name: cmdnovo Caption: Novo Font: Tahoma, Negrito, Tamanho 10 Height: 24 Top: 6 Width: 60 CommandButton2 Name: cmdadicionar Caption: Adicionar Font: Tahoma, Negrito, Tamanho 10 Forecolor: &H00FF0000 Height: 24 Top: 36 Width: 60 CommandButton3 Name: cmdexcluir Caption: Excluir Font: Tahoma, Negrito, Tamanho 10 Forecolor: &H000000FF Height: 24 Top: 66 Width: 60 CommandButton4 Name: cmdimprimir Caption: Imprimir Font: Tahoma, Negrito, Tamanho 10 Forecolor: &H000080FF Height: 24 Top: 96 Width: 60 w w w. t u t o r i a i s w o r d. c o m Página 14

Os controles abaixo devem ser adicionados dentro do Frame4: TextBox8 Name: txtbuscarg Font: Tahoma, Regular, Tamanho 10 Height: 20 Top: 12 Width: 96 CommandButton6 Name: cmdpesquisarrg Caption: Pesquisar Font: Tahoma, Negrito, Tamanho 10 Forecolor: &H00404000 Height: 22 Left: 108 Top: 10 Width: 60 O controle abaixo devem ser adicionado abaixo dos Frame2 e Frame4: CommandButton7 Name: cmdfechar Caption: Fechar Font: Tahoma, Negrito, Tamanho 10 Height: 24 Left: 192 Top: 366 Width: 60 w w w. t u t o r i a i s w o r d. c o m Página 15

Imagem do Projeto do Formulário com os controles já incluídos e suas propriedades devidamente alteradas: Prévia do Formulário em tempo de execução: w w w. t u t o r i a i s w o r d. c o m Página 16

CAPÍTULO II w w w. t u t o r i a i s w o r d. c o m Página 17

CRIAÇÃO DO CÓDIGO Neste capítulo criaremos passo a passo o código que fará todo trabalho pesado por trás do formulário. Antes de adicionar os códigos ao nosso formulário devemos inserir uma tabela com uma linha e quatro colunas, como mostra imagem abaixo: Feito isso siga os passos a seguir: 1- Acesse o Editor do VBA clicando na Guia Desenvolvedor e no Grupo Código clique em Visual Basic ou através do atalho ALT + F11. w w w. t u t o r i a i s w o r d. c o m Página 18

2- No ambiente de desenvolvimento clique duas vezes em frmcadastropara exibir o formulário. w w w. t u t o r i a i s w o r d. c o m Página 19

3- Clique duas vezes sobre o formulário e no evento Initialize do formulário adicione o código abaixo: Private Sub UserForm_Initialize() 'Coloca o foco no botão Novo cmdnovo.setfocus 'Seleciona a tabela e se ela possuir apenas uma linha, 'automaticamente é adicionado uma segunda linha ActiveDocument.Tables(1).Select If ActiveDocument.Tables(1).Rows.Count = 1 Then Selection.MoveUp Extend:=wdExtend Selection.InsertRowsBelow 1 End If 'Desabilita as Caixas de Textos (Nome, RG e CPF) txtnome.enabled = False txtrg.enabled = False txtcpf.enabled = False TextBox8.Visible = False TextBox9.Visible = False 'Desabilita o botão Adicionar cmdadicionar.enabled = False 'Desabilita o botão Excluir cmdexcluir.enabled = False 'Desabilita o botão imprimir cmdimprimir.enabled = False 'Especifica a largura das colunas da ListBox (Caixa de Listagem) ListBox1.ColumnWidths = "30;190;90;70" 'Especifica o valor mínimo e o valor máximo do SpinButton SpinButton1.Min = 0 SpinButton1.Max = 32766 'valor máximo de linhas em uma tabela do Word 'Executa a macro que conta o número de registros ContaLinhas 'Executa a macro que atualiza a ListBox atualizalistbox 'Exibe sempre os últimos registro na Listbox (Caixa de Listagem) ListBox1.TopIndex = ListBox1.ListCount - 1 End Sub w w w. t u t o r i a i s w o r d. c o m Página 20

Deverá ficar como na imagem abaixo: 4- Ainda dentro do módulo do formulário criaremos algumas macros que deverão ser executadas junto ao evento clique de alguns botões como veremos a seguir: Macro ContaLinhas:Essa macro conta quantas linhas a tabela possui e o nº de linhas será exatamente igual ao nº de registros o qual será exibido na Caixa de Texto (txttotalreg) do formulário, portanto, adicione o seguinte código dentro do módulo do formulário: Sub ContaLinhas() Dim slin As String'Declara a variável slin 'Seleciona a tabela ActiveDocument.Tables(1).Select 'O valor da variável é igual a quantidade de linhas da tabela menos um slin = Selection.Tables(1).Rows.Count - 1 'O conteúdo da txtnome é igual ao valor da variável txttotalreg.text = slin End Sub w w w. t u t o r i a i s w o r d. c o m Página 21

Deverá ficar como na imagem abaixo: Macro DeletaLinhasVazias:Essa macro excluirá aquela linha vazia que é adicionado à tabela no momento em que o formulário é inicializado (executado). Sub DeletaLinhasVazias() 'Declaração de variáveis Dim stabastable Dim slinas Range Dim scel As Cell Dim scontador As Long Dim snumlinhas As Long Dim stextlin As Boolean ' Seleciona a tabela Set stab = Application.Selection.Tables(1) ' Define uma variável para o primeiro intervalo de linha Set slin = stab.rows(1).range snumlinhas = stab.rows.count Application.ScreenUpdating = False For scontador = 1 To snumlinhas StatusBar = "Row "&scontador stextlin = False For Each scel In slin.rows(1).cells If Len(sCel.Range.Text) > 2 Then stextlin = True Exit For End If Next scel If stextlinthen Set slin = slin.next(wdrow) Else slin.rows(1).delete End If Next scontador Application.ScreenUpdating = True End Sub w w w. t u t o r i a i s w o r d. c o m Página 22

Deverá ficar como na imagem abaixo: Macro autonumeracao:essa macro será responsável por fazer na primeira coluna da tabela a numeração sequencial dos registros cadastrados a partir da segunda linha da tabela. Sub autonumeracao() 'Define a variável ntabl como a 1ª tabela do documento ativo Set mtabl = ActiveDocument.Tables(1) 'Define a variável acol como a 1ª coluna da tabela do documento ativo Set acol = ActiveDocument.Tables(1).Columns(1) 'Apaga o conteúdo da 1ª coluna da tabela 'Insere a numeração sequencial a partir da segunda linha For Each acell In acol.cells acell.range.delete acell.range.insertafter Num Num = Num + 1 Next acell End Sub w w w. t u t o r i a i s w o r d. c o m Página 23