Veja função CopyFolder usando a API SHFileOperation:
Option Explicit
Public Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Public Type SHFILEOPSTRUCT
hWnd As Long
wFunc As Long
pFrom As String
pTo As String
fFlags As Integer
fAborted As Boolean
hNameMaps As Long
sProgress As String
End Type
Public Const FO_COPY = &H2
Public Const FOF_CONFIRMMOUSE = &H2
Public Const FOF_SILENT = &H4
Public Const FOF_NOCONFIRMATION = &H10
Public Const FOF_NOCONFIRMMKDIR = &H200
Public Function CopyFolder(FromFolder As String, ToFolder As String) As Boolean
Dim SHDirOp As SHFILEOPSTRUCT
With SHDirOp
.wFunc = FO_COPY
.pFrom = FromFolder
.pTo = ToFolder
.fFlags = FOF_SILENT Or FOF_NOCONFIRMATION Or FOF_NOCONFIRMMKDIR Or FOF_CONFIRMMOUSE
End With
CopyFolder = (SHFileOperation(SHDirOp) = 0)
End Function
Public Sub Main()
CopyFolder "d:\Artigos", "c:\CopiaArtigos"
End Sub