Введение в FileSystemObject

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

FileSystemObject или FSO используется для доступа к системе файлов с нашего компьютера. Используя это, мы можем получить доступ ко всем папкам с файлами, которые есть на компьютере, с которым мы работаем. FSO - это в основном инструмент API, который используется для доступа к другим файлам. Теперь этого нет по умолчанию в VBA, о чем мы узнаем позже в этой статье. Давайте сначала поймем, что такое ФСО. Ранее в VBA у нас была функция DIR, которая использовалась для доступа к другим файлам и папкам с компьютера. Кодирование для функции DIR было очень сложным для работы. Но в ФСО все иначе.

Теперь есть четыре типа объектов, к которым мы можем получить доступ через FSO, и они следующие:

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

Каждый из перечисленных выше объектов имеет свои методы для их использования. Например, если мы хотим скопировать файл, мы будем использовать метод CopyFile или удалить папку, мы будем использовать метод DeleteFolder и так далее.

Как я уже говорил выше, FSO по умолчанию отсутствует в VBA, есть два способа включить FSO в VBA.

  • Первый способ заключается в установке ссылки.
  • Второй способ - обратиться к библиотеке из кода.

Хотя второй метод является более сложным, всегда рекомендуется использовать первый метод, который очень прост. Давайте следовать этим основным шагам.

В VBA перейдите на вкладку Инструменты, а затем перейдите в Ссылки,

Появится окно мастера, выберите Microsoft Scripting Runtime, как показано ниже, и нажмите OK.

Теперь мы можем получить доступ к FSO в VBA. Теперь давайте рассмотрим это на нескольких примерах и узнаем об этом.

Как использовать VBA FileSystemObject в Excel?

Ниже приведены различные примеры использования функции VBA FileSystemObject в Excel.

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

VBA FileSystemObject - Пример # 1

Прежде чем мы начнем использовать FSO в Vba, давайте сначала научимся создавать экземпляры в VBA.

Шаг 1: В подмодуле создайте подпроцедуру,

Код:

 Sub Newfso () End Sub 

Шаг 2: Объявите переменную как FileSystemObject, как показано ниже,

Код:

 Sub Newfso () Dim A As FileSystemObject End Sub 

Шаг 3: Теперь нам нужно создать экземпляр, так как FSO - это объект, использующий инструкцию SET, как показано ниже,

Код:

 Sub Newfso () Dim A As FileSystemObject Set A = Новый FileSystemObject End Sub 

Теперь это утверждение позволит нам создавать или изменять файлы или папки с помощью FSO.

Шаг 4: Теперь мы можем увидеть функцию IntelliSense после включения FSO. Используйте оператор точки следующим образом:

Код:

 Sub Newfso () Dim A As FileSystemObject Set A = Новый FileSystemObject A. End Sub 

Это дало нам различные варианты, используя функцию IntelliSense. Вот как мы создаем экземпляры, используя FSO.

VBA FileSystemObject - Пример № 2

Теперь, когда мы создали экземпляр в Примере 1, давайте перейдем к его дальнейшему использованию и проверим, существует файл или папка или нет.

Шаг 1: После того, как мы создали новый FileSystemObject, используйте оператор IF, чтобы определить, существует папка или нет, следующим образом:

Код:

 Sub Newfso () Dim A As FileSystemObject Set A = Новый FileSystemObject Если A.FolderExists ("C: \ Users \ Public \ Project"), затем End Sub 

Шаг 2: Если папка существует, мы хотим, чтобы папка существовала, а если нет, мы хотим, чтобы она отображалась, эта папка не существует.

Код:

 Sub Newfso () Dim A As FileSystemObject Set A = Новый FileSystemObject Если A.FolderExists ("C: \ Users \ Public \ Project"), то MsgBox "Папка существует" Иначе MsgBox "Папка не существует" Конец если конец Sub Sub 

Шаг 3: Теперь выполните приведенный выше код и увидите результат следующим образом:

Папка существует на моем рабочем столе, поэтому мы получаем сообщение, что папка существует.

VBA FileSystemObject - Пример № 3

Теперь, так как мы обсуждали, что FSO имеет различные объекты, такие как диски. Позвольте нам выяснить, сколько места у меня есть на моем диске E.

Шаг 1: Начните с другой подпроцедуры следующим образом:

Код:

 Sub Newfso1 () End Sub 

Шаг 2. Теперь объявите переменную как FileSystemObject и установите для нее новый экземпляр следующим образом:

Код:

 Sub Newfso1 () Dim A As FileSystemObject Set A = Новый FileSystemObject End Sub 

Шаг 3: Теперь, когда мы используем свойство Drive, объявите одну переменную как тип Drive и одну переменную как double, чтобы хранить данные для пространства следующим образом:

Код:

 Sub Newfso1 () Dim A As FileSystemObject Set A = Новый FileSystemObject Dim D As Drive, Dspace как Double End Sub 

Шаг 4: Теперь давайте создадим новый приводной объект, как показано ниже,

Код:

 Sub Newfso1 () Dim A As FileSystemObject Set A = Новый FileSystemObject Dim D As Drive, Dspace как Double Set D = A.GetDrive ("C:") End Sub 

Это один из методов FSO, который мы используем для доступа к диску.

Шаг 5: Мы будем использовать другой метод FSO, чтобы получить свободное место на диске и сохранить его в переменной, определенной для хранения места на диске,

Код:

 Sub Newfso1 () Dim A As FileSystemObject Set A = Новый FileSystemObject Dim D As Drive, Dspace как Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub 

Шаг 6: Теперь давайте посчитаем пространство в ГБ следующим образом:

Код:

 Sub Newfso1 () Dim A как набор FileSystemObject A = новый FileSystemObject Dim D как диск, Dspace как двойной набор D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) End Sub 

Шаг 7: Теперь отобразите значение, сохраненное для дискового пространства, используя функцию msgbox, следующим образом:

Код:

 Sub Newfso1 () Dim A как набор FileSystemObject A = новый FileSystemObject Dim D как диск, Dspace как двойной набор D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox "The Drive" & D & "имеет" & Dspace & "GB Free Space" End Sub 

Шаг 8: Выполните приведенный выше код, чтобы узнать приведенный ниже результат,

VBA FileSystemObject - Пример № 4

Теперь давайте создадим новую папку в указанном месте с помощью FSO.

Шаг 1: Снова давайте начнем с другой подпроцедуры следующим образом:

Код:

 Sub Newfso2 () End Sub 

Шаг 2: Давайте сделаем те же шаги и создадим экземпляр следующим образом:

Код:

 Sub Newfso2 () Dim A As FileSystemObject Set A = Новый FileSystemObject End Sub 

Шаг 3: Теперь мы будем использовать метод Create Folder, чтобы создать новую папку в указанном месте,

Код:

 Sub Newfso2 () Dim A As FileSystemObject Set A = Новый FileSystemObject A.CreateFolder ("C: \ Users \ Public \ Project \ FSOExample") End Sub 

Шаг 4. Выполните приведенный выше код и просмотрите результат на рабочем столе следующим образом.

Мы успешно создали новую папку в указанном месте.

Что нужно запомнить в VBA FileSystemObject

  • FSO - инструмент приложения API.
  • FSO по умолчанию недоступен в VBA.
  • С FSO мы можем создавать, изменять или читать файлы и папки на компьютере.
  • Мы также можем использовать FSO для наших сетевых дисков.

Рекомендуемые статьи

Это руководство к VBA FileSystemObject. Здесь мы обсудим, как использовать VBA FileSystemObject в Excel вместе с некоторыми практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Полное руководство по VBA Workbook
  2. НЕПРАВИЛЬНАЯ функция в Excel
  3. Функция подсчета VBA
  4. Функция Excel XOR

Категория: