Вступ до FileSystemObject

Чому ми використовуємо VBA? Ми використовуємо VBA для автоматизації наших завдань. Зазвичай у excel ми працюємо лише з даними, представленими у рядках та стовпцях, які є у вигляді таблиць чи чогось іншого. А як щодо файлів і папок, які не входять до складу excel? Що робити, якщо нам потрібно використовувати ці дані з будь-якого файлу, як ми отримуємо доступ до них. Ось тут FileSystemObject стане в нагоді.

FileSystemObject або FSO використовується для доступу до системи файлів з нашого комп'ютера. Використовуючи це, ми можемо отримати доступ до всіх папок файлів, які ми знаходимо на комп'ютері, на якому ми працюємо. FSO - це в основному інструмент API, який використовується для доступу до інших файлів. Тепер це за замовчуванням у VBA немає, про що ми дізнаємось далі у цій статті. Давайте спочатку розберемося, що таке FSO. Раніше в VBA у нас була функція DIR, яку передавали для доступу до інших файлів і папок з комп'ютера. Кодування для функції DIR було дуже складно працювати. Але у FSO справи інакші.

Зараз є чотири типи об'єктів, до яких ми можемо отримати доступ через FSO, і вони такі:

  • Привід: який використовується для доступу до згаданого накопичувача.
  • Папка: використовується для доступу до згаданої папки.
  • Файл: використовується для доступу до згаданого файлу.
  • Текстовий потік: За допомогою цього об’єкта ми можемо читати чи записувати текстовий файл.

Кожен із перелічених вище об’єктів має різні способи їх використання. Наприклад, якщо ми хочемо скопіювати файл, ми будемо використовувати метод CopyFile або видалити папку, ми будемо використовувати метод DeleteFolder тощо.

Як я вже говорив вище, FSO в VBA за замовчуванням не присутній, є два способи включення FSO у VBA.

  • Перший метод - через встановлення еталону.
  • Другий метод - посилання на бібліотеку з коду.

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

У VBA перейдіть на вкладку Інструменти та перейдіть до посилань,

З'явиться вікно майстра, виберіть Microsoft Scripting Runtime, як показано нижче, і натисніть OK.

Тепер ми можемо отримати доступ до FSO у VBA. Тепер давайте використаємо це через кілька прикладів та дізнаємось про це.

Як використовувати VBA FileSystemObject в Excel?

Нижче наведено різні приклади використання функції VBA FileSystemObject в Excel

Ви можете завантажити цей шаблон файлу VBA FileSystemObject Excel тут - VBA Шаблон Excel Excel Excel Excel

VBA FileSystemObject - Приклад №1

Перш ніж ми почнемо використовувати FSO у Vba, спочатку навчимося створювати екземпляри в VBA.

Крок 1. У підмодулі створіть підпроцедуру,

Код:

 Sub Newfso () Кінець Sub 

Крок 2. Оголосіть змінну як FileSystemObject, як показано нижче,

Код:

 Sub Newfso () Dim A як FileSystemObject End Sub 

Крок 3: Тепер нам потрібно створити екземпляр, оскільки FSO є об'єктом, використовуючи оператор SET, як показано нижче,

Код:

 Sub Newfso () Dim A як FileSystemObject Set A = New FileSystemObject End Sub 

Тепер ця заява дозволить нам створювати або змінювати файли або папки за допомогою FSO.

Крок 4: Тепер ми можемо побачити функцію IntelliSense після ввімкнення FSO. Використовуйте оператор крапки наступним чином,

Код:

 Sub Newfso () Dim A як FileSystemObject Set A = New FileSystemObject A. Кінець Sub 

Це дало нам різні варіанти за допомогою функції IntelliSense. Ось так ми створюємо екземпляри за допомогою FSO.

VBA FileSystemObject - Приклад №2

Тепер, оскільки ми створили екземпляр у Прикладі 1, перейдемо далі до його використання та перевіримо, чи існує файл чи папка чи ні.

Крок 1. Після того як ми створили новий FileSystemObject, використовуйте оператор IF, щоб визначити, чи існує папка чи ні, як слід,

Код:

 Sub Newfso () Dim A як FileSystemObject Set A = New FileSystemObject Якщо A.FolderExists ("C: \ Users \ Public \ Project") Закінчіть Sub 

Крок 2: Якщо папка існує, ми хочемо відобразити папку, а якщо ні, ми не хочемо, щоб вона відображалася, ця папка не існує.

Код:

 Sub Newfso () Dim A As FileSystemObject Set A = New FileSystemObject If A.FolderExists ("C: \ Users \ Public \ Project") Тоді MsgBox "Папка існує" Else MsgBox "Папка не існує" End If End Sub 

Крок 3: Тепер виконайте вищевказаний код і перегляньте результат наступним чином,

Папка існує на моєму робочому столі, тому ми отримуємо повідомлення про те, що папка існує.

VBA FileSystemObject - Приклад №3

Тепер ми обговорили, що FSO має різні об'єкти, такі як накопичувачі. Давайте дізнаємося, скільки місця у мене є в моєму приводі E.

Крок 1: Почніть з іншої підпроцедури наступним чином,

Код:

 Sub Newfso1 () Кінець Sub 

Крок 2: Тепер оголосіть змінну як FileSystemObject і встановіть її в новий екземпляр наступним чином,

Код:

 Sub Newfso1 () Dim A як FileSystemObject Set A = New FileSystemObject End Sub 

Крок 3: Тепер, оскільки ми використовуємо властивість Диска, оголосимо одну змінну як тип Диска та одну змінну як подвійну, щоб зберігати дані для простору,

Код:

 Sub Newfso1 () Dim A як FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace як подвійний кінець Sub 

Крок 4: Тепер давайте створимо новий об’єкт приводу, як показано нижче,

Код:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace as Double Set D = A.GetDrive ("C:") End Sub 

Це один із методів FSO, який ми використовуємо для доступу до накопичувача.

Крок 5: Ми будемо використовувати інший метод FSO, щоб отримати вільний простір накопичувача і зберегти його у змінній, визначеній для зберігання місця на диску,

Код:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace as Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace End Sub 

Крок 6: Тепер обчислимо простір у ГБ наступним чином,

Код:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace as Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) Кінець Під 

Крок 7: Тепер відобразіть значення, збережене в просторі Диска, використовуючи функцію msgbox,

Код:

 Sub Newfso1 () Dim A As FileSystemObject Set A = New FileSystemObject Dim D As Drive, Dspace as Double Set D = A.GetDrive ("C:") Dspace = D.FreeSpace Dspace = Round ((Dspace / 1073741824), 2) MsgBox "The Drive" & D & "має" & Dspace & "Гб вільного місця" Кінець Sub 

Крок 8: Виконайте вищевказаний код, щоб дізнатися результат нижче,

VBA FileSystemObject - Приклад №4

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

Крок 1: Почнемо з іншого підпроцедури наступним чином,

Код:

 Sub Newfso2 () Кінець Sub 

Крок 2: Давайте слідуємо тим же крокам і створимо екземпляр, як описано нижче,

Код:

 Sub Newfso2 () Dim A як FileSystemObject Set A = New FileSystemObject End Sub 

Крок 3: Тепер ми будемо використовувати метод Create Folder для створення нової папки у вказаному місці,

Код:

 Sub Newfso2 () Dim A As FileSystemObject Set A = New 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
  2. Непряма функція в Excel
  3. Функція підрахунку VBA
  4. Функція Excel XOR

Категорія: