Рассматривая общие объекты, используемые при организации пользовательского интерфейса, нельзя не упомянуть коллекцию Dialogs, которую можно использовать в приложениях Word и Excel. Элементы этой коллекции - объекты класса Dialog представляют встроенные в приложение диалоговые окна, появляющиеся по ходу работы с документами. Из этой коллекции ничего нельзя удалить и ничего в нее нельзя добавить. В любой момент можно только открыть любое из существующих встроенных диалоговых окон и предоставить пользователю возможность работы с ним, например, открыть файл или организовать поиск нужной информации. Чтобы добраться до нужного диалогового окна, используется обычная конструкция: Dialogs (<имя окна>), где имя окна задается константой. Все имена констант строятся по одному принципу, - они начинаются с префикса wdDialog или xlDialog (для Word и Excel соответственно), а затем идет имя окна. В приложении Word это полное имя, включающее все меню, которые надо открыть при вызове диалогового окна "вручную". Так, например, для открытия диалогового окна "Open" из меню File в приложении Word следует вызвать метод Show следующим образом:
Dialogs(wdDialogFileOpen).Show
Сразу же появится окно:
В Excel этот же вызов будет иметь вид:
Application.Dialogs(xlDialogOpen).Show
Заметьте, что в первом случае - это глобальный объект и поэтому его можно вызывать непосредственно, в Excel же необходимо указание корневого объекта Application, чье свойство Dialogs и возвращает коллекцию Dialogs. Но зато в Excel достаточно короткого имени для вызова диалогового окна. Метод Show открывает диалоговое окно и позволяет пользователю работать в нем. В зависимости от того, какую кнопку нажал пользователь при выходе из окна, возвращается результат: в Excel это True или False (нажаты кнопки OK или Cancel), в Word можно точнее проанализировать, какая кнопка была нажата. Метод Show - основа работы с диалоговыми окнами, по сути больше ничего и не нужно: в нужный момент открывается нужное диалоговое окно, пользователь работает в нем и по закрытии можно понять, успешно ли закончилась его работа.