Функції для роботи з файловою системою vba

Файлові функції VBA, Input (), FileLen (), EOF (), LOF (), Loc ()

У VBA передбачений набір вбудованих функцій для виконання різних операцій з файлами, каталогами, дисками і іншими об'єктами файлової системи. Інформація про ці функції наведено нижче. Але не забувайте, що крім цих можливостей (загальних для всіх додатків, в яких використовується VBA) у нас є також, по-перше, можливості, специфічні для даного додатка (наприклад, відкриття і збереження документа Word засобами об'єктної моделі Word). По-друге, на будь-якому комп'ютері під керуванням Windows є об'єктна бібліотека під назвою Microsoft Scripting Runtime - дуже проста і дуже зручна для виконання різних операцій з файлами, каталогами та дисками. Можна додати в проект VBA на неї посилання і використовувати всі наявні в ній можливості. Якщо, наприклад, мені потрібно пройти по всіх файлів в даному каталозі і що-небудь з ними зробити (наприклад, завантажити в Excel всі файли звітів, які прийшли з філій), я використовую саме цю бібліотеку. Довідку по ній можна знайти на сайті Microsoft (www.microsoft.com/scripting).

А це - вбудовані функції для роботою з файлової системою, передбачені в VBA:

  • CurDir () - функція, яка повертає шлях до поточного каталогу, в якому будуть зберігатися файли нашого зі стандартними програмами.
  • Dir () - дозволяє шукати файл або каталог за вказаною шляху на диску.
  • EOF () - при операції запису в файл на диску цю функція поверне True, якщо ви перебуваєте в кінці файлу. Використовується при записі в файл свого власного формату. При збереженні документів Word, книг Excel і т.п. краще використовувати стандартні методи об'єктів цих документів: Save і SaveAs ().
  • Error () - дозволяє повернути опис помилки по її номеру. Генерувати помилку потрібно за допомогою методу RaiseError () спеціального об'єкта Err (див. Розділ 6, в якій розповідається про перехоплення помилок і налагодження).
  • FileAttr () - дозволяє визначити, як саме був відкритий вами файл в файловій системі: на читання, запис, додавання, в двійковому або текстовому режимі і т.п.
  • FileDateTime () - дозволяє отримати інформацію про останній час звернення до зазначеного вами файлу. Якщо до файлу після створення жодного разу не зверталися, то це буде час створення файлу.
  • FileLen () - дозволяє визначити довжину зазначеного вами файлу в байтах.
  • FreeFile () - дозволяє визначити наступну вільну цифру, яку можна використовувати як номер файлу при його відкритті.
  • GetAttr () - можливість звернутися до файлу до файлової системи і отримати інформацію про його атрибутах (прихований, доступний тільки для читання, архівний і т.п.)
  • Input () - дозволяє вважати інформацію з відкритого файлу. Наприклад, вважати інформацію з файлу C: \ text1.txt і вивести її в вікно Immediate можна так:

Open "c: \ text1.txt" For Input As # 1 'Відкриваємо файл функцією Open () на читання

Do While Not EOF (1) 'поки файл не скінчився

'Отримуємо по одному символу і додаємо його до попередніх

MyChar = MyChar Input (1, # 1)

Close # 1 'Закриваємо файл

  • Варіант цієї функції - InputB () дозволяє вказувати кількість байт, які треба завантажити з файлу.
  • Loc () - від Location, тобто місцезнаходження - повертає число, яке визначає поточне місце вставки або читання у відкритому файлі. Схоже працює функція Seek (). але вона повертає інформацію про позиції, з якої буде виконуватися наступна операція читання або вставки.
  • LOF () - від length of file - дозволяє визначити довжину відкритого файлу в байтах.

Схожі статті