Код статьи: 288543 - Последнее изменение :: 26 сентября 2003 г. - Редакция: 1.0

Информация об объекте FileDialog приложений из семейства Microsoft Office XP

Совет по использованию системыЭта статья относится к операционной системе, отличной от установленной на вашем компьютере. Содержимое, не относящееся к используемой системе, отключено.
Развернуть все | Свернуть все

Аннотация

Приложения из семейства Microsoft Office XP предоставляют доступ к объекту FileDialog, позволяющему обеспечить функциональность, сходную со стандартными диалоговыми окнами Открыть и Сохранить, которые реализованы во всех приложениях Office XP. Путем использования объектов FileDialog в приложениях на языке VBA (Visual Basic for Application, Visual Basic для приложений) вы можете легко разработать пользовательский интерфейс для выбора файлов или их переименования без привлечения дополнительных элементов управления ActiveX или решений сторонних разработчиков.

Дополнительная информация

Для использования объекта FileDialog вы должны сначала обратиться к свойству FileDialog объекта приложения Office XP Application и задать аргумент для типа диалога DialogType. Существует четыре типа диалога для работы с файлами:
  • Open Dialog (msoFileDialogOpen) – позволяет пользователям выбрать один или более файлов. После осуществления выбора вы можете открыть выбранный файл или файлы в соответствующем приложении путем использования метода Execute.
  • SaveAs Dialog (msoFileDialogSaveAs) – позволяет пользователям указать какой-либо единственный файл. После осуществления выбора вы можете сохранить текущий файл путем использования метода Execute.
  • File Picker Dialog (msoFileDialogFilePicker) – позволяет пользователям выбрать один или более файлов. Пути к файлам, выбранным пользователям, сохраняются в коллекции элементов FileDialogSelectedItems.
  • Folder Picker Dialog (msoFileDialogFolderPicker) – позволяет пользователям выбрать папку. Путь к выбранной папке сохраняется в коллекции элементов FileDialogSelectedItems.
Каждое приложение Office, предоставляющее рассматриваемый объект, может обрабатывать только один экземпляр объекта FileDialog. Многие свойства объекта FileDialog запоминаются даже при создании нескольких копий объектов FileDialog. Поэтому вам следует инициализировать все свойства диалогов в соответствии с поставленными целями, перед тем как диалоговое окно будет выведено на экран.

Как только вы создали ссылку на некоторый объект FileDialog, вы можете отобразить диалоговое окно на экране путем использования метода Show. Все объекты FileDialog являются модальными диалогами, поэтому, как только какое-либо диалоговое окно выводится на экран, выполнение любого программного кода приостанавливается до тех пор, пока данное диалоговое окно не будет закрыто. В вашем исполняемом коде может проверяться значение, возвращаемое методом Show, чтобы определить, принял или отменил пользователь произведенное им выделение файла (папки), и затем обработать результат в соответствии с решаемыми задачами.

В нижеприведенном примере программного кода на языке VBA создается и выводится на экран диалоговое окно типа File Picker. При запуске данного кода для отображения диалогового окна выберите один или более файлов и затем нажмите кнопку OK для закрытия этого диалогового окна. Каждый выделенный вами файл будет указан в окне сообщения. Обратите внимание на то, что вы можете использовать комбинацию клавиш "CTRL+SHIFT" на клавиатуре с целью выделения сразу нескольких файлов.
Sub Main()

    'Объявление переменной как объекта FileDialog.
    Dim fd As FileDialog

    'Создание объекта FileDialog как диалогового окна типа File Picker.
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    'Объявление переменной для хранения пути к каждому выбранному элементу.
    'Несмотря на то что путь представляет собой строковую переменную (String),
    'данная переменная должна являться объектом типа Variant, поскольку процедура
    'цикла For Each...Next работает только с объектами Variant и Object.
    Dim vrtSelectedItem As Variant

    'Использование блока With...End With для создания ссылки на объект FileDialog.
    With fd

        'Использование метода Show для вывода диалогового окна типа File Picker.
        'Пользователь нажал кнопку подтверждения действия.
        If .Show = -1 Then

            'Перебор элементов из коллекции FileDialogSelectedItems.
            For Each vrtSelectedItem In .SelectedItems

                'vrtSelectedItem содержит путь к каждому выбранному элементу.
                'Здесь можно использовать любые нужные функции ввода/вывода по отношению к полученному пути.
                'В данном примере путь просто отображается в окне сообщения.
                MsgBox "Путь: " & vrtSelectedItem

            Next vrtSelectedItem
        'Пользователь нажал кнопку отмены действия.
        Else
        End If
    End With

    'Очистка значения переменной-ссылки.
    Set fd = Nothing

End Sub
				
После вызова метода Show с целью отображения диалогового окна для работы с файлами, в том случае, если это диалоговое окно имеет тип msoFileDialogOpen илиmsoFileDialogSaveAs, вы можете выполнить метод Execute для осуществления действия по умолчанию для открытия или сохранения элементов. Например, если диалоговое окно имеет тип msoFileDialogOpen, вы можете вызвать метод Execute для открытия файла, выбранного пользователем.

Дополнительное примечание

Поскольку доступ к диалоговому окну для работы с файлами может быть осуществлен только путем обращения к свойству FileDialog объекта Application любого приложения Office, для использования любого такого диалогового окна в Office XP требуется, чтобы уже был запущен экземпляр соответствующего приложения Office XP. Следовательно, вы не можете использовать диалоговые окна Office XP для работы с файлами из приложений, не входящих в семейство Microsoft Office, без применения процедуры автоматизации для нужного приложения Office.

Ссылки

За дополнительной информацией обратитесь к следующей статье Microsoft Knowledge Base:
279508  (http://support.microsoft.com/kb/279508/RU/ ) ACC2002: How to Display and Use the File Dialog Box in Microsoft Access 2002

Информация в данной статье применима к:
  • Microsoft Office XP Developer Edition
  • Microsoft Access 2002 Standard Edition
  • Microsoft Excel 2002 Standard Edition
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft Word 2002 Standard Edition
Ключевые слова: 
kbinfo KB288543