Excel VBA FileSystemObject (FSO)
VBA FileSystemObject (FSO) работи подобно на FileDialog, използва се за получаване на достъп до други файлове на компютъра, върху който работим. Ние също можем да редактираме тези файлове, означава четене или запис на файла. С помощта на FSO можем да имаме достъп до файлове, да работим с тях, да модифицираме файлове и папки. FSO е важният инструмент на API, до който имаме достъп с VBA. Като част от проекта VBA може да се наложи да получим достъп до няколко папки и файлове в нашия компютър, за да свършим работата.
Можем да изпълним много задачи, като използваме FSO като „да проверим дали папката е налична или не“, Създайте нова папка или файлове, преименувайте съществуващата папка или файлове, вземете списъка с всички файлове в папката, както и имената на подпапки . И накрая, можем да копираме файлове от едно място на друго.
Въпреки че има и други функции за работа с папки и файлове, FSO е най-лесният метод за работа с папки и файлове, като поддържа VBA кода чист и прав.
Можем да осъществим достъп до четири типа обекти с FileSystemObject. По-долу са тези.
- Drive: Използвайки този обект, можем да проверим дали споменатото устройство съществува или не. Можем да получим името на пътя, вида на целта и размера на предприятието.
- Папка: Този обект ни позволява да проверим дали конкретната папка съществува или не. Можем да създаваме, изтриваме, модифицираме, копираме папки, използвайки този обект.
- Файл: Този обект ни позволява да проверим дали конкретният файл съществува или не. Можем да създаваме, изтриваме, модифицираме, копираме файлове, използвайки този VBA обект.
- Текстов поток: Този обект ни позволява да създаваме или четем текстови файлове.
Всички горепосочени методи имат своя метод за работа. Въз основа на нашите изисквания можем да изберем метода на всеки обект.

Как да активирам FileSystemObject?
Той не е лесно достъпен във VBA. Тъй като достъпът до файлове и папки е външната задача на Excel, трябва да активираме FileSystemObject. За да насърчите, следвайте стъпките по-долу.
Стъпка 1: Отидете на Инструменти> Референции.

Стъпка 2 - Изберете опцията „Microsoft Scripting Runtime“
Превъртете надолу и изберете опцията „Време за изпълнение на скриптове на Microsoft“. След като изберете опциите, щракнете върху OK.

Сега можем да осъществим достъп до FileSystemObject (FSO) във VBA.
Създайте екземпляр на FileSystemObject
След като опцията 'Microsoft Scripting Runtime' е активирана от библиотеката Обекти, трябва да създадем обект на файлова система (FSO) чрез кодиране.
За да създадете екземпляра, първо декларирайте променливата като FileSystemObject.

Както виждаме, FileSystemObject се появява в списъка IntelliSense във VBA. Това нямаше да е налично, преди да активираме „Време за изпълнение на скриптове на Microsoft“.
Тъй като FSO е обект, трябва да го зададем, за да създадем нов екземпляр.

Сега можем да получим достъп до всички опции на FSO (FileSystemObject).

Примери за използване на VBA FileSystemObject
Пример # 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 на устройството "C" DriveSpace = DriveSpace / 1073741824 'Това ще преобразува свободното пространство в GB 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 е обектна променлива, трябва да зададем това на FSO един от метода на FSO. Тъй като се нуждаем от характеристиката на устройството, използвахме опцията Get Drive и споменахме името на устройството.
Задайте DriveName = MyFirstFSO.GetDrive ("C:")
За друга променлива, DriveSpace, ще присвоим метода за свободно пространство на устройството, до което имаме достъп.
DriveSpace = Име на Drive.FreeSpace
Към момента горното уравнение може да ни осигури свободно пространство на задвижването „C.“ За да покажем резултата в GB, разделихме отвореното пространство на 1073741824
DriveSpace = DriveSpace / 1073741824
След това ще закръглим числото.
DriveSpace = кръгъл (DriveSpace, 2)
Накрая покажете резултата в полето за съобщения.
MsgBox "Drive" & DriveName & "has" & DriveSpace & "GB"
When we run the code manually or through shortcut key F5, then in the 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, 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 FilesVBAVBA Files") Then MsgBox "The Mentioned Folder is Available" Else MsgBox "The Mentioned Folder is Not Available" End If End Sub

Изпълнете този код чрез Excel клавишната комбинация F5 или ръчно, след което вижте резултата.

Пример # 3 - Проверете дали файлът съществува или не
Кодът по-долу ще провери дали споменатият файл е достъпен или не.
Код:
Sub FSO_Example3 () Dim MyFirstFSO As FileSystemObject Set MyFirstFSO = New FileSystemObject If MyFirstFSO.FileExists ("D: Excel Files VBA VBA Files Testing File.xlsm") Тогава MsgBox "Споменатият файл е достъпен" Други споменати Файлът не е наличен "End If End Sub

Изпълнете този код ръчно или с помощта на клавиша F5, след което вижте резултата.
