VBA FileSystemObject (FSO) | Как получить доступ к FileSystemObject?

Объект файловой системы Excel VBA (FSO)

VBA FileSystemObject (FSO) работает аналогично FileDialog, используемому для доступа к другим файлам компьютера, над которым мы работаем. Мы также можем редактировать эти файлы, читая или записывая файл. Используя FSO, мы можем получать доступ к файлам, работать с ними, изменять файлы и папки. FSO - важный инструмент API, к которому мы можем получить доступ с помощью VBA. В рамках проекта VBA нам может потребоваться доступ к нескольким папкам и файлам на нашем компьютере, чтобы выполнить работу.

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

Даже если есть другие функции для работы с папками и файлами, FSO - самый простой метод работы с папками и файлами, сохраняя аккуратный и понятный код VBA.

Мы можем получить доступ к 4 типам объектов с помощью FileSystemObject. Вот те.

  1. Диск: с помощью этого объекта мы можем проверить, существует ли упомянутый диск или нет, мы можем получить путь, тип диска и размер диска.
  2. Папка: этот объект позволяет нам проверить, существует ли конкретная папка или нет. Мы можем создавать, удалять, изменять, копировать папки с помощью этого объекта.
  3. Файл: этот объект позволяет нам проверить, существует ли конкретный файл или нет. Мы можем создавать, удалять, изменять, копировать файлы с помощью этого объекта vba.
  4. Текстовый поток: этот объект позволяет нам создавать или читать текстовые файлы.

У всех вышеперечисленных методов есть свой собственный метод работы. Исходя из наших требований, мы можем выбрать метод каждого объекта.

Как включить FileSystemObject?

Это не всегда доступно в VBA. Поскольку доступ к файлам и папкам - это внешняя задача Excel, нам нужно включить FileSystemObject. Чтобы включить, выполните следующие действия.

Шаг № 1: Перейдите в Инструменты> Ссылки.

Шаг № 2 - Выберите параметр «Microsoft Scripting Runtime»

Прокрутите вниз и выберите параметр «Microsoft Scripting Runtime». После выбора параметров нажмите ОК.

Теперь мы можем получить доступ к FileSystemObject (FSO) в vba.

Создайте экземпляр FileSystemObject

После включения опции «Microsoft Scripting Runtime» в библиотеке объектов нам нужно создать экземпляр объекта файловой системы (FSO) посредством кодирования.

Чтобы создать экземпляр, сначала объявите переменную как FileSystemObject.

Как мы видим, FileSystemObject появляется в списке IntelliSense в VBA. Этого не было бы, пока мы не включили «Среду выполнения сценариев Microsoft».

Поскольку FSO - это объект, нам нужно настроить его для создания нового экземпляра.

Теперь мы можем получить доступ ко всем параметрам FSO (FileSystemObject).

Примеры использования VBA FileSystemObject

Вы можете скачать этот шаблон Excel для VBA FileSystemObject здесь - Шаблон VBA FileSystemObject для Excel

Пример # 1 - Найдите общий объем дискового пространства

В приведенном ниже коде будет указано общее пространство на диске.

Код:

 Sub FSO_Example1 () Dim MyFirstFSO As FileSystemObject Установить MyFirstFSO = New FileSystemObject Dim DriveName As Drive Dim DriveSpace As Double Установить DriveName = MyFirstFSO.GetDrive ("C:") 'Создать новый объект диска DriveSpace = DriveName.FreeSpace' Это позволит получить свободное пространство диска "C" DriveSpace = DriveSpace / 1073741824 'Это преобразует свободное пространство в ГБ DriveSpace = Round (DriveSpace, 2)' Округление всего пространства MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB" End Sub 

Разрушение Кодекса.

Сначала мы создали экземпляр FSO.

 Dim MyFirstFSO As FileSystemObject Установить MyFirstFSO = New FileSystemObject

Далее мы объявили две переменные.

 Dim DriveName As Drive Dim DriveSpace As Double 

Поскольку DriveName - это переменная объекта, нам нужно установить для нее значение FSO, один из методов FSO. Поскольку нам нужна характеристика диска, мы использовали опцию Get Drive и упомянули имя диска.

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

Теперь для другой переменной DriveSpace мы назначим метод свободного пространства диска, к которому мы обращаемся.

DriveSpace = Имя диска.FreeSpace

На данный момент приведенное выше уравнение может дать нам свободное место на диске «C». Итак, чтобы отобразить результат в ГБ, мы разделили свободное пространство на 1073741824

DriveSpace = DriveSpace / 1073741824

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

DriveSpace = Круглый (DriveSpace, 2)

Наконец, покажите результат в окне сообщения.

MsgBox "Диск" & Имя диска & "имеет" & DriveSpace & "ГБ"

Когда мы запускаем код вручную или через горячую клавишу F5, то в окне сообщения мы получим свободное место на диске «C».

Итак, на моем компьютере на диске C 216,19 ГБ свободной памяти.

Пример №2 - Проверить, существует ли папка или нет

Чтобы проверить, существует ли конкретная папка, используйте приведенный ниже код.

Если упомянутая папка доступна, в нем будет отображаться окно сообщения как «Упомянутая папка доступна» , в противном случае в окне сообщения VBA отобразится «Упомянутая папка недоступна».

Код:

 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.