To duplicate the built-in process, you should add a SaveAs after opening the
file:
Sub OpenACopy()
Dim fDialog As FileDialog
Dim Newfile As String
Dim NewPath As String, NewName As String, NewFullName As String
Dim NewNum As Long, NewPos As Long
Dim sTitle As String
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
sTitle = "Open a copy"
With fDialog
.Title = sTitle
.AllowMultiSelect = False
.InitialView = msoFileDialogViewList
If .Show <> -1 Then
MsgBox "Cancelled By User", , sTitle
Exit Sub
End If
Newfile = fDialog.SelectedItems.Item(1)
End With
NewPos = InStrRev(Newfile, Application.PathSeparator)
NewPath = Left$(Newfile, NewPos)
NewName = Mid$(Newfile, NewPos + 1)
NewNum = 0
Do
NewNum = NewNum + 1
NewFullName = NewPath & "Copy(" & NewNum & ")" & NewName
Loop Until Dir$(NewFullName) = ""
With Documents.Add(Newfile)
.SaveAs NewFullName
End With
End Sub