excelvbafilesystemobject

How do I use FileSystemObject in VBA?


Is there something that I need to reference? How do I use this:

Dim fso As New FileSystemObject
Dim fld As Folder
Dim ts As TextStream

I am getting an error because it does not recognize these objects.


Solution

  • Within Excel you need to set a reference to the VBScript run-time library. The relevant file is usually located at \Windows\System32\scrrun.dll

    This can also be done directly in the code if access to the VBA object model has been enabled.

    Access can be enabled by ticking the check-box Trust access to the VBA project object model found at File > Options > Trust Center > Trust Center Settings > Macro Settings

    VBA Macro settings

    To add a reference:

    Sub Add_Reference()
    
        Application.VBE.ActiveVBProject.References.AddFromFile "C:\Windows\System32\scrrun.dll"
    'Add a reference
    
    End Sub
    

    To remove a reference:

    Sub Remove_Reference()
    
    Dim oReference As Object
    
        Set oReference = Application.VBE.ActiveVBProject.References.Item("Scripting")
    
        Application.VBE.ActiveVBProject.References.Remove oReference
    'Remove a reference
    
    End Sub