Do Básico ao Avançado
Home  Tutoriais  Artigos  Contato

Salvar dados no Bloco de Notas

Neste tutorial estarei mostrando uma das formas de salvar os dados de um formulário (UserForm) diretamente no Bloco de Notas do Windows.

A título de exemplo estarei usando um formulário de Cadastro como o da imagem abaixo:

Formulário - VBA

Depois de preencher todos os campos do formulário o usuário clicará no botão Salvar no Bloco de Notas e todos os dados informados serão enviado para um arquivo .txt que será criado e nomeado tempo de execução.

Crie um formulário como este que foi mostrado na imagem acima, em seguida adicione os códigos conforme as etapas a seguir:

1- No evento Initialize do formulário adicione o código abaixo:

Private Sub UserForm_Initialize()
'Mantém o foco na primeira Caixa de Texto (Nome)
TextBox1.SetFocus

'Adiciona os item da primeira Caixa de Combinação (Sexo)
With ComboBox1
.AddItem ""
.AddItem "Masculino"
.AddItem "Feminino"
End With


'Adiciona os item da segunda Caixa de Combinação (UF)
With ComboBox2
.AddItem ""
.AddItem "AC"
.AddItem "AL"
.AddItem "AP"
.AddItem "AM"
.AddItem "BA"
.AddItem "CE"
.AddItem "DF"
.AddItem "ES"
.AddItem "GO"
.AddItem "MA"
.AddItem "MT"
.AddItem "MS"
.AddItem "MG"
.AddItem "PA"
.AddItem "PB"
.AddItem "PR"
.AddItem "PE"
.AddItem "PI"
.AddItem "RJ"
.AddItem "RN"
.AddItem "RS"
.AddItem "RO"
.AddItem "RR"
.AddItem "SC"
.AddItem "SP"
.AddItem "SE"
.AddItem "TO"
End With
End Sub

O código acima entra em ação quando o formulário é executado (iniciado), ele posiciona o ponto de inserção na primeira Caixa de Texto do formulário e preenche as duas Caixas de Combinação com os itens necessários.

Ficará como na imagem abaixo:

Formulário - VBA

2- Selecione a Caixa de Texto (Nome), clique com o botão direito do mouse sobre ela e selecione Exibir Código.

Exibir código - VBA

No evento Change adicione o seguinte código:

PrivateSub TextBox1_Change()
'Todo texto em Caixa alta (maiúscula)
TextBox1.Text = UCase(TextBox1)
End Sub


A função Ucase faz com que todo texto digitado nesta Caixa de Texto seja exibido em caixa alta (maiúscula).

3- Selecione a Caixa de Texto (Data de Nascimento), clique com o botão direito do mouse sobre ela e selecione Exibir Código.


Exibir código - VBA

Selecione o evento KeyPress como mostra a imagem abaixo:

Evento KeyPress

Adicione o seguinte código:

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

TextBox2.MaxLength = 10 ' máximo de 10 digitos
'só aceita a digitação de números
Select Case KeyAscii
Case 8, 48 To 57
If Len(TextBox2) = 2 Or Len(TextBox2) = 5 >Then
TextBox2.Text = TextBox2.Text &"/"
SendKeys "(End)", True
End If
Case Else
KeyAscii = 0
End Select
End Sub


A propriedade MaxLength está definido para 10, isso significa que esse número é o máximo de caracteres que podem ser digitados nesta Caixa de Texto (números e barras).

As demais linhas de código faz uma validação para que a Caixa de Texto aceite somente as teclas de código KeyAscii igual a 8 (tecla BackSpace) e 48 a 57 (teclas de 0 a 9). Detalhe especial neste código é a estrutura If que formata a Caixa de Texto para que as barras sejam adicionadas conforme a data é digitada.

Deverá ficar como na imagem a seguir:

Código VBA

4- Selecione o botão Salvar no Bloco de Notas, clique com o botão direito do mouse sobre ele e selecione Exibir Código.

Exibir código - VBA

No evento Click deste botão adicione o código abaixo:

Private Sub CommandButton1_Click()
'Declara as Variáveis
Dim sNome, sDtnasc, sSexo, sEndereco, sNum, sBairro, sCidade, sUF, sTel, sCel As String
Dim sNomeArquivo As String

