VBA Projects

Full Access with Source Code
  • Designed and Developed by PNRao

  • Full Access with VBA Source Code

  • Well Commented Codes Lines

  • Creative and Professional Design

Manage Your Projects

120+ Project Management Templates

Seamlessly manage your projects with our powerful & multi-purpose templates for project management.

120+ PM Templates Includes:
  • 50+ Excel Templates

  • 50+ PowerPoint Templates

  • 25+ Word Templates

Share Post

The VBA FileAttr function is used to retrieve certain attributes of a specified file. These attributes can include information such as the file’s name, size, or date created. This function is similar to the File System Object’s ‘GetFile’ method, but the FileAttr function allows for more control and flexibility in handling file attributes.

VBA FileAttr Function – Purpose, Syntax and Arguments


The main purpose of the FileAttr function is to retrieve file attributes, which can be useful in file management tasks such as renaming or deleting documents based on specific criteria. By accessing the attributes of a file, VBA code can perform certain operations or make decisions based on the information retrieved.


FileAttr(pathname, attributes)


  • pathname: This is a required argument and specifies the path and file name of the file that you want to retrieve attributes for.
  • attributes: This is an optional argument that specifies the attributes that you want to retrieve. It can be one or more values from the following list:
    • VbNormal: Default. Retrieves all file attributes.
    • VbReadOnly: Retrieves read-only attribute.
    • VbHidden: Retrieves hidden attribute.
    • VbSystem: Retrieves system attribute.
    • VbArchive: Retrieves archive attribute.
    • VbDirectory: Retrieves directory attribute.


Let’s take a look at a simple example of the FileAttr function in action. Say we have a folder with several text files and we want to retrieve the file attributes for each one. We can use the following code to do so:

Dim file As String
Dim attributes As Integer
file = "C:\Folder\TextFile1.txt"
attributes = FileAttr(file)
MsgBox "The attributes for " & file & " are: " & attributes

In this example, we have specified the path and file name of the first text file in our folder and assigned it to the variable “file”. We then use the FileAttr function to retrieve all the attributes for this file and store the result in the “attributes” variable. Finally, we display a message box that shows the attributes retrieved for this file.


  • The FileAttr function can only retrieve attributes for one file at a time.
  • If the file path is not valid, an error will occur.
  • This function can also be used to set file attributes by using a Set statement instead of a Let statement.
  • The file attributes retrieved are in the form of a binary code, so they may need to be converted to decimal or hexadecimal for readability.
  • The FileAttr function can also be used in conjunction with other functions, such as the Dir function, to retrieve specific file attributes for a set of files.

Important Notes:

  • The FileAttr function is a built-in function in VBA and does not require any external library or add-in.
  • The use of the FileAttr function is not limited to VBA programming in Microsoft Office applications. It can also be used in VBA scripting for other applications such as AutoCAD, SolidWorks, or MATLAB.
  • It is important to note that the file attributes retrieved by this function are not limited to just the standard ones (read-only, hidden, system, archive). The FileAttr function can also retrieve custom attributes set by the user or other applications.

VBA FileAttr function is a useful tool in VBA for retrieving file attributes and can greatly assist in managing files and performing various tasks within VBA code. With its flexibility and versatility, it can be a valuable addition to any programmer’s toolbox.

Understanding VBA FileAttr Function with Examples

Example 1: Checking File Attributes and Permissions

File attributes refer to a set of characteristics that describe a file, such as its size, type, creation date, and read/write/execute permissions. These attributes are important for understanding and manipulating files within a computer system. The VBA (Visual Basic for Applications) language provides a useful function, called FileAttr, for retrieving and setting file attributes.


Dim attr As Integer
attr = FileAttr("C:\Users\JohnDoe\Documents\Report.docx")
Debug.Print attr


In this example, we are using the FileAttr function to retrieve the file attributes of a Word document located at C:\Users\JohnDoe\Documents\Report.docx. The function takes a file path as its parameter and returns an Integer value that represents the file’s attributes.


The output of this code will depend on the attributes of the specific file. The Debug.Print attr statement will print the integer value representing these attributes in the Immediate window of the VBA editor.

Example 2: Retrieving Specific File Attributes

The FileAttr function also allows us to retrieve specific attributes of a file using what is known as attribute constants. These constants are predefined variables that represent each file attribute and can be combined with bitwise operators to retrieve multiple attributes at once. The following code retrieves and prints the size and system attributes of a file:


Dim attr As Integer
attr = FileAttr("C:\Users\JohnDoe\Documents\Report.docx")
Debug.Print (attr And vbDirectory) 'size attribute
Debug.Print (attr And vbSystem) 'system attribute


Here, we are using the bitwise operator And to combine the constants vbDirectory and vbSystem with the file’s attributes retrieved by the FileAttr function. The vbDirectory constant represents the size attribute, while the vbSystem constant represents the system attribute.


The output of this code will depend on the file’s attributes, but in general, the first Debug.Print statement will print 0 if the file is not a directory and 1 if it is, while the second Debug.Print statement will print 0 if the file is not a system file and 4 if it is.

Example 3: Setting File Attributes

The FileAttr function also allows us to set specific attributes of a file. This can be useful when working with sensitive files or when changing the read/write/execute permissions of a file. The following code sets the hidden and read-only attributes of a file:


Dim attr As Integer
attr = FileAttr("C:\Users\JohnDoe\Documents\Report.docx")
FileAttr ("C:\Users\JohnDoe\Documents\Report.docx", attr Or vbHidden Or vbReadOnly)
Debug.Print FileAttr("C:\Users\JohnDoe\Documents\Report.docx")


We first retrieve the file’s attributes using the FileAttr function and store it in the variable attr. Then, we use the bitwise operator Or to combine the constants vbHidden and vbReadOnly with the file’s attributes and pass this value to the FileAttr function as the second parameter. This updates the file’s attributes with the new combination of values. Finally, we use the FileAttr function again to retrieve and print the updated attributes.


The output of this code will depend on the file’s attributes and the attributes that were set in the code. In general, the Debug.Print statement will print an integer value representing the file’s combined attributes, in this case, both the hidden and read-only attributes.

Example 4: Addressing Common Errors

When using the FileAttr function, it is important to be aware of potential errors that may occur. One of the most common errors is the “Path/File access error” which can be caused by various reasons, such as an incorrect file path or insufficient permissions. The following code shows how we can handle this error using the On Error statement:


Dim attr As Integer
On Error GoTo ErrorHandler
attr = FileAttr("C:\Users\JohnDoe\Documents\Report.docx")
Debug.Print attr
Exit Sub
Debug.Print "Path/File access error"
End Sub


In this example, we use the On Error statement to handle any potential errors that may occur when retrieving the file’s attributes. If an error occurs, the code will jump to the ErrorHandler label which displays a message in the Immediate window. By using the On Error statement, we can handle and address errors without the code stopping or crashing.


The output of this code will be the error message generated by the ErrorHandler label, in this case, “Path/File access error” if an error occurs while trying to retrieve the file’s attributes.


Understanding and managing file attributes is an essential part of working with files in any programming language. The FileAttr function in VBA allows us to retrieve and set these attributes, providing a great deal of control over our files. By using this function with the appropriate attribute constants and error handling techniques, we can effectively work with file attributes in our VBA projects.

Effortlessly Manage Your Projects and Resources
120+ Professional Project Management Templates!

A Powerful & Multi-purpose Templates for project management. Now seamlessly manage your projects, tasks, meetings, presentations, teams, customers, stakeholders and time. This page describes all the amazing new features and options that come with our premium templates.

Project Management Templates

All-in-One Pack
120+ Project Management Templates

Essential Pack
50+ PM Templates

Excel Pack
50+ Excel PM Templates

PowerPoint Pack
50+ Excel PM Templates

MS Word Pack
25+ Word PM Templates

Ultimate Project
Management Template
Ultimate Resource
Management Template
Project Portfolio
Management Templates
Categories: VBA FunctionsTags: , , , , Last Updated: September 30, 2023

Leave A Comment