ПХЯ 13 1 Иерархическая структура объекта FileSearch
пХЯ. 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()
Dim ИмяПапки As String
Dim ИмяФайла As String
Dim ДлинаПути As Integer
ComboBoxl.Clear ИмяПапки = CurDir ДлинаПути = Len(ИмяПапки)
With Application.FileSearch .FileName = "*.xls"
.SearchSubFolders = False
If .Execute (SortBy:=msoSortByFileName,
sortorder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
ИмяФайла = Right(.FoundFiles(i), Len(.FqundFiles(i))
- ДлинаПути - 1) ComboBoxl.Addltem ИмяФайла
Next i
End If
End With
End Sub