Introduzione a FileSystemObject

Perché usiamo VBA? Usiamo VBA per automatizzare i nostri compiti. Normalmente in Excel lavoriamo solo con dati presenti in righe e colonne che sono sotto forma di tabelle o qualcosa del genere. Ma per quanto riguarda i file e le cartelle che non fanno parte di Excel? E se avessimo bisogno di usare quei dati da qualsiasi file come possiamo accedervi. È qui che FileSystemObject è utile.

FileSystemObject o FSO viene utilizzato per accedere al sistema di file dal nostro computer. Usando questo possiamo avere accesso a tutte le cartelle di file che abbiamo presente sul computer su cui stiamo lavorando. Fondamentalmente FSO è uno strumento API utilizzato per accedere ad altri file. Ora, questo non è presente per impostazione predefinita in VBA che impareremo più avanti in questo articolo. Cerchiamo innanzitutto di capire cos'è l'UST. In precedenza in VBA, avevamo la funzione DIR a cui si faceva riferimento per accedere ad altri file e cartelle da un computer. La codifica per la funzione DIR era molto complessa con cui lavorare. Ma in UST le cose sono diverse.

Ora ci sono quattro tipi di oggetti a cui possiamo accedere tramite FSO e sono i seguenti:

  • Unità: utilizzata per accedere a un'unità menzionata.
  • Cartella: consente di accedere a una cartella menzionata.
  • File: utilizzato per accedere a un file menzionato.
  • Flusso di testo: con questo oggetto, possiamo leggere o scrivere un file di testo.

Ciascuno degli oggetti sopra elencati ha diversi metodi per usarli. Ad esempio, se vogliamo copiare un file, useremo il metodo CopyFile o elimineremo una cartella, useremo il metodo DeleteFolder e così via.

Come ho discusso in precedenza, FSO non è presente per impostazione predefinita in VBA, esistono due metodi per abilitare FSO in VBA.

  • Il primo metodo consiste nell'impostare il riferimento.
  • Il secondo metodo è fare riferimento alla libreria dal codice.

Mentre il secondo metodo è più complesso, si consiglia sempre di utilizzare il primo metodo che è molto semplice. Seguiamo questi passaggi di base.

In VBA, vai alla scheda Strumenti e poi vai a Riferimenti,

Verrà visualizzata una finestra della procedura guidata, selezionare Microsoft Scripting Runtime come mostrato di seguito e premere OK.

Ora possiamo accedere a FSO in VBA. Ora usiamo questo attraverso alcuni esempi e impariamo a riguardo.

Come utilizzare VBA FileSystemObject in Excel?

Di seguito sono riportati i diversi esempi per utilizzare la funzione VBA FileSystemObject in Excel

Puoi scaricare questo modello VBA FileSystemObject Excel qui - Modello VBA FileSystemObject Excel

VBA FileSystemObject - Esempio n. 1

Prima di iniziare a utilizzare FSO in Vba, impariamo come creare istanze in VBA.

Passaggio 1: nel modulo secondario creare una procedura secondaria,

Codice:

 Sub Newfso () End Sub 

Passaggio 2: dichiara una variabile come FileSystemObject come mostrato di seguito,

Codice:

 Sub Newfso () Dim A As FileSystemObject End Sub 

Passaggio 3: ora dobbiamo creare un'istanza poiché FSO è un oggetto utilizzando l'istruzione SET come mostrato di seguito,

Codice:

 Sub Newfso () Dim A As FileSystemObject Set A = Nuovo FileSystemObject End Sub 

Ora, questa affermazione ci consentirà di creare o modificare file o cartelle utilizzando FSO.

Passaggio 4: ora possiamo vedere la funzione IntelliSense dopo aver abilitato FSO. Utilizzare l'operatore punto come segue,

Codice:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject A. End Sub 

Ci ha dato varie opzioni usando la funzione IntelliSense. Questo è il modo in cui creiamo istanze utilizzando FSO.

VBA FileSystemObject - Esempio n. 2

Ora da quando abbiamo creato un'istanza nell'esempio 1, spostiamoci ulteriormente per usarla e controllare se esiste un file o una cartella.

Passaggio 1: dopo aver creato un nuovo FileSystemObject, utilizzare l'istruzione IF per determinare se esiste una cartella o meno come segue,

Codice:

 Sub Newfso () Dim A come FileSystemObject Set A = New FileSystemObject Se A.FolderExists ("C: \ Users \ Public \ Project") Quindi End Sub 

Passaggio 2: se la cartella esiste vogliamo visualizzare la cartella esiste e in caso contrario vogliamo che la cartella non esista.

Codice:

 Sub Newfso () Dim A come FileSystemObject Set A = New FileSystemObject Se A.FolderExists ("C: \ Users \ Public \ Project") Quindi MsgBox "La cartella esiste" Else MsgBox "La cartella non esiste" End If End Sub 

Passaggio 3: ora esegui il codice sopra e vedi il risultato come segue,

La cartella esiste sul mio desktop, quindi riceviamo il messaggio che esiste la cartella.

VBA FileSystemObject - Esempio n. 3

Ora da quando abbiamo discusso che FSO ha vari oggetti come le unità. Scopriamo quanto spazio ho a disposizione nel mio E drive.

Passaggio 1: iniziare con un'altra sottoprocedura come segue,

Codice:

 Sottotitoli Newfso1 () End Sub 

Passaggio 2: ora dichiarare una variabile come FileSystemObject e impostarla su una nuova istanza come segue,

Codice:

 Sub Newfso1 () Dim A As FileSystemObject Set A = Nuovo FileSystemObject End Sub 

Passaggio 3: Ora poiché stiamo utilizzando la proprietà Drive dichiarare una variabile come tipo Drive e una variabile doppia per contenere i dati per lo spazio come segue,

Codice:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double End Sub 

Passaggio 4: ora creiamo un nuovo oggetto drive come mostrato di seguito,

Codice:

 Sub Newfso1 () Dim A come FileSystemObject Set A = Nuovo FileSystemObject Dim D Come unità, Dspace come doppio set D = A.GetDrive ("C:") End Sub 

Questo è uno dei metodi UST che stiamo usando per accedere all'unità.

Passaggio 5: utilizzeremo un altro metodo FSO per ottenere lo spazio libero sull'unità e memorizzarlo nella variabile definita per l'archiviazione dello spazio sull'unità,

Codice:

 Sub Newfso1 () Dim A come FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub 

Passaggio 6: ora calcoliamo lo spazio in GB come segue,

Codice:

 Sub Newfso1 () Dim A come FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) End Sub 

Passo 7: ora visualizza il valore memorizzato per Spazio su disco usando la funzione msgbox come segue,

Codice:

 Sub Newfso1 () Dim A come FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace As Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox "The Drive" & D & "presenta" & Dspace e "GB free Space" End Sub 

Passaggio 8: esegui il codice sopra per scoprire il risultato qui sotto,

VBA FileSystemObject - Esempio n. 4

Ora creiamo una nuova cartella in una posizione specificata usando FSO.

Passaggio 1: ricominciamo da capo con un'altra sottoprocedura come segue,

Codice:

 Sottotitoli Newfso2 () End Sub 

Passaggio 2: seguiamo gli stessi passaggi e creiamo un'istanza come segue,

Codice:

 Sub Newfso2 () Dim A As FileSystemObject Set A = Nuovo FileSystemObject End Sub 

Passaggio 3: ora utilizzeremo il metodo Crea cartella per creare una nuova cartella in un percorso specificato,

Codice:

 Sub Newfso2 () Dim A come FileSystemObject Set A = New FileSystemObject A.CreateFolder ("C: \ Users \ Public \ Project \ FSOExample") End Sub 

Passaggio 4: eseguire il codice precedente e visualizzare il risultato sul desktop come segue,

Abbiamo creato con successo una nuova cartella nella posizione specificata.

Cose da ricordare in VBA FileSystemObject

  • UST è uno strumento per le applicazioni API.
  • L'FSO non è disponibile per impostazione predefinita in VBA.
  • Con FSO possiamo creare, modificare o leggere file e cartelle in un computer.
  • Possiamo anche usare FSO per le nostre unità di rete.

Articoli consigliati

Questa è una guida a VBA FileSystemObject. Qui discutiamo come usare VBA FileSystemObject in Excel insieme ad alcuni esempi pratici e template Excel scaricabili. Puoi anche consultare i nostri altri articoli suggeriti:

  1. Guida completa alla cartella di lavoro VBA
  2. Funzione INDIRETTA in Excel
  3. Funzione di conteggio VBA
  4. Funzione Excel XOR

Categoria: