Я использую следующий код для диалога открытия файла, чтобы открыть файл CDR в CorelDraw. Это откроет диалог, однако мне нужно использовать Alt + Tab, чтобы увидеть его. Кроме того, во многих случаях это приводит к полному зависанию приложения. Есть идеи?
Private Sub cmdCDRFile_Click()
Dim str As String
Dim objFileDialog As Office.FileDialog
Dim objFileDialogFilters As Office.FileDialogFilters
Dim CDRFileOject As Excel.Application
Set CDRFileOject = New Excel.Application
Set objFileDialog = CDRFileOject.Application.FileDialog(msoFileDialogType.msoFileDialogFilePicker)
If CDRInitialFolder = "" Then
CDRInitialFolder = "C:\Users\<user name here>\Desktop"
End If
With objFileDialog
'define a Filters object
Set objFileDialogFilters = .Filters
With objFileDialogFilters
'clear the default filters
.Clear
'add a filter, all filters must start with an asterisk
.Add "CDR template Files", "*.CDR"
End With
.InitialFileName = CDRInitialFolder
'allow only one file to be selected
.AllowMultiSelect = False
Dim hxl As Long
hxl = FindWindowA("XLMAIN", "Excel")
If (hxl <> 0) Then
res = SetForegroundWindow(hxl)
End If
'show the dialog and exit if Cancel is pressed
If objFileDialog.Show = 0 Then
Exit Sub
End If
End With
txtCDRFile.Text = objFileDialog.SelectedItems(1)
CDRFileOject.Quit
Set CDRFileOject = Nothing
CDRInitialFolder = Left(txtCDRFile.Text, InStrRev(txtCDRFile.Text, "\"))
End Sub