Con Windows Scripting Host
Lo que deseas es: Conocer el nombre de un archivo y luego pasarle ese nombre al command dialog y que sea el usuario el que decida donde y como guardarlo.
Si es así utiliza la referencia a "Windows Scripting Host"
con ella tendras el objeto FILESYSTEMOBJECT que te permitirá localizar el archivo que vas a abrir, desde el lado del programa sin que se entere el usuario y solo usar la interfaz del common para que se vea bonito.
CODIGO:
Dim fso As FileSystemObject
Dim archivolocalizar As String
Set fso = New FileSystemObject
'Primero le dices la ruta donde esta tu archivo y el archivo en sí
archivo = "Autoexec.bat"
rutaarchivo = "C:\"
archivolocalizar = rutaarchivo & archivo
'si existe abrimos el common dialog
If fso.FileExists(archivolocalizar) Then
'le pasamos el parametro al common dialog para que el usuario escoja la ubicación de su archivo.
Me.CommonDialog1.FileName = archivolocalizar
'abrimos el commmon
Me.CommonDialog1.ShowSave
'y recuperamos el valor de common al salir el usuario
archivofinal = Me.CommonDialog1.FileName
'por ultimo utilizamos el truco TA-TANNNN, usamos el FSO para copiar el archivo
Call fso.CopyFile(archivolocalizar, archivofinal, True)
'Ya para quedar mas seguros comprobamos si existe el nuevo archivo en el respaldo
If fso.FileExists(archivolocalizar) Then
Call MsgBox("el archivo " & archivo & " se ha copiado exitosamente")
Else
Call MsgBox("Hubo un error en la copia de " & archivo)
End If
End If
Saludos, espero que te sirva.