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.