Como criar e gravar em um arquivo de texto usando vba?

Para criar texto usando código VBA, você deve usar o método CreateTextFile. Este método permite definir um local onde deseja criá-lo. Este método possui sintaxe onde você pode especificar se deseja sobrescrever o arquivo no local e especificar se o arquivo será criado como um arquivo Unicode ou ASCII.

Crie um arquivo de texto com VBA

Use as seguintes etapas:

  1. Primeiro, você precisa usar um objeto FileSystemObject ou Folder para usar com o método.
    create-a-text-fie-using-vba
  2. Depois disso, você precisa criar outro objeto usando o método CreateTextFile.
    create-text-file-method
  3. Neste código, usamos TRUE para substituir se já existir um arquivo com o mesmo nome na pasta.
  4. Ao final, ao executar esta macro, crie um novo arquivo de texto na pasta da seguinte forma.
 Sub create_text_file() 'object to use as folder Dim fld As Object Set fld = CreateObject("Scripting.FileSystemObject") 'using create text file method Dim myFile As Object Set myFile = fld.CreateTextFile("C:UsersDellDesktopmyFoldermyTextFile.txt", True) End Sub

Sintaxe do método CreateTextFile

 CreateTextFile (filename, [ overwrite, [ unicode ]])
  • filename: Caminho e nome do arquivo que você deseja criar.
  • overwrite: booleano para definir se deseja sobrescrever o arquivo (se ele já existir) (opcional).
  • unicode: booleano para definir se o arquivo será criado como arquivo Unicode ou ASCII (opcional).

Escreva em um arquivo de texto usando VBA

Você pode usar duas instruções para gravar dados em um arquivo de texto:

  1. Escrever: Com esta instrução você pode gravar dados em um arquivo de texto onde haverá vírgulas entre valores, aspas em torno de strings e sinais # em torno de datas.
    write-statement
  2. Imprimir: Com esta instrução você pode gravar dados em um arquivo de texto com a aparência exata que você tem na planilha Excel.
    print-statement

Agora veremos exemplos de ambas as instruções e entenderemos como escrever código completo para gravar em um arquivo de texto. Mas antes disso, você precisa entender algumas terminologias para escrever o código da maneira que desejar.

  • Para saída: você pode usar este comando quando quiser gravar dados ou modificar dados em um arquivo de texto.
  • Para entrada: com este comando você pode extrair dados de um texto, mas não poderá modificar e adicionar dados ao arquivo.
  • Para adicionar: Este comando ajuda a adicionar novos dados na parte inferior do arquivo de texto.
  • FreeFile: Você pode usar isso para definir um número de arquivo que não é usado para o arquivo de texto que você deseja usar, para que você possa consultá-lo.

Agora vamos escrever um código para inserir dados em um arquivo de texto.

  1. Primeiro, você precisa declarar as variáveis a serem usadas no código.
    declare-variables
  2. Depois disso, você precisa definir o intervalo que deseja gravar no arquivo de texto. E use o número de células no intervalo como contador para o loop, definindo-o como uma variável.
    define-the-range
  3. Em seguida, você precisa definir o endereço do arquivo de texto onde deseja adicionar os dados.
    define-the-address-of-the-text-file
  4. A partir daí, você precisa declarar o comando “FreeFile” em uma variável para obter o número do arquivo.
    freefile-command
  5. Agora você precisa criar usando o comando “Saída” porque precisa adicionar dados ao arquivo.
    output-command
  6. Finalmente, você precisa usar o loop “For Next” para obter os valores do intervalo um por um e adicioná-los ao arquivo.
    for-next-loop-to-get-values
  7. Além disso, você precisa usar o comando close para fechar o arquivo de texto depois que os dados forem adicionados a ele.
    close-command
  8. Por fim, quando você executa esta macro, ela adiciona dados do intervalo A1:A13 ao arquivo de texto que você salvou no caminho mencionado.
    run-the-macro

Nota: Certifique-se de alterar o caminho do arquivo de texto do código de acordo com o caminho que você possui em seu sistema.

 Option Explicit Sub data_to_text_file() 'variables that you need to use in the code Dim TextFile As Integer Dim iCol As Integer Dim myRange As Range Dim cVal As Range Dim i As Integer Dim myFile As String 'define the range that you want to write Set myRange = Range("A1:A13") iCol = myRange.Count 'path to the text file (MAKE SURE TO CHANGE IT) myFile = "C:UsersDellDesktopNewFoldertextfile.txt" 'define FreeFile to the variable file number TextFile = FreeFile 'using append command to add text to the end of the file Open myFile For Output As TextFile 'loop to add data to the text file For i = 1 To iCol Print #TextFile, Cells(i, 1), Print #TextFile, Cells(i, 2) Next i 'close command to close the text file after adding data Close #TextFile End Sub

Adicione um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *