Есть ли способ управления FileDialog в VBA, чтобы курсор перемещался в начало списка файлов в открытом FileDialog? (Кажется, что курсор всегда находится в элементе управления именем файла FileDialog.)
Я хотел бы использовать клавишу со стрелкой вниз для перемещения по списку файлов в начальной папке открытого FileDialog. (Вместо того, чтобы использовать мышь для выбора файла в списке файлов.)
Нажатие клавиши TAB 10 раз перемещает курсор в верхнюю часть списка, но я хотел бы автоматизировать этот процесс. Насколько я могу судить, я не могу использовать SendKeys - ни до .Show, ни после. Поэтому я не думаю, что смогу передать {TAB} как нажатие клавиши программно.
Я пишу код в Outlook, но мне нужно использовать Excel, потому что Outlook не поддерживает FileDialog.
Это взято из большой функции.
'Launch File Browser
'NOTE: Outlook actually does NOT support the FileDialog, so you need
' to hack a solution and use another Office app instead
'This uses Excel to open the FileDialog
Dim xlobj As Excel.Application
Set xlobj = New Excel.Application
With xlobj.FileDialog(msoFileDialogFilePicker)
.InitialFileName = strStartFolderPath
.Filters.Add "All files", "*.*"
.Title = "Please Select a File to Attach"
.AllowMultiSelect = True
' Try SendKeys Here? - Does NOt work
SendKeys "{TAB}"
.Show
' Try SendKeys Here? Does NOT Work because VBA waits for FileDialog
'SendKeys "{TAB}"
For i = 1 To .SelectedItems.Count
varSelectedItem = .SelectedItems(i)
objItem.Attachments.Add varSelectedItem
Next i
End With
xlobj.Quit
Set xlobj = Nothing
Set myItem = Nothing
Set objItem = Nothing
Set myolapp = Nothing