RicardoHorta.Net - www.ricardohorta.net - Word 97: Cadê a minha barra ?
SUBMARINO: Fácil ! Rápido ! Seguro !
A minha barra de ferramentas WordArt desapareceu.
Já fui em Exibir,
Barra de Ferramentas, ativei e desativei diversas vezes WordArt.
Mas nada acontece.
- Para ativar uma barra de ferramentas, você precisa clicar na opção Exibir ( barra de menus ),
posicionar o ponteiro do mouse sobre Barra de Ferramentas, e, no menu que surgir, clicar na
barra que deseja ativar.
- Se mesmo assim, ela não aparece, você pode lançar mão do VBA.
O que é VBA ?
- Visual Basic for Application
é uma linguagem de programação, que vem junto com o Office 97, e está
disponível para todos os aplicativos (Excel, Access, PowerPoint, Word).
- Utilizando alguns comandos, você poderá retornar a sua barra de ferramentas.
- Vamos lá.
O Editor do VBA.
- Clique na opção Ferramentas, localizada na barra de menus.
- Posicione o ponteiro do mouse sobre Macro.
- No menu que surgir, selecione Editor do Visual Basic.
O Explorer de projeto.
- Dentro do Explorer de projeto, clique com o botão direito sobre ThisDocument.
- No menu que surgir, selecione Visualizar código.
O Explorer de projeto não aparece na minha tela.
- Então, você precisa ativá-lo.
- Clique na opção Exibir, localizada na barra de menus.
- No menu que surgir, ative Explorer de projeto.
- Clique com o botão direito sobre New document e selecione Visualizar código.
Criando uma macro.
- Na tela à direita, está o Editor do VBA. Digite as linhas de comando abaixo.
Public Sub Exibir()
CommandBars("Wordart").Visible = True
CommandBars("Wordart").Position = msoBarFloating
End Sub
O que esta macro faz ?
- CommandBars("WordArt").Visible = True, torna visível a barra de ferramentas.
- CommandBars("WordArt").Position = msoBarFloating, exibe a barra de ferramentas flutuando na tela.
Executando a macro.
- Clique na opção Exibir Microsoft Word da barra de ferramentas Padrão.
- Clique em Ferramentas ( barra de menus ), posicione em Macro e selecione Macros.
- Clique na macro Exibir, que você acabou de criar.
- Clique no botão Executar.
- A barra de ferramentas WordArt será exibida suspensa na tela.
SUBMARINO: Fácil ! Rápido ! Seguro !
Como numerar documentos, automaticamente, a partir de um modelo do Word ?
- O problema é onde armazenar o número sequencial.
Para solucioná-lo, nós precisamos recorrer ao VBA.
- Será criado um arquivo texto ( .txt ), onde será armazenado este número.
- Toda vez que o modelo for aberto, criando um novo documento, o Word irá abrir o arquivo texto,
ler o número que está gravado, somará mais um e escreverá no novo documento: "Nº do documento" seguido do número sequencial.
- Neste exemplo, vou criar o arquivo txt com o nome de Numerador.txt. No entanto,
sinta-se à vontade. Dê o nome que achar mais conveniente.
- Vou direcionar a gravação do arquivo para a pasta Meus documentos. Aí, também, a opção é sua.
Criando o modelo.
- Com o documento, que servirá de modelo, aberto, clique no botão Salvar, da barra de ferramentas Padrão.
- A caixa de diálogo Salvar Como será exibida.
- Na caixa Salvar como tipo, selecione Modelo de documento.
- Automaticamente, você foi "jogado" para dentro da pasta Modelos.
- Clique no botão Criar nova pasta.
- Informe um nome para a nova pasta de modelos, e clique no botão OK.
- Clique na pasta que você acabou de criar.
- E clique no botão Abrir.
- Dentro da nova pasta...
- ... informe um nome para o modelo. Vou utilizar Meu modelo ( nada como ser criativo ! )
- Clique no botão Salvar.
Mão na massa !
- Agora, é programar.
- Clique na opção Ferramentas, localizada na barra de menus.
- Posicione o ponteiro do mouse sobre Macro.
- No menu que surgir, selecione Editor do Visual Basic.
O Explorer de projeto.
- Dentro do Explorer de projeto, clique com o botão direito sobre ThisDocument.
- No menu que surgir, selecione Visualizar código.
O Explorer de projeto não aparece na minha tela.
- Então, você precisa ativá-lo.
- Clique na opção Exibir, localizada na barra de menus.
- No menu que surgir, ative Explorer de projeto.
- Clique na seta à direita da caixa Objetos e selecione Document.
- A procedure para o
evento
New é criada, automaticamente. Este evento ocorre toda vez que um documento é criado, baseado no modelo.
- Digite as linhas de comando conforme figura abaixo.
Dim Num.
- Cria uma variável chamada Num, para receber o número sequencial gravado no arquivo.
Open "C:\Meus documentos\Numerador.txt" For Input As #1
- Abre o arquivo texto Numerador.txt para leitura ( For input ).
Input #1, Num.
- Lê o número sequencial e atualiza a variável Num.
Numero = Num + 1
- A variável Numero ( esta ainda não foi criada ) é atualizada com o valor de Num + 1.
Close #1
- Fecha o arquivo Numerador.txt.
ActiveDocument.Content.InsertBefore Text:="Nº DO DOCUMENTO " & Numero
- Insere no documento ativo ( ActiveDocument ) o texto "Nº DO DOCUMENTO", seguido da variável Numero.
Atualizando o número sequencial.
- Ao fechar o documento baseado no modelo, você precisa atualizar o número sequencial
no arquivo.
- Será utilizado, então, o evento Close.
- Clique na seta à direita da caixa Procedimentos e selecione Close.
- A estrutura do evento Close é criada.
- Insira as linhas abaixo, dentro da procedure.
Open "C:\Meus documentos\Numerador.txt" For Output As #1
- Abre, novamente, o arquivo Numerador.txt, mas agora é para gravação ( For Output ).
Write #1, Numero
- Grava o valor atualizado da variável Numero.
Write #1,
- Grava uma linha em branco.
Close #1
Criando a variável Numero.
- Clique na opção Inserir, localizada na barra de menus.
- Escolha Módulo.
- Clique com o botão direito sobre Módulo1, na caixa Explorer de Projeto.
- Selecione Visualizar código.
- Digite a linha de programação abaixo, que cria a variável Numero do tipo numérico inteiro.
- Salve e feche o modelo de documento.
- Para abrir o modelo, clique na opção Arquivo.
- Clique na opção Novo
- Clique na guia correspondente à pasta que você criou.
- Selecione o modelo e clique no botão Abrir
- Neste momento, o evento New será executado. O Word irá abrir o arquivo texto, ler o número que
está gravado, somar mais 1 e inserir Nº DOCUMENTO + numero no novo documento.
- Se você, um dia, quiser alterar esta numeração, abra o arquivo txt utilizando
o Bloco de Notas, por exemplo. O número vai estar lá. Aí, basta substituí-lo.
SUBMARINO: Fácil ! Rápido ! Seguro !
Como preencher documentos, automaticamente, a partir de uma tabela do Access ?
- Na maioria das vezes, é preferível você atender às suas necessidades,
utilizando um único software. Se você precisa, por exemplo, emitir uma ficha cadastral de um cliente,
cujas informações estão em um banco de dados Access,
é preferível usar o próprio Access para emitir
esta ficha.
- No entanto, recebi um email, onde a pessoa afirma que ela realmente precisa inserir os dados
de uma tabela do Access em um documento Word.
- Vamos ( é claro, você vai fazer junto comigo ) , então, criar uma rotina para solucionar este problema.
- Os passos serão estes:
- O usuário abrirá o Word e a ficha cadastral.
- Clicando num botão personalizado, será exibida uma caixa de diálogo.
- Ele digitará o código do cliente.
- Aí, a rotina irá abrir o banco Access, pesquisando o código informado.
- Se não encontrar um cliente com este código, uma mensagem será exibida.
- Mas a pesquisa, sendo bem sucedida, retornará os dados para o documento do Word.
O banco Clientes.
- Vou aproveitar um banco chamado Clientes, que está no meu computador.
- Nele, existem 4 tabelas: Clientes-Dados-Cadastrais, Cidades, Produtos, Pedidos.
A tabela Clientes-Dados-Cadastrais.
- A pesquisa será feita na tabela de clientes, cuja estrutura é esta aí.
O documento do Word.
- O documento criado no Word é um .doc padrão, onde inseri caixas de texto ( barra de ferramentas Desenho ) para
os títulos.
- O título Ficha Cadastral é um WordArt.
- O próximo passo será montar o documento, prepará-lo para receber os dados, que estão na tabela
Access.
SUBMARINO: Fácil ! Rápido ! Seguro !
Montando o .doc.
- Antes de escrever a rotina em VBA, você precisa montar o documento.
- É preciso ativar a barra Caixa de Ferramentas de controle.
- Clique na opção Exibir ( barra de menus ),
posicione o ponteiro sobre Barra de ferramentas e clique em Caixa de Ferramentas....
- Inicialmente, ela é exibida suspensa na sua tela. Mas você pode colocá-la onde bem entender.
- Eu gosto de trabalhar com ela posicionada abaixo das barras tradicionais do Word. ( aí é questão de gosto ).
A caixa de texto.
- Pois é... Agora, você precisa definir onde serão inseridos os dados que estão no
Access.
- Você irá utilizar um objeto chamado TextBox ( Caixa de texto ), utilizado para exibir/receber dados
na tela. Não confunda este objeto com aquele botão Caixa de texto da barra Desenho.
- Para cada campo na tabela ( Nome, Endereço, Telefone, etc., etc. ) haverá uma caixa de texto.
- Clique no botão Caixa de texto da barra Caixa de ferramentas.
- Posicione-a abaixo do título Código.
Nomes para as caixas de texto.
- Cada caixa de texto inserida no documento tem nome. Se você não defini-lo,
o padrão do Office será
mantido: TextBox1, TextBox2, TextBox3 e assim por diante.
- Eu prefiro trabalhar com nomes significativos. Por exemplo: TextBox_Codigo, TextBox_Nome, etc.
- Para renomeá-los, nós temos que ativar uma caixa chamada Propriedades.
- Clique no botão Propriedades da barra Caixa de ferramentas.
- Observe: na propriedade Name está o padrão do Office ( TextBox1 ). Mas este nome não tem muito significado
para nós.
- Vamos, então, alterá-lo.
- Clique dentro da propriedade e altere-a para TextBox_Codigo.
- Vamos, agora, inserir uma outra caixa de texto para receber o nome.
Oops ! Tem algo errado. O botão não está disponível !
- Calma. Não há nada de errado.
- Como a caixa de texto do código ainda está ativada, os botões desta barra de ferramentas não ficam
disponíveis. Isto é padrão.
Tá. Muito prazer Sr. Padrão. Mas, e agora ? O que faço ?
- Você precisa clicar no documento, para tirar a seleção da caixa de texto.
- Os botões ficam disponíveis, novamente. Clique, então, em Caixa de texto...
- ...e insira-a abaixo do título Nome.
Nome deste tamanho ?!
- Calma. É preciso aumentar o tamanho da caixa.
- Posicione o ponteiro do mouse naquele ponto branco.
- Quando 2 setas aparecerem, clique com o botão esquerdo e mantendo-o pressionado...
- ... arraste-o para a direita, ...
- ...até próximo ao título Telefone.
- Na propriedade Name, altere o nome para TextBox_Nome.
- Em seguida, clique no documento para tirar a seleção da caixa TextBox_Nome.
- Para cada campo da tabela no Access, insira uma caixa de texto.
Mas atenção !
- A caixa de texto precisa estar selecionada, antes de você alterar a propriedade Name.
- Cuidado com isto. Se você vai alterar o nome da caixa Bairro, por exemplo, clique nela primeiro e,
só então, altere a propriedade.
Como eu sei que uma caixa de texto está selecionada ?
- Quando aqueles pontos brancos estão visíveis. Veja. A caixa de texto abaixo está selecionada.
- Esta, não está selecionada.
Os nomes das caixas de texto.
- Abaixo está a relação completa das caixas de texto e dos nomes que informei na propriedade
Name.
- Este nomes serão utilizados, posteriormente, quando você precisar digitar algumas linhas de código,
utilizando o VBA.
- Na 1a. coluna estão os títulos. Na 2a. estão os nomes das caixas correspondentes.
| Título |
Caixa de texto |
 |
| Código |
TextBox_Codigo |
| Nome |
TextBox_Nome |
| Telefone |
TextBox_Tel |
| Data Nascto |
TextBox_Nascto |
| Rua/Av./Pç |
TextBox_EndRes |
| Bairro |
TextBox_BairroRes |
| Cidade |
TextBox_CidadeRes |
| Empresa |
TextBox_Empresa |
| Telefone |
TextBox_TelEmp |
| Ramal |
TextBox_Ramal |
| Endereço |
TextBox_EndEmp |
| Cidade |
TextBox_CidadeEmp |
O botão Modo Estrutura.
- Se depois de definidas todas as caixas de texto, houver necessidade de alterar o tamanho ou a altura delas,
verifique se o botão Modo Estrutura está ativado ( "afundado"). Veja o ponteiro do mouse.
- Antes de alterar qualquer propriedade, é necessário ativá-lo.
SUBMARINO: Fácil ! Rápido ! Seguro !
A tela do VBA.
- Clique na opção Ferramentas, localizada na barra de menus.
- Posicione o ponteiro do mouse sobre Macro.
- No menu que surgir, selecione Editor do Visual Basic.
Ativando o Microsoft DAO 3.5 Object Library
- Clique na opção Ferramentas, localizada na barra de menus.
- No menu que surgir, selecione Referências.
- Na caixa de diálogo Referências, ative ( marque ) a opção Microsoft DAO 3.5 Object Library.
- Clique, em seguida, no botão OK.
Não encontro a opção Microsoft Dao 3.5.
- Se você não localizar a opção Microsoft DAO 3.5 Object Library na caixa Referências,
será necessário executar, novamente, o programa de instalação do Office.
- Você precisará do CD para instalar os objetos de acesso a dados do Visual Basic.
- Verifique se a versão do seu Office é Professional ou superior. A biblioteca Microsoft DAO 3.5
não é incluída na edição padrão ( Standard ).
O Explorer de projeto.
- Dentro do Explorer de projeto, clique com o botão direito sobre ThisDocument.
- No menu que surgir, selecione Visualizar código.
- Observe: você deve clicar na opção ThisDocument do documento que está sendo criado. Não utilize
a opção Normal.
O Explorer de projeto não aparece na minha tela.
- Então, você precisa ativá-lo.
- Clique na opção Exibir, localizada na barra de menus.
- No menu que surgir, ative Explorer de projeto.
SUBMARINO: Fácil ! Rápido ! Seguro !
Programando.
- Bem-vindo ao mundo da programação ! Fique tranquilo, não é um bicho
de sete cabeças.
- A vantagem da programação de um evento, é que após o trabalho inicial, você não precisa mais executar aquelas
tarefas repetitivas.
- Inicialmente, concordo, é preciso um pouco de paciência. Mas, passado o início, o meio e o fim facilitam
demais a sua vida.
- Você, que digitava os dados no Access e depois digitava-os novamente no Word, sabe muito bem
o que estou falando.
O Editor do VBA.
- Esta tela aí abaixo é a do Editor do VBA. É nela que você irá escrever os códigos de programação,
para que os dados, armazenados num banco
Access, sejam inseridos em um documento do Word.
Vamos começar com calma. Por etapas..
- E aí está a rotina ( ou melhor, o início dela ).
- Acessa_tabela é o nome da procedure.
- Public Sub são palavras reservadas do VBA. Uma procedure começa com a palavra Sub e
termina com End Sub ( tudo o que você quiser que seja executado, tem de estar entre estas
palavras ).
- A apóstrofe ( ' ) indica ser a linha um comentário. Comentários facilitam a compreensão do
código, e como padrão, são exibidos na cor verde.
Dim Meu_Banco as database...
- Dim é o comando para criação de variáveis.
- Meu_Banco e Minha_Tabela são variáveis, que irão armazenar na memória os nomes do banco de dados e
da tabela, onde será feita a pesquisa.
Set Meu_banco = OpenDatabase....
- Abre o banco de dados Clientes.mdb que está na pasta Ricardo Horta.
Isto é no meu computador. No seu, você precisa alterar o nome do banco e da pasta.
Set Minha_Tabela =....
- Acessa a tabela Clientes-Dados-Cadastrais,
que está dentro do banco Clientes.mdb.
Minha_tabela.Index = "PrimaryKey"
- Estou definindo qual índice da tabela será utilizado para pesquisar os dados.
- Nesta, existe o campo Código, definido como chave primária.
- Em Parceiros,
o campo Codigo
tem uma chave à esquerda do nome, indicando ser ele a chave da tabela.
strEntrada = InputBox...
- InputBox é uma função do VBA, que exibe a caixa de mensagem abaixo.
- O código digitado será retornado para a variável strEntrada. A pesquisa na tabela será feita com
esta variável.
Minha_Tabela.Seek...
- Minha_tabela, é a variável criada no início da procedure, e que tem o nome da tabela onde será feita
a pesquisa.
- Seek é o comando utilizado para pesquisar o código do cliente.
- "=" é um parâmetro. Eu quero que a pesquisa encontre o valor igual ao que for digitado na InputBox.
- Se você quisesse, por exemplo, um valor maior do que o digitado, passaria ">" como parâmetro."
- As outras opções são: "<=", ">=", "<".
If Minha_Tabela.NoMatch then...
- NoMatch é uma propriedade da tabela, que indica se a pesquisa foi bem sucedida.
- Quando o valor digitado não é encontrado, NoMatch fica igual a True, ou seja, não encontrou.
- Se o valor informado é encontrado pela pesquisa, NoMatch torna-se False.
MsgBox "Cliente não....
- MsgBox é uma função do VBA, que exibe a caixa de diálogo abaixo.
- Se você quisesse exibir o seu email, por exemplo, a sintaxe seria: MsgBox "seu email".
- O outro texto que vem logo em seguida, é exibido na barra de título. MsgBox "seu email", "seu nome" exibe
o email dentro da caixa e o seu nome na barra de título.
E finalmente...
- Se a propriedade NoMatch for False, significa que a pesquisa foi bem sucedida.
- Neste caso, os dados que estão na tabela, serão "jogados" para dentro das caixas de texto, colocadas
no documento do Word.
- ThisDocument é o objeto que representa do documento do Word, o .doc.
- TextBox é a caixa de texto. Cada uma com o nome
que você informou na propriedade Name.
- Value é a propriedade que contém o valor da caixa de texto. Se você quiser atualizar uma
caixa de texto com o valor 20, por exemplo, a sintaxe seria: TextBox1.Value = 20.
- Fields(0).Value retorna o conteúdo do 1º campo da tabela. Se você comparar com a estrutura da
minha tabela exemplo, verá que Fields(1) corresponde à Nome, Fields(2) ao endereço, e assim por diante.
- Executada a rotina, o documento ficará como na figura abaixo.
- Para retornar ao Word, clique no botão Exibir Microsoft Word, localizado na barra de ferramentas
Padrão.
SUBMARINO: Fácil ! Rápido ! Seguro !
Botão personalizado.
- Para executar a procedure criada no módulo anterior, você precisa inserir um botão personalizado.
- Na barra Caixa de Ferramentas, clique em Botão de comando.
- Um objeto CommandButton será inserido no documento.
- Clique nele com o botão esquerdo do mouse e mantendo-o...
- ... pressionado, arraste-o até a margem direita do documento.
- Em seguida, libere o mouse.
Mas ele vai ficar assim ?
- Não. Nós vamos alterar a cor, a fonte e até o texto.
- Como padrão, o nome do objeto é exibido na face, mas você pode ( é claro ) alterá-lo.
A propriedade Name.
- A 1º propriedade que você irá alterar é Name. Lá está Commandbutton1.
- Clique nela e altere para CommandButton_Pesquisa.
A propriedade Caption.
- Clique na propriedade Caption e digite Pesquisa.
- Neste momento, o botão deverá estar como na figura abaixo.
A propriedade BackColor.
- Para alterar a cor, clique na propriedade BackColor e na seta que aparecer.
- No menu que surgir, clique na guia Paleta e selecione a cor azul, por exemplo.
- Definida a cor do botão, falta escolher a cor da fonte.
A propriedade ForeColor.
- Esta é a propriedade utilizada para alterar a cor da fonte ( letra ).
- Clique nela, e selecione amarela.
A propriedade Font.
- Esta propriedade define o tipo e tamanho da letra, se é negrito, itálico, etc.
- Na caixa de diálogo Font, selecione Arial, Negrito e Tamanho igual a 10.
- Formatado o botão, falta associá-lo à procedure Acessa_tabela.
Assim, quando você clicar nele com o botão esquerdo do mouse, aquela caixa de diálogo InputBox ) será exibida.
Você digita o código e pronto. Os dados serão exibidos no documento.
SUBMARINO: Fácil ! Rápido ! Seguro !
Executando.
- Formatado o botão, você precisa definir a ação, ou seja, o que vai
acontecer, quando ele for clicado.
- Clique, então, com o botão direito sobre o ele.
- No menu que surgir, selecione Editar código.
- Este é o evento Click, que ocorre sempre que o botão for clicado.
- Digite Acessa_tabela, a procedure que pesquisará o código informado.
- Clique no botão Exibir Microsoft Word, para sair do ambiente do VBA e retornar ao documento.
- Clique no botão Sair do modo Estrutura.
- Para executar a procedure, você precisa sair do modo Estrutura. Este só deve ser ativado, quando
você precisar alterar o documento, seja caixa de texto, título, enfim, qualquer formatação.
- Em seguida, clique no botão Pesquisa.
- A caixa de mensagem da função InputBox
será exibida.
- Eu vou informar o código 11, que existe na minha tabela e clicar no botão OK.
- Se ele não existisse, seria exibida uma caixa de diálogo com a mensagem de Cliente não existe.
- Os dados ( fictícios ), armazenados na tabela Clientes-Dados-Cadastrais
são retornados para as caixas de texto.
Como o VBA sabe em qual caixa de texto deve jogar os dados ?
- Você informou na procedure Acessa_tabela
qual TextBox deveria ser preenchido.
SUBMARINO: Fácil ! Rápido ! Seguro !
14/03/2000 - www.ricardohorta.net - Direitos adquiridos - Autor: Ricardo Horta