VBA FileSystemObject (UST)

FileSystemObject VBA di Excel (UST)

VBA FileSystemObject (FSO) funziona in modo simile a FileDialog, utilizzato per accedere ad altri file del computer su cui stiamo lavorando. Possiamo anche modificare questi file significa leggere o scrivere il file. Usando UST possiamo accedere ai file, lavorarci sopra, 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 svolgere molte attività utilizzando FSO come "per verificare se la cartella è disponibile o meno", creare una nuova cartella o nuovi file, rinominare la cartella oi file esistenti, ottenere l'elenco di tutti i file nella cartella e anche i nomi delle sottocartelle e infine, possiamo copiare file da una posizione a un'altra.

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

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

  1. Drive: Usando questo oggetto possiamo verificare se l'unità menzionata esiste o meno, possiamo ottenere il nome del percorso, il tipo di unità e la dimensione dell'unità.
  2. Cartella: questo oggetto ci permette di verificare se la cartella particolare esiste o meno. Possiamo creare, eliminare, modificare, copiare cartelle utilizzando questo oggetto.
  3. File: questo oggetto ci consente di verificare se il file specifico esiste o meno. Possiamo creare, eliminare, modificare, copiare file utilizzando questo oggetto vba.
  4. Text Stream: questo oggetto ci permette di creare o leggere file di testo.

Tutti i metodi precedenti hanno il loro metodo con cui lavorare. 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 è l'attività esterna di Excel, è necessario abilitare FileSystemObject. Per abilitare seguire i passaggi seguenti.

Passaggio 1: vai su Strumenti> Riferimenti.

Passaggio 2: selezionare l'opzione "Microsoft Scripting Runtime"

Scorri verso il basso e seleziona l'opzione "Microsoft Scripting Runtime". Dopo aver selezionato le opzioni fare clic su OK.

Ora possiamo accedere a FileSystemObject (FSO) in vba.

Crea un'istanza di FileSystemObject

Una volta che l'opzione "Microsoft Scripting Runtime" è abilitata dalla libreria Oggetti, dobbiamo creare l'istanza di File System Object (FSO) tramite la codifica.

Per creare l'istanza, dichiarare prima la variabile come FileSystemObject.

Come possiamo vedere FileSystemObject appare nell'elenco IntelliSense in VBA. Questo non sarebbe stato disponibile prima di abilitare il "Microsoft Scripting Runtime".

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

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

Esempi per utilizzare VBA FileSystemObject

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

Esempio n. 1: trova lo spazio su disco totale

Il codice sottostante fornirà 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:") 'Crea nuovo oggetto drive DriveSpace = DriveName.FreeSpace' Questo otterrà lo spazio libero dell'unità "C" DriveSpace = DriveSpace / 1073741824 "Questo convertirà lo spazio libero in GB DriveSpace = Round (DriveSpace, 2)" Round the total space MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sub 

Ripartizione del codice.

Innanzitutto, abbiamo creato un'istanza di UST.

 Dim MyFirstFSO As FileSystemObject Imposta MyFirstFSO = New FileSystemObject

Successivamente, abbiamo dichiarato due variabili.

 Dim DriveName As Drive Dim DriveSpace As Double 

Poiché DriveName è una variabile Object, dobbiamo impostarla su FSO, uno dei metodi FSO. Poiché abbiamo bisogno delle caratteristiche dell'unità, abbiamo utilizzato l'opzione Ottieni unità e menzionato il nome dell'unità

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

Ora 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 di cui sopra può farci liberare spazio sull'unità "C". Quindi per mostrare il risultato in GB abbiamo diviso lo spazio libero per 1073741824

DriveSpace = DriveSpace / 1073741824

Successivamente, arrotonderemo il numero.

DriveSpace = Round (DriveSpace, 2)

Infine, mostra il risultato in Message Box.

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

Quando eseguiamo il codice manualmente o tramite il tasto di scelta rapida F5, nella finestra del messaggio avremo lo spazio libero del disco "C".

Quindi, nel mio computer, l'unità C ha 216,19 GB di memoria di spazio libero.

Esempio n. 2: controlla se la cartella esiste o meno

Per verificare se la cartella particolare esiste o meno, utilizzare il codice seguente.

Se la cartella menzionata è disponibile, ci mostrerà la finestra di messaggio come "La cartella menzionata è disponibile" , in caso contrario mostrerà la finestra di messaggio VBA come "La cartella menzionata non è disponibile".

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 Mention" End If End Sub 

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

Esempio n. 3: controlla se il file esiste o meno

Il codice sottostante verificherà se il file menzionato è disponibile o meno.

Codice:

 Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = Nuovo FileSystemObject If MyFirstFSO.FileExists ("D: \ Excel Files \ VBA \ VBA Files \ Testing File.xlsm") Allora MsgBox "Il file menzionato è disponibile" Else MsgBox " Il file non è disponibile "End If End Sub 

Esegui questo codice manualmente o utilizzando il tasto F5, quindi guarda il risultato.