'Define os valores das variáveis
sNome = TextBox1.Text
sDtnasc = TextBox2.Text
sSexo = ComboBox1.Text
sEndereco = TextBox3.Text
sNum = TextBox4.Text
sBairro = TextBox5.Text
sCidade = TextBox6.Text
sUF = ComboBox2.Text
sTel = TextBox7.Text
sCel = TextBox8.Text

'função CreatObject retorna o método FileSystemObject
'Scripting permite processar unidades, pastas e arquivos usando o FileSystemObject (FSO)
Set fs= CreateObject("Scripting.FileSystemObject")

'Usamos a função InputBox para que o usuário digite um nome para o arquivo .txt que será criado
sNomeArquivo = InputBox("Digite o nome do arquivo.", "Cadastro")

'Cria um arquivo de texto
Set a = fs.CreateTextFile("c:\" & sNomeArquivo & ".txt", True)

'A função WriteLine grava os dados do formulário no arquivo .txt que foi criado
a.WriteLine "DADOS PESSOAIS" & vbCrLf & vbCrLf
a.WriteLine "Nome: " & sNome
a.WriteLine "Data de Nascimento: " & sDtnasc
a.WriteLine "Sexo: " & sSexo
a.WriteLine "Endereço: " & sEndereco
a.WriteLine "Número: " & sNum
a.WriteLine "Bairro: " & sBairro
a.WriteLine "Cidade: " & sCidade
a.WriteLine "Estado: " & sUF
a.WriteLine "Telefone: " & sTel
a.WriteLine "Celular: " & sCel

'O método Close libera o Buffer e fecha o arquivo
a.Close
End Sub

O código acima cria um novo arquivo e solicita através da função InputBox que o usuário digite um nome para esse arquivo que será salvo na unidade C: com a extensão .txt e depois transfere os dados informados no formulário para este arquivo que logo em seguida é fechado.

Veja como ficará na imagem abaixo:

Código VBA

Observação: Pode ocorrer erro de execução na linha de código abaixo:

Set a = fs.CreateTextFile("c:\" & sNomeArquivo & ".txt", True)

Caso isso ocorra retire a barra invertida "\" depois de "C:", deverá ficar assim:

Set a = fs.CreateTextFile("c:" & sNomeArquivo & ".txt", True)

5-Selecione agora o botão Fechar, clique com o botão direito do mouse sobre ele e selecione Exibir Código.

Exibir código - VBA

No evento Click deste botão adicione o seguinte código:

Private Sub CommandButton2_Click()
'Fecha o Formulário
Unload Me
End Sub

Usamos a instrução UNLOAD ME para fechar apenas o formulário.

Deverá ficar como na imagem abaixo:

Código VBA

6- Para concluirmos este exemplo criaremos agora um código que deverá executar(exibir) o formulário sempre que o arquivo for aberto, portanto, na Janela de Projeto clique duas vezes em ThisDocument.

ThisDocument

No evento Open adicione o seguinte código:

Private Sub Document_Open()
'Exibe o formulário de Cadastro
frmCadastro.Show
End Sub


Ficará como na imagem abaixo:

Código VBA

7- Feche o Editor do Visual Basic para voltar ao Word, clicando no menu Arquivo e em Fechar e voltar para o Microsoft Word.

Fechar e voltar para o Microsoft Word

8- Dê um nome ao documento e salve como Documento Habilitado para Macro do Word.

Salvar como Documento habilitado para macro do Word

9- Feche o documento e abra-o novamente. Será exibido o formulário para que o usuário possa preenchê-lo, como pode ser visto na imagem abaixo:

Formulário VBA

Faça um teste preenchendo o formulário e em seguida clique no botão Salvar no Bloco de Notas.

Salvar no Bloco de Notas

Será solicitado um nome para o arquivo. Aqui neste exemplo chamaremos de Cadastro_1.

Salvar no Bloco de Notas

Agora vá até a Unidade C: e procure pelo arquivo que foi criado.

Unidade C:

Após encontrá-lo clique duas vezes sobre ele para abri-lo.

Eis o resultado:

Salvar no Bloco de Notas

Faça o download deste exemplo clicando no link abaixo:

Download





Gostou? Se quiser mais eu tenho um e-Book sobre VBA que você pode se interessar.
Confira aqui




Formação Pacote Office



eBook Word 2010 VBA

Política de Privacidade  |   © 2013 Tutoriais Word - Todos os direitos reservados