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

Файловая система Excel VBA (FSO)

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

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

Несмотря на наличие других функций для работы с папками и файлами, FSO — это самый простой способ работы с папками и файлами, сохраняя Код VBAКод VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи.читать далее аккуратно и прямо.

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

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

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

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

Вы можете использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку на авторствоКак предоставить атрибуцию?Ссылка на статью должна быть гиперссылкой
Например:
Источник: VBA FileSystemObject (FSO) (wallstreetmojo.com)

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

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

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

    Активировать объект файловой системы шаг 1

  2. Выберите параметр «Среда выполнения сценариев Microsoft». Прокрутите вниз и выберите параметр «Среда выполнения сценариев Microsoft». После выбора параметров нажмите ОК.

    Активировать объект файловой системы шаг 2

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

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

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

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

    Экземпляр Файловая система Объект 1

  5. Как мы видим, FileSystemObject появляется в списке IntelliSense в VBA. Это было бы недоступно, пока мы не включим «среду выполнения сценариев Microsoft». Поскольку FSO является объектом, нам нужно настроить его для создания нового экземпляра.

    Экземпляр Файловая система Объект 1-1

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

    Экземпляр Файловая система Объект 1-2

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

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

Пример № 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
    '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
VBA FileSystemObject Пример 1

Расшифровка кода.

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

Dim MyFirstFSO As FileSystemObject
Set MyFirstFSO = New FileSystemObject

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

Dim DriveName As Drive
Dim DriveSpace As Double

Поскольку DriveName является переменной объекта, нам нужно установить для нее значение FSO для одного из методов FSO. Поскольку нам нужна характеристика диска, мы воспользовались опцией «Получить диск» и указали имя диска.

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

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

DriveSpace = DriveName.FreeSpace

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

DriveSpace = DriveSpace / 1073741824

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

DriveSpace = Round(DriveSpace, 2)

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

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

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

Пример VBA FileSystemObject 1-1

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

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

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

Если указанная папка доступна, она покажет нам окно сообщения как «Указанная папка доступна». Если нет, он покажет Окно сообщения VBAОкно сообщений VBAФункция VBA MsgBox — это функция вывода, которая отображает обобщенное сообщение, предоставленное разработчиком. Этот оператор не имеет аргументов, и персонализированные сообщения в этой функции записываются в двойных кавычках, а для значений предоставляется ссылка на переменную.читать далее в виде «Указанная папка недоступна».

Код:

Sub FSO_Example2()

    Dim MyFirstFSO As FileSystemObject
    Set MyFirstFSO = New FileSystemObject

    If MyFirstFSO.FolderExists("D:Excel FilesVBAVBA Files") Then
    MsgBox "The Mentioned Folder is Available"
    Else
    MsgBox "The Mentioned Folder is Not Available"
    End If

End Sub
VBA FileSystemObject Пример 2

Запустите этот код через Excel Горячая клавишаГорячая клавиша ExcelЯрлык Excel — это способ более быстрого выполнения ручного задания.читать далее F5 или вручную, тогда смотрим результат.

Пример VBA FileSystemObject 2-1

Пример № 3 — проверить, существует ли файл или нет

Приведенный ниже код проверит, доступен ли указанный файл или нет.

Код:

Sub FSO_Example3()

   Dim MyFirstFSO As FileSystemObject
   Set MyFirstFSO = New FileSystemObject

   If MyFirstFSO.FileExists("D:Excel FilesVBAVBA FilesTesting File.xlsm") Then
   MsgBox "The Mentioned File is Available"
   Else
   MsgBox "The Mentioned File is Not Available"
   End If

End Sub
VBA FileSystemObject Пример 3

Запустите этот код вручную или с помощью клавиши F5, затем посмотрите результат.

Пример VBA FileSystemObject 3-1

УЗНАТЬ БОЛЬШЕ >>

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *