Calling FileOpen dialog in VBA does not allow opening of multiple files
Article contributed by Ibby
If you call the FileOpen dialog using the following code, you will receive an error if you try to open multiple files using the dialog:
Dialogs(wdDialogFileOpen).Show
The workaround is to show the dialog by executing the appropriate toolbar button:
CommandBars.FindControl(ID:=23, Visible:=False).Execute
Setting Visible:=False (which is the default anyway) will ensure the button will be executed even if it's invisible (i.e.: even if the user has doesn't have it displayed in their toolbar).
If you also want to find out which files were, in fact, opened by the user, you could use the following code which was originally posted in the newsgroups by Christa Siebe:
Sub LoadSeveralFiles()
Dim OpenDlg As
CommandBarControl
Dim oldDocs() As String
Dim i As Long, j
As Long
Dim IsNewDoc As Boolean
ReDim oldDocs(1 To Application.Documents.Count)
'because documents start with 1 as well...
For j = 1 To Application.Documents.Count
oldDocs(j) = Application.Documents(j).FullName
Next
Set OpenDlg = CommandBars.FindControl(ID:=23)
OpenDlg.Execute
If UBound(oldDocs) < Application.Documents.Count
Then
MsgBox "one or more files are opened!"
For i = 1 To
Application.Documents.Count
IsNewDoc =
Truee
For j =
1 To UBound(oldDocs)
If
Application.Documents(i).FullName = oldDocs(j)
Then
IsNewDoc = False
Exit For
End If
Next j
If
IsNewDoc
Then
MsgBox "Doc
'" & Application.Documents(i).FullName & "' is a new one..."
End If
Next i
End Iff
End Sub