VBA - Arquivos de Texto

Você também pode ler o arquivo do Excel e gravar o conteúdo da célula em um arquivo de texto usando o VBA. O VBA permite que os usuários trabalhem com arquivos de texto usando dois métodos -

  • Objeto de sistema de arquivos
  • usando comando de gravação

Objeto de sistema de arquivos (FSO)

Como o nome sugere, os FSOs ajudam os desenvolvedores a trabalhar com unidades, pastas e arquivos. Nesta seção, discutiremos como usar um FSO.

Sr. Não. Tipo e descrição do objeto
1

Drive

Drive é um objeto. Contém métodos e propriedades que permitem reunir informações sobre uma unidade conectada ao sistema.

2

Drives

Drives é uma coleção. Ele fornece uma lista das unidades conectadas ao sistema, física ou logicamente.

3

File

Arquivo é um objeto. Ele contém métodos e propriedades que permitem aos desenvolvedores criar, excluir ou mover um arquivo.

4

Files

Arquivos é uma coleção. Ele fornece uma lista de todos os arquivos contidos em uma pasta.

5

Folder

A pasta é um objeto. Ele fornece métodos e propriedades que permitem aos desenvolvedores criar, excluir ou mover pastas.

6

Folders

As pastas são uma coleção. Ele fornece uma lista de todas as pastas dentro de uma pasta.

7

TextStream

TextStream é um objeto. Ele permite que os desenvolvedores leiam e escrevam arquivos de texto.

Dirigir

Driveé um objeto que fornece acesso às propriedades de uma determinada unidade de disco ou compartilhamento de rede. As seguintes propriedades são suportadas porDrive objeto -

  • AvailableSpace
  • DriveLetter
  • DriveType
  • FileSystem
  • FreeSpace
  • IsReady
  • Path
  • RootFolder
  • SerialNumber
  • ShareName
  • TotalSize
  • VolumeName

Exemplo

Step 1- Antes de prosseguir com a criação de scripts usando FSO, devemos habilitar o Microsoft Scripting Runtime. Para fazer o mesmo, navegue até Ferramentas → Referências conforme mostrado na imagem a seguir.

Step 2 - Adicione "Microsoft Scripting RunTime" e clique em OK.

Step 3 - Adicione dados que você gostaria de escrever em um arquivo de texto e adicione um botão de comando.

Step 4 - Agora é hora de Script.

Private Sub fn_write_to_text_Click()
   Dim FilePath As String
   Dim CellData As String
   Dim LastCol As Long
   Dim LastRow As Long
  
   Dim fso As FileSystemObject
   Set fso = New FileSystemObject
   Dim stream As TextStream
  
   LastCol = ActiveSheet.UsedRange.Columns.Count
   LastRow = ActiveSheet.UsedRange.Rows.Count
    
   ' Create a TextStream.
   Set stream = fso.OpenTextFile("D:\Try\Support.log", ForWriting, True)
  
   CellData = ""
  
   For i = 1 To LastRow
      For j = 1 To LastCol
         CellData = Trim(ActiveCell(i, j).Value)
         stream.WriteLine "The Value at location (" & i & "," & j & ")" & CellData
      Next j
   Next i
  
   stream.Close
   MsgBox ("Job Done")
End Sub

Resultado

Ao executar o script, certifique-se de colocar o cursor na primeira célula da planilha. O arquivo Support.log é criado conforme mostrado na imagem a seguir em "D: \ Try".

O conteúdo do arquivo é mostrado na imagem a seguir.

Comando de escrita

Ao contrário do FSO, NÃO precisamos adicionar nenhuma referência, no entanto, NÃO seremos capazes de trabalhar com drives, arquivos e pastas. Poderemos apenas adicionar o fluxo ao arquivo de texto.

Exemplo

Private Sub fn_write_to_text_Click()
   Dim FilePath As String
   Dim CellData As String
   Dim LastCol As Long
   Dim LastRow As Long
  
   LastCol = ActiveSheet.UsedRange.Columns.Count
   LastRow = ActiveSheet.UsedRange.Rows.Count
    
   FilePath = "D:\Try\write.txt"
   Open FilePath For Output As #2
  
   CellData = ""
   For i = 1 To LastRow
      For j = 1 To LastCol
         CellData = "The Value at location (" & i & "," & j & ")" & Trim(ActiveCell(i, j).Value)
         Write #2, CellData
      Next j
   Next i
  
   Close #2
   MsgBox ("Job Done")
End Sub

Resultado

Ao executar o script, o arquivo "write.txt" é criado no local "D: \ Try" conforme mostrado na imagem a seguir.

O conteúdo do arquivo é mostrado na imagem a seguir.