SetAttr Statement

Named Arguments



SetAttr pathname, attributes


Use: Required

Data Type: String

The name of the file whose attributes are to be set.


Use: Required

Data Type: Integer

Numeric expression or constant specifying the attributes.


Changes the attribute properties of a file.

Rules at a Glance

  • Visual Basic now includes the following intrinsic constants for setting file attributes:

    Constant Value Description
    vbNormal 0 Normal (default)
    vbReadOnly 1 Read-only
    vbHidden 2 Hidden
    vbSystem 4 System file
    vbArchive 32 File has changed since last backup
  • File attributes' constants can be added together or logically ORed to set more than one attribute at the same time. For example:

    SetAttr "SysFile.Dat", vbSystem Or vbHidden
    SetAttr "MyFile.Txt", vbArchive + vbReadOnly
  • pathname can include a drive letter. If a drive letter isn't included in pathname, the current drive is assumed. If a drive letter is used, the fully qualified path is required unless the file is located in the current directory.

  • pathname can include a folder name. If the folder name isn't included in pathname, the current folder is assumed.

  • Attempting to set the attributes of an open file will generate a runtime error.


Private Sub AddAttributes(strFN As String, _
                          intNewAttrib As Integer)

Dim intAttrib As Integer

intAttrib = GetAttr(strFN)
SetAttr strFN, intAttrib Or intNewAttrib

End Sub

Programming Tips and Gotchas

  • Setting file attributes simultaneously clears any ...

Get VB & VBA in a Nutshell: The Language now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.