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 ExcelVBA 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:
- Guida completa alla cartella di lavoro VBA
- Funzione INDIRETTA in Excel
- Funzione di conteggio VBA
- Funzione Excel XOR