Gerar Arquivo TXT com VBA Excel

Veja como gerar arquivo texto txt com vba no Excel passo-a-passo, código pronto, exemplo para download e vídeo-aula.

Planilha Exemplo Gerar TXT

Esta planilha possui uma estrutura com alguns campos, cabeçalho e dados na planilha.

A intenção é que exportemos estes dados em arquivos texto separado em CSV, mas pode fazer alterações no código, como no vídeo no topo e colocar outros tipos de delimitadores ou até deixar sem delimitadores.

Gerar Arquivo Texto Excel com VBA

Para gerar o arquivo texto à partir de uma tabela criamos um formulário aonde definimos o intervalo, a pasta aonde salvar o arquivo e o nome do arquivo que iremos criar.

Ao clicar no botão Criar arquivo texto o intervalo será gerado com todos os dados que estão no intervalo em um arquivo com o nome definido e na pasta.

Para utilizar este formulário em outras planilhas pode seguir o seguinte procedimento.

Criar Sistema de Gerar Arquivo Texto

Para instalar o formulário de gerar sistema de arquivo texto você deve Habilitar Guia Desenvolvedor e então clique na guia Desenvolvedor.

Então clique com o botão direito na árvore de objetos em Projeto e clique em Importar arquivo…, poderá selecionar então o formulário que está no download ao final do artigo.

Desta forma ficará como temos abaixo.

Criar um arquivo txt VBA Excel 6

Após isso, clique em Inserir->Módulo no VBE e insira este código VBA:

Public Sub lsGerar()
    frmGerar.Show
End Sub

Este código irá chamar o formulário de geração de arquivo texto, pode voltar ao Excel fechando o VBE e clique em Desenvolvedor e no botão Macros, selecione lsGerar.

Isso irá abrir o formulário e poderá utilizar ele para gerar um arquivo txt separado com “;” ou pode também editar o código como no vídeo.

Para colocar o código fonte em um outro botão, clique em inserir imagem e clique com o botão direito e em atribuir macro, selecionando o nome da macro lsGerar que será executado ao clicar na imagem.

Código VBA para Selecionar Pasta Excel

No código fonte temos uma função para selecionar a pasta no Excel e outra para gerar o arquivo texto automaticamente.

O código para selecionar uma pasta e colocar no campo de nome da pasta é:

Private Sub txtPasta_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    On Error GoTo TratarErro

    Dim fdlg As FileDialog
    
    Set fdlg = Application.FileDialog(msoFileDialogFolderPicker)
    
    If fdlg.Show = -1 Then
        txtPasta.Text = fdlg.SelectedItems(1)
    Else
        MsgBox "Não foi selecionada uma pasta."
    End If
    
Sair:
    Exit Sub
TratarErro:
    MsgBox "Houve um erro na aplicação: " & Err.Description & " - " & Err.Number
    GoTo Sair
End Sub

Código VBA para Criar Arquivo Texto Excel

O código VBA para criar arquivo texto no Excel segue abaixo e pode ser aplicado ou alterado.

Private Sub cmdGerar_Click()
    On Error GoTo TratarErro
    
    Dim llArquivo   As Long
    Dim lstrCaminho As String
    Dim lRegiao     As Range
    Dim lTexto      As String
    Dim lLinhas     As Long
    Dim lLinha      As Long
    Dim lColunas    As Long
    Dim lColuna     As Long
    
    lstrCaminho = txtPasta.Text & "\" & txtNome.Text
    
    Set lRegiao = Range(frmGerar.refIntervalo)
    
    lLinhas = lRegiao.Cells.Rows.Count
    lColunas = lRegiao.Columns.Count
    
    'Verificar se o arquivo existe
    If Dir(lstrCaminho) = "" Then
        
        'Cria endereço de memória e abre o arquivo txt
        llArquivo = FreeFile
        Open lstrCaminho For Output As #llArquivo
        
        'Insere os dados de cada célula
        For lLinha = 1 To lLinhas
            lTexto = ""
            
            For lColuna = 1 To lColunas
                If lColuna = 1 Then
                    lTexto = lRegiao.Cells(lLinha, lColuna).Value
                Else
                    lTexto = lTexto & ";" & lRegiao.Cells(lLinha, lColuna).Value
                End If
            Next lColuna
            
            Print #llArquivo, lTexto
        Next lLinha
    Else
        MsgBox "Arquivo já existe"
        GoTo Sair
    End If
    
    MsgBox "Arquivo criado em: " & lstrCaminho
    
Sair:
    Close #llArquivo
    Exit Sub
TratarErro:
    MsgBox "Houve um erro na aplicação: " & Err.Description & " - " & Err.Number
    GoTo Sair
End Sub

Se quiser pode alterar a linha lTexto = lTexto & “;” & lRegiao.Cells(lLinha, lColuna).Value trocando o campo “;” por outro delimitador.

Para baixar a planilha pode clicar no botão em Download Planilha Gerar Arquivo TXT com VBA Excel.

Download Planilha Gerar Arquivo TXT com VBA Excel

Clique no botão abaixo para realizar o  download do Excel de exemplo:

Baixe a planilha


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel