VBA FileSystemObject (FSO) | Як отримати доступ до FileSystemObject?

Excel VBA FileSystemObject (FSO)

VBA FileSystemObject (FSO) працює подібно до FileDialog, використовується для отримання доступу до інших файлів комп'ютера, на якому ми працюємо. Ми також можемо редагувати ці файли, тобто читати або писати файл. За допомогою FSO ми можемо отримувати доступ до файлів, працювати з ними, змінювати файли та папки. FSO - це важливий інструмент API, до якого ми можемо отримати доступ за допомогою VBA. Як частина проекту VBA, нам може знадобитися отримати доступ до декількох папок та файлів на нашому комп’ютері, щоб виконати роботу.

Ми можемо виконати багато завдань, використовуючи FSO, наприклад, «перевірити, доступна папка чи ні», створити нову папку або файли, перейменувати існуючу папку або файли, отримати список усіх файлів у папці, а також імена підпапок, нарешті, ми можемо копіювати файли з одного місця в інше.

Навіть існують інші функції, доступні для роботи з папками та файлами, FSO - це найпростіший метод роботи з папками та файлами, зберігаючи код VBA акуратним та прямим.

Ми можемо отримати доступ до 4 типів об’єктів за допомогою FileSystemObject. Нижче наведені ті.

  1. Диск: Використовуючи цей об’єкт, ми можемо перевірити, чи існує згаданий диск чи ні, ми можемо отримати назву шляху, тип диска та розмір диска.
  2. Папка: Цей об’єкт дозволяє нам перевірити, чи існує конкретна папка чи ні. Ми можемо створювати, видаляти, змінювати, копіювати папки, використовуючи цей об’єкт.
  3. Файл: Цей об’єкт дозволяє нам перевірити, чи існує конкретний файл чи ні. Ми можемо створювати, видаляти, модифікувати, копіювати файли, використовуючи цей об'єкт vba.
  4. Потік тексту: Цей об’єкт дозволяє нам створювати чи читати текстові файли.

Всі перераховані вище методи мають свій власний метод для роботи. Виходячи з наших вимог, ми можемо вибрати метод кожного об'єкта.

Як увімкнути FileSystemObject?

Він недоступний у VBA. Оскільки доступ до файлів і папок є зовнішнім завданням Excel, нам потрібно увімкнути FileSystemObject. Щоб увімкнути, виконайте наведені нижче дії.

Крок No1: Перейдіть до Інструменти> Посилання.

Крок No2 - Виберіть параметр 'Microsoft Scripting Runtime'

Прокрутіть униз і виберіть параметр 'Microsoft Scripting Runtime'. Після вибору параметрів натисніть кнопку ОК.

Тепер ми можемо отримати доступ до FileSystemObject (FSO) у vba.

Створіть екземпляр FileSystemObject

Як тільки з бібліотеки об’єктів увімкнено параметр „Майкрософт виконання сценаріїв”, нам потрібно створити екземпляр об’єкта файлової системи (FSO) за допомогою кодування.

Для створення екземпляра спочатку оголосіть змінну як FileSystemObject.

Як ми бачимо, FileSystemObject з’являється у списку IntelliSense у VBA. Це не було б доступним до того, як ми ввімкнемо "Майкрософт виконання сценаріїв".

Оскільки FSO є об'єктом, нам потрібно встановити його для створення нового екземпляра.

Тепер ми можемо отримати доступ до всіх параметрів FSO (FileSystemObject).

Приклади використання VBA FileSystemObject

Завантажити цей шаблон VBA FileSystemObject Excel можна тут - Шаблон VBA FileSystemObject Excel

Приклад №1 - Знайдіть загальний простір

Нижче код дасть загальний простір накопичувача.

Код:

 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' Це отримає вільний простір накопичувача "C" DriveSpace = DriveSpace / 1073741824 'Це перетворить вільний простір на ГБ DriveSpace = Round (DriveSpace, 2)' Округліть загальний простір MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Під 

Розбийте Кодекс.

Спочатку ми створили екземпляр FSO.

 Вимкнути MyFirstFSO як FileSystemObject Встановити MyFirstFSO = Новий FileSystemObject

Далі ми оголосили дві змінні.

 Dim DriveName As Drive Dim DriveSpace As Double 

Оскільки DriveName є змінною Object, нам потрібно встановити для FSO один із методів FSO. Оскільки нам потрібна характеристика накопичувача, ми скористались опцією Отримати диск і згадали назву диска

 Встановити DriveName = MyFirstFSO.GetDrive ("C:")

Тепер для іншої змінної DriveSpace ми призначимо метод вільного простору для диска, до якого ми отримуємо доступ.

DriveSpace = Ім'я Drive.FreeSpace

На сьогоднішній день вищенаведене рівняння може отримати нам вільний простір для приводу «С». Отже, щоб показати результат у Гб, ми розділили вільний простір на 1073741824

DriveSpace = DriveSpace / 1073741824

Далі ми округлимо число.

DriveSpace = Round (DriveSpace, 2)

Нарешті, покажіть результат у вікні повідомлень.

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

When we run the code manually or through shortcut key F5, then in message box we will get the free space of the drive “C”.

So, in my computer Drive C has 216.19 GB of free space memory.

Example #2 – Check Whether the Folder Exists or Not

To check whether the particular folder exists or not use the below code.

If the mentioned folder is available then it will show us the message box as “The Mentioned Folder is Available”, if not it will show the VBA message box as “The Mentioned Folder is Not Available”.

Code:

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

Run this code through the excel Shortcut key F5 or manually, then see the result.

Example #3 – Check Whether the File Exists or Not

Below code will check whether the mentioned file is available or not.

Code:

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

Run this code manually or using the F5 key, then see the result.