Excel VBA FreeFile

Як часто, будучи користувачем Excel, ви відкриваєте файл і працюєте над ним? Дуже часто, правда? Знову ж можна автоматизувати завдання відкриття файлу в Excel за допомогою потужного інструменту VBA, який дозволяє писати макроси і в кінцевому підсумку автоматизувати всі завдання, починаючи з відкриття файлу з певного місця, щоб використовувати, зберігати та закривати його на тому ж самому шлях. Говорячи про автоматизацію процесу відкриття та закриття файлів через VBA, стає дуже важливим індексувати файл, щоб система могла визначити, який файл використовувати під час виконання. У нас є функція, доступна в VBA під назвою FreeFile, яка служить цій цілі.

Що таке функція VBA FreeFile?

VBA FreeFile - це функція, яка класифікується за функцією VBA, яка дозволяє системі зарезервувати номер для наступного файлу, який буде відкрито під Vput File Input Output, щоб забезпечити плавне кодування та зменшити непотрібні помилки у вашому коді. Коли ви відкриваєте файл через IO File VO (Input / Output), стає абсолютно обов’язковим присвоєння цьому файлу унікальний номер, оскільки у вас може бути декілька файлів у тому місці, яке ви збираєтесь використовувати для читання, запису та відкриття, код. Як система знає, який файл із усіх тих, які ви хочете відкрити? Функція VBA FreeFile ідентифікує унікальний номер, який ми присвоюємо файлу, і робить його доступним для відкриття, читання або запису в VBA.

Синтаксис функції FreeFile наведений нижче:

Ця функція приймає лише один аргумент RangeNumber, який має стандартні значення як нуль (0) та одне (1). Якщо вказати нуль, номер файлу буде присвоєний через діапазон чисел від 1 до 255 поступово для кожного відкритого файлу. Якщо ви вказали його, номер файлу буде присвоєно покроково в межах від 256 до 511 для кожного відкритого файлу. Якщо не вказано RangeNumber, нуль вважатиметься за замовчуванням.

Як використовувати функцію FreeFile в Excel VBA?

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

Ви можете завантажити шаблон VBA FreeFile Excel тут - Шаблон VBA FreeFile Excel

VBA FreeFile - приклад №1

Для використання функції FreeFile в Excel VBA виконайте наведені нижче дії.

Крок 1. Відкрийте новий редактор Visual Basic (VBE), натиснувши кнопку Visual Basic на вкладці Developer, що присутня у вашому файлі Excel, або одночасно натиснувши кнопку Alt + F11 .

Крок 2: Вставте новий модуль у VBE. Натисніть на кнопку Вставити . Виберіть Модуль зі списку параметрів, доступних у Вставці.

Крок 3: Визначте нову процедуру, яка може містити ваш макрос.

Код:

 Sub Example_1 () Закінчення Sub 

Крок 4: Визначте дві нові змінні, файл_1 та файл_2 як ціле число. Ці дві змінні будуть містити числа, які ми присвоюємо кожному файлу, який ми відкриваємо в макросі.

Код:

 Sub Example_1 () Dim file_1 Як цілий файл Dim_2_2 Як цілий кінець Sub 

Крок 5: Використовуйте оператор присвоєння, щоб призначити ціле значення 1 для змінної file_1 за допомогою VBA FreeFile.

Код:

 Sub example_1 () Dim file_1 Як цілий файл Dim_2 Як файл файлу Integer_1 = FreeFile End Sub 

Крок 6: Тепер скористайтеся оператором Open, який можна використовувати для відкриття файлу в VBA.

Код:

 Sub Example_1 () Dim file_1 Як файл dim Integer Dim_2 Як файл Integer_1 = = OpenFile Open "D: \ Написання вмісту Excel \ TextFile_1.txt" Для виводу як файл_1 Закінчення Sub 

Тут ми вказали шлях, по якому знаходиться файл. Оператор For дає вам такі параметри, як, як ви хочете відкрити файл (наприклад, як вихід), а оператор As визначає номер файлу, який ми вказали за допомогою оператора FreeFile.

Крок 7: Виконайте крок 5 та крок 6, щоб призначити новий номер другому файлу через змінну file_2 та відкрити його.

Код:

 Sub example_1 () Dim file_1 як Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" Для виводу Як файл_2 Закінчити Sub 

Крок 8: Тепер ми хотіли б побачити числа, які фактично присвоєні обом текстовим файлам. Ви можете запустити кожен рядок по одному за допомогою клавіші F8. Однак вихід не буде видимим для вас. Ні у файлі Excel, ні у вікні негайних. Будь ласка, додайте наступне твердження MsgBox, яке відображає поле повідомлень із номерами кожного файлу.

Код:

 Sub example_1 () Dim file_1 як Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 file_2 = FreeFile Open "D: \ Excel Content Writing \ TextFile_2.txt" Для виводу Як файл_2 MsgBox "Значення для файлу_1 є:" & file_1 & Chr (13) та "Значення для файлу_2 становить:" & файл_2 Кінець підрозділу 

У цьому рядку коду перший рядок вікна повідомлення буде містити текст "значення для file_1 є:" та числове значення, призначене за допомогою функції FreeFile. Chr (13) дозволяє відображати наступний рядок. У наступному рядку вікна з повідомленням буде написано "Значення для файлу_2 є:" та номер, присвоєний другому файлу.

Крок 9: Запустіть цей код, натиснувши кнопку Запустити або натиснувши клавішу F5.

Ось так функція FreeFile дозволяє призначити номер файлу, який ви збираєтеся відкривати, читати, закривати через VBA.

VBA FreeFile - приклад №2

Якщо ми закриваємо файл, який ми відкриваємо кожен раз, то новий файл, який ми відкриваємо, завжди матиме порядковий номер як 1 щоразу, коли він відкривається. Виконайте наведені нижче дії, щоб побачити це.

Крок 1. Визначте нову процедуру, яка може містити ваш макрос.

Код:

 Sub Example_2 () Кінець Sub 

Крок 2: Визначте дві змінні file_1 та file_2 як ціле число всередині щойно визначеної під-процедури.

Код:

 Sub Example_2 () Dim-файл_1 Як цілий файл Dim_2_2 Як цілий кінець Sub 

Крок 3: Тепер використовуйте FreeFile, щоб призначити номер даному файлу, і відкрити оператор, щоб відкрити цей файл через те місце, де ми його маємо.

Код:

 Sub example_2 () Dim file_1 Як файл dim Integer Dim_2 як файл Integer_1 = = OpenFile Open "D: \ Написання вмісту Excel \ TextFile_1.txt" Для виводу як файл_1 Закінчення Sub 

Крок 4: Використовуйте оператор MsgBox, щоб додати поле повідомлень про номер перших файлів.

Код:

 Sub example_2 () Dim file_1 As file Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 MsgBox "Значення для file_1 становить:" & file_1 End Sub 

Крок 5: Використовуйте оператор Close, щоб закрити перший файл, який ви відкрили через VBA.

Код:

 Sub example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 MsgBox "Значення для file_1 становить:" & file_1 Закрити файл_1 Кінець Sub 

Крок 6: Тепер виконайте ту саму процедуру, що і в кроці 5, крок 6, крок 7, але для другого файлу. Він включає в себе призначення значення змінної file_2 за допомогою функції FreeFile та відкриття її за допомогою оператора Open, використання MsgBox для відображення номера файлу для другого файлу та, нарешті, закриття другого файлу.

Код:

 Sub example_2 () Dim file_1 As Integer Dim file_2 As Integer file_1 = FreeFile Open "D: \ Excel Content Writing \ TextFile_1.txt" For Output As file_1 MsgBox "Значення для file_1 є:" & file_1 Закрити файл_1 file_2 = FreeFile Open "D : \ Написання вмісту в Excel \ TextFile_2.txt "Для виводу як файл_2 MsgBox" Значення для файлу_2 становить: "& файл_2 Закрити файл_2 Закінчити Sub 

Крок 7: Запустіть цей код, натиснувши кнопку Запустити або F5.

Перше поле повідомляє значення файлу_1, яке здається рівним 1. Друге поле повідомляє значення файлу_2, яке також є 1. Це зміна є, тому що ми використовували оператор закриття, щоб закрити файли один за одним. Завдяки чому під час ініціювання нового файлу кожен раз, коли старий файл та його номер випадає із системної пам’яті, а наступний файл буде розглядатися як новий файл із номерами, починаючи з 1.

Що потрібно пам’ятати

  • FreeFile повертає унікальне ціле число до кожного файлу, який ми відкриваємо, читаємо, закриваємо через VO File VO.
  • FreeFile має два значення для аргументу RangeNumber (що є необов'язковим). Нуль зазвичай призначає число між діапазоном від 1 до 255, а одне призначає числа від 256 до 511.

Рекомендовані статті

Це посібник щодо VBA FreeFile. Тут ми обговорюємо, як функція FreeFile дозволяє призначити номер файлу, який ви збираєтеся відкривати, читати, закривати через Excel VBA разом із практичними прикладами та шаблоном Excel, який можна завантажити. Ви також можете ознайомитися з іншими запропонованими нами статтями -

  1. VBA Перевірка файлів | Шаблон Excel
  2. Підписка VBA поза діапазоном (приклади)
  3. Функція GetObject в Excel VBA
  4. Як використовувати формат чисел у VBA?
  5. VBA Environment

Категорія: