logo
Конспект лекций по КИТ

Объект FileSearch

Объект FileSearch обладает функциональными возможностями диалогового окна Открытие документа (Open), отображаемого на экране_посредством вы­бора команды Файл, Открыть (File, Open). Объект FileSearch входит в объ­ект Application и иерархически включает в себя (рис.):

Рис. Иерархическая структура объекта FileSearch

Объект FileSearch возвращается свойством FileSearch объекта Application. Объект FileSearch имеет следующие два метода.

Execute

Поиск специфицированных файлов. Синтаксис:

Execute(SortBy, SortOrder, AlwaysAccurate)

Аргументы:

  • SortBy — устанавливает способ сортировки файлов. До­пустимые значения: msoSortbyFileName,msoSortbyFileType, msoSortbyLastModified и msoSortbySize

  • SortOrder — устанавливает порядок сортировки файлов.

Допустимые значения: msoSortOrderAscending и msoSortOrderDescending

- AlwaysAccurate — допустимые значения: True (поиск сре­ди измененных файлов) и False (в противном случае)

NewSearch

Устанавливает критерии, используемые при поиске по умол­чанию

Приведем наиболее часто применяемые свойства объекта FileSearch.

FileName

Устанавливает имя файла для поиска. Допустимо ис­пользование символов (*) и (?)

FileType

Задает тип файла для поиска. Допустимые значения:

MsoFileTypeAllFiles, msoFileTypeBinders, msoFile-TypeDatabases, msoFileTypeExcelWorkbooks, msoFi-leTypeOffice Files, ms о FileTypePowerPoint Presen­tations, msoFileTypeTemplates и msoFileTypeWordDocuments

Lookin

Задает папку для поиска файла

SearchSubFolders

Допустимые значения: True (поиск также проводить в поддиректориях) и False (в противном случае)

Следующий пример позволяет в поле со списком диалогового окна вывести Список всех файлов текущей папки:

Prrivate 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.AddItem .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(.FoundFiles(i)) _

- ДлинаПути - 1)

ComboBoxl. Addltem ИмяФайла Next i

End If

End With

End Sub