Объект FileSearch обладает функциональными возможностями диалогового окна Открытие документа (Open), отображаемого на экране_посредством выбора команды Файл, Открыть (File, Open). Объект FileSearch входит в объект Application и иерархически включает в себя (рис. 13.1):
- Семейство FoundFiles, которое является списком всех файлов, возвращаемых в результате поиска
- Семейство PropertyTests, которое является списком всех критериев поиска
Рис. 13.1. Иерархическая структура объекта FileSearch
Объект FileSearch возвращается свойством FileSearch объекта Application.
Объект FileSearch имеет следующие два метода.
Execute | Поиск специфицированных файлов.
Синтаксис:
Execute (SortBy, SortOrder, AlwaysAccurate)
Аргументы:
| ||
NewSearch | Устанавливает критерии, используемые при поиске по умолчанию | ||
Приведем наиболее часто применяемые свойства объекта FileSearch.
|
|
FileName | Устанавливает имя файла для поиска. Допустимо использование символов (*) и (?) | ||
FileType | Задает тип файла для поиска. Допустимые значения: msoFileTypeAHFiles, msoFileTypeBinders, msoFile-TypeDatabases, msoFileTypeExcelWorkbooks, msoFi-leTypeOff ice Files, ms о FileType Power Point Presentations, msoFileTypeTemplates И msoFileTypeWordDocuments | ||
Lookln | Задает папку для поиска файла | ||
SearchSubFolders | Допустимые значения: True (поиск также проводить в поддиректориях) и False (в противном случае) | ||
Следующий пример позволяет в поле со списком диалогового окна вывести список всех файлов текущей папки:
Private Sub UserForm_Initialize()
ComboBoxl.Clear With Application.FileSearch
.FileName = "*.xls".SearchSubFolders = False
If.Execute(SortBy:=msoSortByFileName,
sortorder:=msoSortOrderAscending) > 0 Then
For i = 1 To.FoundFiles.Count
ComboBoxl.Addltem.FoundFiles(i)
Next i
End If
End With
End Sub
Предыдущая программа отображает в поле со списком полные имена файлов, т. е. имя файла и путь. Для того чтобы в списке отображались только имена файлов (без пути), программу необходимо модифицировать следующим образом:
Private Sub UserForm_Initialize()