Объект файловой системы VBA(ФСО) работает аналогично FileDialog, используемому для доступа к другим файлам компьютера, над которым мы работаем. Мы также можем редактировать эти файлы, то есть читать или записывать файл. С помощью FSO мы можем получать доступ к файлам, работать с ними, изменять файлы и папки. FSO — важный инструмент API, к которому мы можем получить доступ с помощью VBA. В рамках проекта VBA нам может потребоваться доступ к нескольким папкам и файлам на нашем компьютере, чтобы выполнить работу.
С помощью FSO мы можем выполнять множество задач, например «проверить, доступна ли папка или нет», создать новую папку или файлы, переименовать существующую папку или файлы, получить список всех файлов в папке, а также имена подпапок. . Наконец, мы можем копировать файлы из одного места в другое.
Несмотря на наличие других функций для работы с папками и файлами, FSO — это самый простой способ работы с папками и файлами, сохраняя Код VBAКод VBAКод VBA относится к набору инструкций, написанных пользователем на языке программирования приложений Visual Basic в редакторе Visual Basic (VBE) для выполнения определенной задачи.читать далее аккуратно и прямо.
Мы можем получить доступ к четырем типам объектов с помощью FileSystemObject. Ниже приведены те.
Водить машину: С помощью этого объекта мы можем проверить, существует ли указанный диск или нет. Мы можем получить путь, тип цели и размер предприятия.
Папка: Этот объект позволяет нам проверить, существует ли конкретная папка или нет. С помощью этого объекта мы можем создавать, удалять, изменять, копировать папки.
Файл: Этот объект позволяет нам проверить, существует ли конкретный файл или нет. Мы можем создавать, удалять, изменять, копировать файлы, используя этот объект VBA.
Текстовый поток: Этот объект позволяет нам создавать или читать текстовые файлы.
Все вышеперечисленные методы имеют свой метод работы. Исходя из наших требований, мы можем выбрать метод каждого объекта.
Вы можете использовать это изображение на своем веб-сайте, в шаблонах и т. д. Пожалуйста, предоставьте нам ссылку на авторствоКак предоставить атрибуцию?Ссылка на статью должна быть гиперссылкой Например: Источник: VBA FileSystemObject (FSO) (wallstreetmojo.com)
Как включить FileSystemObject?
Это не легко доступно в VBA. Поскольку доступ к файлам и папкам является внешней задачей Excel, нам нужно включить FileSystemObject. Чтобы поощрить, выполните следующие действия.
Перейдите в Инструменты > Ссылки.
Выберите параметр «Среда выполнения сценариев Microsoft». Прокрутите вниз и выберите параметр «Среда выполнения сценариев Microsoft». После выбора параметров нажмите ОК.
Теперь мы можем получить доступ к FileSystemObject (FSO) в VBA.
Создайте экземпляр FileSystemObject
Как только параметр «Microsoft Scripting Runtime» включен в библиотеке объектов, нам нужно создать объект файловой системы (FSO) посредством кодирования.
Чтобы создать экземпляр, сначала объявите переменную как FileSystemObject.
Как мы видим, FileSystemObject появляется в списке IntelliSense в VBA. Это было бы недоступно, пока мы не включим «среду выполнения сценариев Microsoft». Поскольку FSO является объектом, нам нужно настроить его для создания нового экземпляра.
Теперь мы можем получить доступ ко всем параметрам FSO (FileSystemObject).
Приведенный ниже код даст общее пространство диска.
Код:
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
Расшифровка кода.
Сначала мы создали экземпляр 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.
Когда мы запустим код вручную или с помощью сочетания клавиш F5, то в окне сообщения мы получим свободное место на диске «C».
Итак, в моем компьютере на диске С 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 IfEnd Sub
Запустите этот код через Excel Горячая клавишаГорячая клавиша ExcelЯрлык Excel — это способ более быстрого выполнения ручного задания.читать далее F5 или вручную, тогда смотрим результат.
Пример № 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 IfEnd Sub
Запустите этот код вручную или с помощью клавиши F5, затем посмотрите результат.