Шаг 160.
VBA в MSExcel.
Работа с файлами. Объект FileSearch

    На этом шаге мы рассмотрим назначение и использование этого объекта.

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


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

    Объект FileSearch возвращается свойством FileSearch объекта Application.

    Объект FileSearch имеет следующие два метода.

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

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

Private Sub UserForm_Initialize()
 ListBox1.Clear
 With Application.FileSearch
  .Filename = "*.*"
  .SearchSubFolders = False
  If .Execute(SortBy:=msoSortByFileName, _
       SortOrder:=msoSortOrderAscending) > 0 Then
    For i = 1 To .FoundFiles.Count
      ListBox1.AddItem .FoundFiles(i)
    Next i
  End If
 End With
End Sub
Текст этого примера можно взять здесь.

    Результат работы процедуры приведен на рисунке 2.


Рис.2. Список файлов вместе с путями доступа

    Данная процедура отображает в поле со списком полные имена файлов, т.е. имя файла и путь. Для того чтобы в списке отображались только имена файлов (без пути), процедуру можно модифицировать следующим образом:

Private Sub UserForm_Initialize()
 Dim ИмяПапки As String
 Dim ИмяФайла As String
 Dim ДлинаПути As Integer
 
 ListBox1.Clear
 
 ИмяПапки = CurDir
 ДлинаПути = Len(ИмяПапки)
 
 With Application.FileSearch
  .Filename = "*.*"
  .SearchSubFolders = False
  If .Execute(SortBy:=msoSortByFileName, _
       sortorder:=msoSortOrderAscending) > 0 Then
    For i = 1 To .FoundFiles.Count
      ИмяФайла = Right(.FoundFiles(i), Len(.FoundFiles(i)) _
           - ДлинаПути - 1)
      ListBox1.AddItem ИмяФайла
    Next i
  End If
 End With
End Sub
Текст этого примера можно взять здесь.

    Результат работы процедуры приведен на рисунке 3.


Рис.3. Список файлов без путей доступа

    Со следующего шага мы начнем рассматривать пользовательские объекты.




Предыдущий шаг Содержание Следующий шаг