VBA FileSystemObject (FSO)

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) fonctionne de manière similaire à FileDialog, utilisé pour accéder à d'autres fichiers de l'ordinateur sur lequel nous travaillons. Nous pouvons également éditer ces fichiers signifie lire ou écrire le fichier. En utilisant FSO, nous pouvons accéder aux fichiers, travailler avec eux, modifier des fichiers et des dossiers. FSO est l'outil API important auquel nous pouvons accéder avec VBA. Dans le cadre du projet VBA, nous pouvons avoir besoin d'accéder à quelques dossiers et fichiers de notre ordinateur pour faire le travail.

Nous pouvons effectuer de nombreuses tâches en utilisant FSO comme «vérifier si le dossier est disponible ou non», créer un nouveau dossier ou des fichiers, renommer le ou les fichiers existants, obtenir la liste de tous les fichiers du dossier ainsi que les noms des sous-dossiers, et enfin, nous pouvons copier des fichiers d'un emplacement à un autre.

Même s'il existe d'autres fonctions disponibles pour travailler avec des dossiers et des fichiers, FSO est la méthode la plus simple pour travailler avec des dossiers et des fichiers en gardant le code VBA net et net.

Nous pouvons accéder à 4 types d'objets avec FileSystemObject. Voici ceux-ci.

  1. Drive: En utilisant cet objet, nous pouvons vérifier si le lecteur mentionné existe ou non, nous pouvons obtenir le chemin, le type de lecteur et la taille du lecteur.
  2. Dossier: Cet objet nous permet de vérifier si le dossier particulier existe ou non. Nous pouvons créer, supprimer, modifier, copier des dossiers à l'aide de cet objet.
  3. Fichier: Cet objet nous permet de vérifier si le fichier particulier existe ou non. Nous pouvons créer, supprimer, modifier, copier des fichiers à l'aide de cet objet vba.
  4. Text Stream: Cet objet nous permet de créer ou de lire des fichiers texte.

Toutes les méthodes ci-dessus ont leur propre méthode de travail. En fonction de nos besoins, nous pouvons choisir la méthode de chaque objet.

Comment activer FileSystemObject?

Il n'est pas facilement accessible en VBA. Étant donné que l'accès aux fichiers et aux dossiers est la tâche extérieure d'Excel, nous devons activer FileSystemObject. Pour activer, suivez les étapes ci-dessous.

Étape # 1: Accédez à Outils> Références.

Étape # 2 - Sélectionnez l'option 'Microsoft Scripting Runtime'

Faites défiler vers le bas et sélectionnez l'option «Microsoft Scripting Runtime». Après avoir sélectionné les options, cliquez sur OK.

Nous pouvons maintenant accéder au FileSystemObject (FSO) dans vba.

Créer une instance de FileSystemObject

Une fois que l'option «Microsoft Scripting Runtime» est activée à partir de la bibliothèque d'objets, nous devons créer l'instance de l'objet du système de fichiers (FSO) via le codage.

Pour créer l'instance, déclarez d'abord la variable comme FileSystemObject.

Comme nous pouvons le voir, FileSystemObject apparaît dans la liste IntelliSense dans VBA. Cela n'aurait pas été disponible avant d'activer le «Microsoft Scripting Runtime».

Puisque FSO est un objet, nous devons le définir pour créer une nouvelle instance.

Nous pouvons maintenant accéder à toutes les options de FSO (FileSystemObject).

Exemples d'utilisation de VBA FileSystemObject

Vous pouvez télécharger ce modèle Excel VBA FileSystemObject ici - Modèle Excel VBA FileSystemObject

Exemple # 1 - Trouver l'espace total du disque

Le code ci-dessous donnera l'espace total du lecteur.

Code:

 Sub FSO_Example1 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Set DriveName = MyFirstFSO.GetDrive ("C:") 'Créer un nouvel objet lecteur DriveSpace = DriveName.FreeSpace' Cela obtiendra de l'espace libre du lecteur "C" DriveSpace = DriveSpace / 1073741824 'Cela convertira l'espace libre en Go DriveSpace = Round (DriveSpace, 2)' Arrondissez l'espace total MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sous 

Décomposition du code.

Tout d'abord, nous avons créé une instance de FSO.

 Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = Nouveau FileSystemObject

Ensuite, nous avons déclaré deux variables.

 Dim DriveName As Drive Dim DriveSpace As Double 

Étant donné que DriveName est une variable Object, nous devons définir ce paramètre sur FSO, l'une des méthodes FSO. Puisque nous avons besoin des caractéristiques du lecteur, nous avons utilisé l'option Get Drive et mentionné le nom du lecteur

 Définir DriveName = MyFirstFSO.GetDrive ("C:")

Maintenant, pour une autre variable DriveSpace, nous allons attribuer la méthode d'espace libre du lecteur auquel nous accédons.

DriveSpace = DriveName.FreeSpace

À partir de maintenant, l'équation ci-dessus peut nous obtenir de l'espace libre sur le lecteur «C». Donc, pour afficher le résultat en Go, nous avons divisé l'espace libre par 1073741824

DriveSpace = DriveSpace / 1073741824

Ensuite, nous arrondirons le nombre.

DriveSpace = Rond (DriveSpace, 2)

Enfin, affichez le résultat dans Message Box.

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

Lorsque nous exécutons le code manuellement ou via la touche de raccourci F5, dans la boîte de message, nous obtiendrons l'espace libre du lecteur «C».

Ainsi, sur mon ordinateur, le lecteur C a 216,19 Go d'espace libre.

Exemple # 2 - Vérifiez si le dossier existe ou non

Pour vérifier si le dossier particulier existe ou non, utilisez le code ci-dessous.

Si le dossier mentionné est disponible, il nous montrera la boîte de message comme «Le dossier mentionné est disponible» , sinon il affichera la boîte de message VBA comme «Le dossier mentionné n'est pas disponible».

Code:

 Sub FSO_Example2 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FolderExists ("D: \ Excel Files \ VBA \ VBA Files") Then MsgBox "Le dossier mentionné est disponible" Else MsgBox "Le dossier mentionné n'est pas disponible" End If End Sub 

Exécutez ce code via la touche de raccourci Excel F5 ou manuellement, puis voyez le résultat.

Exemple # 3 - Vérifier si le fichier existe ou non

Le code ci-dessous vérifiera si le fichier mentionné est disponible ou non.

Code:

 Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists ("D: \ Excel Files \ VBA \ VBA Files \ Testing File.xlsm") Puis MsgBox "Le fichier mentionné est disponible" Else MsgBox "Le mentionné Le fichier n'est pas disponible "End If End Sub 

Exécutez ce code manuellement ou en utilisant la touche F5, puis voyez le résultat.