Articles

VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) funziona in modo simile a FileDialog, usato per accedere ad altri file del computer su cui stiamo lavorando. Possiamo anche modificare questi file significa leggere o scrivere il file. Usando FSO possiamo accedere ai file, lavorare con loro, modificare file e cartelle. FSO è l’importante strumento API a cui possiamo accedere con VBA. Come parte del progetto VBA, potremmo aver bisogno di accedere ad alcune cartelle e file nel nostro computer per portare a termine il lavoro.

Possiamo fare molti compiti usando FSO come “controllare se la cartella è disponibile o meno”, creare una nuova cartella o file, rinominare la cartella o i file esistenti, ottenere la lista di tutti i file nella cartella, e anche i nomi delle sottocartelle. Infine, possiamo copiare i file da una posizione all’altra.

Anche se ci sono altre funzioni disponibili per lavorare con cartelle e file, FSO è il metodo più semplice per lavorare con cartelle e file mantenendo il codice VBA ordinato e diritto.

Possiamo accedere a quattro tipi di oggetti con FileSystemObject. Di seguito sono quelli.

  1. Drive: Usando questo oggetto, possiamo controllare se l’unità menzionata esiste o no. Possiamo ottenere il nome del percorso, il tipo di scopo e la dimensione dell’impresa.
  2. Cartella: Questo oggetto ci permette di controllare se la particolare cartella esiste o no. Possiamo creare, cancellare, modificare, copiare cartelle utilizzando questo oggetto.
  3. File: Questo oggetto ci permette di controllare se il particolare file esiste o meno. Possiamo creare, cancellare, modificare, copiare i file utilizzando questo oggetto VBA.
  4. Text Stream: Questo oggetto ci permette di creare o leggere file di testo.

Tutti i metodi di cui sopra hanno il loro metodo di lavoro. In base alle nostre esigenze, possiamo scegliere il metodo di ogni oggetto.

Come abilitare FileSystemObject?

Non è facilmente accessibile in VBA. Poiché l’accesso a file e cartelle è il compito esterno di excel, dobbiamo abilitare il FileSystemObject. Per incoraggiare, segui i seguenti passi.

Passo #1: Vai a Strumenti>Riferimenti.

Passo #2 – Seleziona l’opzione ‘Microsoft Scripting Runtime’

Scorri giù e seleziona l’opzione ‘Microsoft Scripting Runtime’. Dopo aver scelto le opzioni, clicca su OK.

Ora possiamo accedere al FileSystemObject (FSO) in VBA.

Creare un’istanza di FileSystemObject

Una volta abilitata l’opzione ‘Microsoft Scripting Runtime’ dalla libreria degli oggetti, dobbiamo creare un File System Object (FSO) attraverso la codifica.

Corso popolare in questa categoria

Formazione VBA (3 Corsi, 12+ Progetti)
4.6 (247 voti) 3 Corsi | 12 Progetti pratici | 43+ Ore | Accesso a vita completa | Certificato di completamento

Per creare l’istanza, prima dichiara la variabile come FileSystemObject.

Come possiamo vedere, FileSystemObject appare nella lista IntelliSense di VBA. Questo non sarebbe stato disponibile prima di abilitare il “Microsoft Scripting Runtime”.

Siccome FSO è un oggetto, dobbiamo impostarlo per creare una nuova istanza.

Ora possiamo accedere a tutte le opzioni di FSO (FileSystemObject).

Esempi per usare VBA FileSystemObject

Puoi scaricare questo VBA FileSystemObject Excel Template qui – VBA FileSystemObject Excel Template

Esempio #1 – Trova lo spazio totale dell’unità

Il codice sottostante darà lo spazio totale dell’unità.

Codice:

Sub FSO_Example1() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive("C:") 'Create new drive object DriveSpace = DriveName.FreeSpace 'This will get the free space of the drive "C" DriveSpace = DriveSpace / 1073741824 'This will convert the free space to GB DriveSpace = Round(DriveSpace, 2) 'Round the total space MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"End Sub

Smontaggio del codice.

Primo, abbiamo creato un’istanza di FSO.

Dim MyFirstFSO As FileSystemObjectSet MyFirstFSO = New FileSystemObject

Poi, abbiamo dichiarato due variabili.

Dim DriveName As DriveDim DriveSpace As Double

Siccome DriveName è una variabile Oggetto, dobbiamo impostarla su FSO uno del metodo FSO. Poiché abbiamo bisogno della caratteristica dell’unità, abbiamo usato l’opzione Get Drive e menzionato il nome dell’unità.

Set DriveName = MyFirstFSO.GetDrive("C:")

Per un’altra variabile, DriveSpace, assegneremo il metodo dello spazio libero dell’unità a cui stiamo accedendo.

DriveSpace = DriveName.FreeSpace

A partire da ora, l’equazione precedente può ottenere lo spazio libero dell’unità “C.” Quindi, per mostrare il risultato in GB, abbiamo diviso lo spazio aperto per 1073741824

DriveSpace = DriveSpace / 1073741824

In seguito, arrotonderemo il numero.

DriveSpace = Round(DriveSpace, 2)

Infine, mostriamo il risultato nella Message Box.

MsgBox "Drive " & DriveName & " has " & DriveSpace & "GB"

Quando eseguiamo il codice manualmente o tramite il tasto di scelta rapida F5, allora nella message box, otterremo lo spazio libero dell’unità “C.”

Così, nel mio computer l’unità C ha 216.19 GB di spazio libero in memoria.

Esempio #2 – Controllare se la cartella esiste o no

Per controllare se una particolare cartella esiste o no, usare il codice seguente.

Se la cartella menzionata è disponibile, ci mostrerà la casella del messaggio “La cartella menzionata è disponibile”. Se no, mostrerà la casella di messaggio VBA come “The Mentioned Folder is Not Available.”

Codice:

Sub FSO_Example2() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists("D:\Excel Files\VBA\VBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End IfEnd Sub

Esegui questo codice attraverso il tasto di scelta rapida F5 di Excel o manualmente, quindi vedi il risultato.

Esempio #3 – Controlla se il file esiste o no

Il codice seguente controllerà se il file menzionato è disponibile o no.

Codice:

Sub FSO_Example3() Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists("D:\Excel Files\VBA\VBA Files\Testing File.xlsm") Then MsgBox "The Mentioned File is Available" Else MsgBox "The Mentioned File is Not Available" End IfEnd Sub

Esegui questo codice manualmente o usando il tasto F5, poi vedi il risultato.

Articoli consigliati

Questa è stata una guida a VBA FileSystemObject. Qui impariamo come usare FileSystemObject (FSO) in VBA per accedere a file e cartelle dal computer ed esempi pratici e un modello excel scaricabile. Di seguito puoi trovare alcuni articoli utili su Excel VBA –

  • Parola chiaveME in VBA
  • Funzione StrComp in VBA
  • StrConv Funzione in VBA
  • VBA IIF
0 Azioni

Formazione VBA (3 Corsi, 12+ Progetti)

  • 3 Corsi
  • 12 Progetti pratici
  • 43+ Ore
  • Accesso completo a vita
  • Certificato di completamento

IMPARA DI PIÙ >>

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato.