VBA FreeFile Function

FreeFile Description

Returns the next valid free file number (Integer).

FreeFile Syntax

In the VBA Editor, you can type  “FreeFile(” to see the syntax for the FreeFile Function:

The FreeFile function contains an argument:

RangeNumber: [Optional] 0(default) to return file number in range 1-255. 1 to return file number in range 256-511.

Examples of Excel VBA FreeFile Function

Please run the following code.

Sub FreeFile_Example()
    Dim nIndex As Integer
    Dim nFileNumber As Integer
    Dim arrFileNumber(1 To 3) As Integer
    
    For nIndex = 1 To 3
        nFileNumber = FreeFile    ' Get unused file number
        arrFileNumber(nIndex) = nFileNumber
            ' number.
        Open "D:\test" & nIndex & ".txt" For Output As nFileNumber  ' Create file name.
        Write #nFileNumber, "The file number of this file is " & nFileNumber  ' Output text."
    Next nIndex
    
    For nIndex = 1 To 3
        Close arrFileNumber(nIndex)  ' Close file.
    Next nIndex
End Sub

This will create 3 files on the D drive.

test1.txt: “The file number of this file is 1”

test2.txt: “The file number of this file is 2”

test3.txt: “The file number of this file is 3”

This shows that returns 1, 2, 3 by FreeFile function.