VBA - File di testo

Puoi anche leggere il file Excel e scrivere il contenuto della cella in un file di testo utilizzando VBA. VBA consente agli utenti di lavorare con file di testo utilizzando due metodi:

  • Oggetto File System
  • utilizzando il comando di scrittura

Oggetto File System (UST)

Come suggerisce il nome, gli FSO aiutano gli sviluppatori a lavorare con unità, cartelle e file. In questa sezione, discuteremo come utilizzare un UST.

Sr.No. Tipo di oggetto e descrizione
1

Drive

Drive è un oggetto. Contiene metodi e proprietà che consentono di raccogliere informazioni su un'unità collegata al sistema.

2

Drives

Drives è una collezione. Fornisce un elenco delle unità collegate al sistema, fisicamente o logicamente.

3

File

Il file è un oggetto. Contiene metodi e proprietà che consentono agli sviluppatori di creare, eliminare o spostare un file.

4

Files

File è una raccolta. Fornisce un elenco di tutti i file contenuti in una cartella.

5

Folder

La cartella è un oggetto. Fornisce metodi e proprietà che consentono agli sviluppatori di creare, eliminare o spostare cartelle.

6

Folders

Folders è una raccolta. Fornisce un elenco di tutte le cartelle all'interno di una cartella.

7

TextStream

TextStream è un oggetto. Consente agli sviluppatori di leggere e scrivere file di testo.

Guidare

Driveè un oggetto che fornisce l'accesso alle proprietà di una particolare unità disco o condivisione di rete. Le seguenti proprietà sono supportate daDrive oggetto -

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

Esempio

Step 1- Prima di procedere allo scripting utilizzando FSO, dovremmo abilitare Microsoft Scripting Runtime. Per fare lo stesso, vai su Strumenti → Riferimenti come mostrato nello screenshot seguente.

Step 2 - Aggiungi "Microsoft Scripting RunTime" e fai clic su OK.

Step 3 - Aggiungi i dati che desideri scrivere in un file di testo e aggiungi un pulsante di comando.

Step 4 - Ora è il momento di 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

Produzione

Quando si esegue lo script, assicurarsi di posizionare il cursore nella prima cella del foglio di lavoro. Il file Support.log viene creato come mostrato nella seguente schermata in "D: \ Try".

I contenuti del file sono mostrati nella seguente schermata.

Scrivi comando

A differenza di FSO, NON è necessario aggiungere alcun riferimento, tuttavia NON saremo in grado di lavorare con unità, file e cartelle. Saremo in grado di aggiungere semplicemente lo stream al file di testo.

Esempio

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

Produzione

Dopo aver eseguito lo script, il file "write.txt" viene creato nella posizione "D: \ Try" come mostrato nello screenshot seguente.

Il contenuto del file è mostrato nella seguente schermata.