Получение с помощью функции FreeFile следующего свободного идентификационного номера для файла, открываемого выражением с оператором Open, в коде VBA Excel.
Синтаксис функции FreeFile
1 |
FreeFile [(Номер_диапазона)] |
Номер_диапазона определяет интервал целых чисел, из которого возвращается следующий идентификационный номер, который еще не используется, для отрываемого файла. Это необязательный параметр, принимающий следующие значения:
Значение | Интервал |
---|---|
0 | 1 – 255 |
1 | 256 – 511 |
По умолчанию используется значение 0.
Примеры использования в VBA Excel
Пример 1
Смотрим, какие значения возвратит функция FreeFile с разными аргументами:
1 2 3 4 5 |
Sub Test1() MsgBox "FreeFile = " & FreeFile & vbNewLine _ & "FreeFile(0) = " & FreeFile(0) & vbNewLine _ & "FreeFile(1) = " & FreeFile(1) End Sub |
Пример 2
Открываем файл myFile.txt сначала для записи, потом для чтения, используя номер, возвращенный функцией FreeFile. Если такого файла не существует, он будет создан в каталоге по указанному адресу (при открытии для записи).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub Test2() Dim ff As Integer, str As String 'Получаем свободный номер для открываемого файла ff = FreeFile 'Открываем (или создаем) файл myFile.txt для записи Open ThisWorkbook.Path & "\myFile.txt" For Output As ff 'Записываем в файл текст Write #ff, "тридцать восемь попугаев" 'Закрываем файл Close ff 'Открываем файл myFile.txt для чтения Open ThisWorkbook.Path & "\myFile.txt" For Input As ff 'Считываем строку из файла в переменную Input #ff, str 'Закрываем файл Close ff 'Смотрим, что записалось в переменную MsgBox str End Sub |
Вы можете открыть файл myFile.txt для просмотра содержимого. Он находится в той же папке, в которой расположен файл Excel с кодом VBA из этого примера.
Попробуйте в строке с оператором Open заменить параметр Output на Append. Запустите несколько раз код на выполнение, откройте файл myFile.txt для просмотра результата.
Замените обратно параметр Append на Output, запустите код один раз и сравните результаты, открыв файл myFile.txt.