0227 – Manipulando arquivos txt via VBA – Parte 1

Se o Excel possui tantas funcionalidades, por que utilizar arquivos txt?

  1. Muitos usuários necessitam obter informações em arquivos txt gerados a partir de sistemas. Esses arquivos normalmente contém muito “lixo” que precisa ser eliminado para que as informações possam ser acessadas. Esse é conjunto de tarefas repetitivas que podem ser automatizadas via VBA.
  2. Quem não dispõe de bancos de dados como Access em suas máquinas, pode utilizar arquivos txt para armazenar grandes quantidades de dados. Os arquivo txt podem ser manipulados por meio de comandos SQL o que os torna, em alguns casos, uma alternativa interessante
  3. Aqueles que possuem bancos de dados, podem utilizar arquivos txt para intermediar informações entre o Excel e esses bancos de dados.

Vejamos outras razões pelas quais é vantajoso aprender a manipular arquivos txt via VBA:

  • Armazenar mais dados do que o limite de linhas do Excel. Mesmo que as versões mais recentes tenham mais de 1 milhão de linhas de armazenamento, torna-se inviável trabalhar com arquivos com tantos registros.
  • Reduzir o tamanho dos arquivos utilizados. Para efeito comparativo, criei um arquivo com 4 colunas e 100.000 linhas. Na versão em forma de planilha, o arquivo ficou com um tamanho de 3,5 MB, ao passo que a versão txt ficou com 2,0 MB.
  • Reduzir a possibilidade de perda de dados. Quem já trabalhou com planilhas muito grandes sabe que é frequente que o arquivo se corrompa, o que não acontece com os arquivos txt.

Ao longo dos artigos desta série, vamos mostrar como é possível utilizar macros para manipular os arquivos txt e seu conteúdo, integrando mais uma funcionalidade importante ao seu conhecimento sobre o Excel.

Hoje veremos como é possível criar, copiar e deletar arquivos txt, utilizando comandos VBA.

 

Sub CriarArquivoTXT()
'Neste exemplo será criado um arquivo txt na mesma pasta que contém
'o arquivo do Excel no qual for inserido o código

'Declaração das variáveis
Dim strTextFile As String    'Nome completo do arquivo txt
Dim strCopyFile As String    'Nome completo da cópia do arquivo txt
Dim objFileSystem As Object  'Instância do objeto File System
Dim objTexFile As Object     'Arquivo txt a ser criado
Dim intMsgBox As Integer     'Resultado da seleção da MsgBox
Dim strMsgTitle As String    'Título da MsgBox
Dim strMsgPrompt As String   'Texto da MsgBox

'Definir o nome do arquivo a ser criado
strTextFile = ThisWorkbook.Path & "/ARQUIVO_EXEMPLO.TXT"

'Criar uma instância do FileSystemObject que permite acesso ao
'sistema de arquivos do computador
Set objFileSystem = CreateObject("Scripting.FileSystemObject")

'Criar o arquivo txt
Set objTexFile = objFileSystem.CreateTextFile(strTextFile, True)

'Definir o local e o nome do arquivo cópia
strCopyFile = "C:\USER\ARQUIVO_EXEMPLO.TXT"

'Utilizar o objeto objFileSystem para gerar a cópia ou mover
'Observem a sintaxe, informando o nome do arquivo de origem strTextFile
'seguido do nome do arquivo de destino (strCopyFile) e do argumento
'opcional [overwrite] para sobrescrever caso já exista o arquivo de
'destino. Nesse exemplo, definimos como True

Call objFileSystem.CopyFile(strTextFile, strCopyFile, True)

'Perguntar ao usuário se deseja apagar o arquivo original
strMsgTitle = "Apagar arquivo original?"
strMsgPrompt = "Foi criada uma cópia do arquivo " & strTextFile
strMsgPrompt = strMsgPrompt & vbLf & "Deseja pagar o arquivo original?"
intMsgBox = MsgBox(strMsgPrompt, vbYesNo, strMsgTitle)

'Caso seja selecionado Sim, o arquivo é apagado
If intMsgBox = 6 Then
'Fechar o arquivo original
objTexFile.Close
'Eliminar o arquivo original
Kill strTextFile
End If
End Sub

E aí gostaram?

Aguardem as próximas partes deste artigo.

Leia também

0177-Dica VBA: Transformando um intervalo do Excel em código HTML

 

Anúncios

In Excel We Trust

Marcado com: , , , ,
Publicado em Excel, Nível: Avançado

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: