Функція VBA DIR | Як використовувати функцію Excel VBA DIR?

Функція DIR Excel VBA

Функція VBA DIR також відома як функція каталогу, це вбудована функція у VBA, яка використовується для надання нам імені файлу даного файлу або папки, але нам потрібно вказати шлях до файлу, вихідний результат якого повертається цим Функція є рядком, оскільки вона повертає ім'я файлу, у цієї функції є два аргументи, які є іменем шляху та атрибутами.

Функція DIR повертає найперше ім'я файлу у вказаному шляху до папки. Наприклад, на вашому Диску D, якщо у вас є назва папки під назвою 2019, а в цій папці, якщо ви перевищуєте файл із назвою «2019 Продажі», ви можете отримати доступ до цього файлу за допомогою функції DIR.

Функція “VBA DIR” дуже корисна для отримання імені файлу за допомогою папки шляху.

Синтаксис

Ця функція має два необов’язкові аргументи.

  • [Ім'я шляху]: Як назва вказує шлях до файлу. Це також може бути ім'я файлу, ім'я папки або каталогу. Якщо будь-який шлях не призначений, я поверну порожнє значення рядка, тобто “”
  • [Атрибути]: Це також необов’язковий аргумент, і ви не можете використовувати його дуже часто для кодування. Ви можете вказати атрибут файлу в [Ім'я шляху], і функція DIR шукає лише ці файли.

Наприклад: Якщо ви хочете отримати доступ лише до прихованих файлів, якщо ви хочете отримати доступ лише до файлів, призначених лише для читання, тощо ... ми можемо вказати в цьому аргументі. Нижче наведено атрибути, якими ми можемо користуватися.

Приклади використання функції VBA DIR

Завантажити цей шаблон VBA Dir Excel можна тут - Шаблон VBA Dir Excel

Приклад №1 - Доступ до імені файлу за допомогою функції DIR

Поясню вам простий приклад доступу до імені файлу за допомогою функції DIR. Виконайте наведені нижче дії.

Крок 1: Створіть ім'я макроса.

Крок 2: Визначте змінну як String .

Код:

 Sub Dir_Example1 () Dim MyFile As String End Sub 

Крок 3: Тепер для цієї змінної ми будемо призначати значення за допомогою функції DIR .

Код:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir (End Sub 

Крок 4: Тепер скопіюйте та вставте шлях до папки з файлами на свій комп’ютер. Згадайте назву шляху у подвійних лапках.

Код:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template End Sub 

Крок 5: Я згадав свій шлях до папки, тепер нам також слід згадати ім'я файлу та його розширення. Для цього перше, що нам потрібно зробити, це поставити зворотну скісну риску після шляху (\)

Після введення зворотної косої риски нам потрібно ввести повне ім’я файлу .

Код:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") End Sub 

Крок 6: Покажіть значення змінної у вікні повідомлення.

Код:

 Sub Dir_Example1 () Dim MyFile As String MyFile = Dir ("E: \ VBA Template \ VBA Dir Excel Template.xlsm") MsgBox MyFile End Sub 

Тепер запустіть код і подивіться, яким є результат вікна повідомлення.

Тож функція DIR повернула ім'я файлу із розширенням файлу.

Приклад №2 - Відкрити файл за допомогою функції DIR

Тепер, як нам відкрити файл? Ця функція може повернути ім'я файлу, але відкриття цього файлу - це дещо інший процес. Виконайте наведені нижче дії, щоб відкрити файл.

Крок 1: Створіть дві змінні як String .

Код:

 Sub Dir_Example2 () Затемнити ім'я папки як рядок Приглушити ім'я файлу як рядок Кінець Під 

Крок 2: Тепер для змінної FolderName призначте шлях до папки.

Код:

 Sub Dir_Example2 () Ім'я папки як рядок Приглушити ім'я файлу як рядок FolderName = "E: \ VBA Template \" End Sub 

Крок 3: Тепер для змінної FileName нам потрібно отримати ім’я файлу за допомогою функції DIR .

Код:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (End Sub 

Крок 4: Тепер для назви шляху ми вже призначили шлях до змінної FolderPath, тому ми можемо безпосередньо подати змінну сюди.

Код:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName End Sub 

Крок 5: Тепер нам потрібно вказати ім'я файлу. За допомогою символу амперсанда (&) призначте ім'я файлу.

Код:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") End Sub 

Крок 6: Тепер використовуйте метод WORKBOOKS.OPEN .

Код:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Книги. Відкрити End Sub 

Крок 7: Ім'я файлу - це комбінація шляху до папки та імені файлу . Тож поєднуйте ці два.

Код:

 Sub Dir_Example2 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "VBA Dir Excel Template.xlsm") Workbooks.Open FolderName & FileName End Sub 

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

Приклад №3 - Відкрийте кілька робочих книг за допомогою функції DIR

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

Зірочка (*) є одним із таких символів підстановки. Він визначає будь-яку кількість символів. Наприклад, якщо ви хочете отримати доступ до всіх макрофайлів у папці, ви можете використовувати зірочку як підстановочний знак, тобто “* .xlsm *”

Тут * буде відповідати будь-якому імені файлу, розширення якого дорівнює “xlsm”.

Код:

 Sub Dir_Example3 () Dim FolderName As String Dim FileName As String FolderName = "E: \ VBA Template \" FileName = Dir (FolderName & "* .xlsm *") Do while FileName "" Workbooks.Open FolderName & FileName FileName = Dir ( ) Loop End Sub 

Тепер наведений вище код відкриє всі файли у шляху до папки.

FileName = Dir (), чому я використав цей рядок, тому що, щоб отримати доступ до наступного файлу в папці, ми повинні зробити ім'я існуючого файлу рівним нулю. У той момент, коли ми робимо ім'я файлу рівним нулю, коли цикл запускається вдруге, це займе наступний файл у папці.

Приклад №4 - Отримати всі імена файлів у папці

Припустимо, якщо вам потрібен список усіх імен файлів у папці, ми також можемо зробити це за допомогою атрибутів.

Код:

 Sub Dir_Example4 () Приглушити ім'я файлу як рядок FileName = Dir ("E: \ VBA Template \", vbDirectory) Виконати, поки "FileName" "Debug.Print FileName FileName = Dir () Loop End Sub 

Зробіть негайне вікно видимим, натиснувши Ctrl + G.

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