Закрытие диалогового окна
Модальное диалоговое окно закрывается, когда пользователь выбирает одну из кнопок, обычно кнопку «ОК» или кнопку «Отмена». При нажатии кнопки «ОК» или «Отмена» Windows отправляет объект диалогового окна BN_CLICKED сообщение с идентификатором кнопки, idOK или IDCANCEL. CDialog предоставляет функции обработчика по умолчанию для этих сообщений: OnOK и OnCancel . Обработчики по умолчанию вызывают функцию-член, EndDialog чтобы закрыть диалоговое окно. Вы также можете вызывать EndDialog из собственного кода. Дополнительные сведения см. в функции-члене EndDialog класса CDialog в справочнике по MFC.
Чтобы упорядочить закрытие и удаление бессерверного диалогового окна, переопределите PostNcDestroy и вызовите delete оператор на указателе this . При уничтожении диалогового окна объясняется, что произойдет дальше.
Диалоговое окно Найти и заменить в документах Word 2010
После того как вы познакомились с функциями перехода по документу, вставки, вырезания и копирования текста, вам, несомненно, будет намного проще работать с тестовым процессором Microsoft Word. Однако давайте представим такую ситуацию, когда вам необходимо проверить многостраничный текст на предмет наличия одного слова или символа, и в случае нахождения данного слова его необходимо заменить на другое, например на синоним.
Согласитесь, чтобы вручную проделать такую работу, придется потратить уйму времени. Однако в текстовом процессоре Microsoft Word есть специальный инструмент для решения данной задачи — диалоговое окно Найти и заменить (Find and Replace) (рис. 4.13).
Рис. 4.13. Диалоговое окно Найти и заменить, открытое на вкладке Заменить
Это диалоговое окно совмещает в себе сразу три инструмента: инструменты для поиска и замены слов, символов и словосочетаний, а также инструменты для перехода к нужным объектам в документе.
[box color=primechanie]Если, не закрывая окно Найти и заменить (Find and Replace), переключиться с одного документа, открытого в программе Microsoft Word, на другой, то диалоговое окно будет работать для другого документа с сохранением всех введенных параметров.[/box]
Давайте познакомимся с каждым из инструментов диалогового окна Найти и заменить (Find and Replace) поподробнее.
Вкладка Найти
Это первая вкладка диалогового окна Найти и заменить (Find and Replace). Она помогает пользователю искать в документах фрагменты текста, символы, словосочетания и специальные непечатные знаки. Чтобы вызвать диалоговое окно Найти и заменить (Find and Replace), необходимо открыть панель Навигация (Navigation) и в верхней части панели нажать кнопку справа от поля ввода Поиск в документе (Search Document). В открывшемся контекстном меню нужно выбрать пункт Найти (Find), щелкнув по нему мышью. Откроется диалоговое окно Найти и заменить (Find and Replace) на вкладке Найти (Find).
Поиск по документу
Чтобы начать поиск по документу, достаточно ввести в поле ввода Найти (Find) нужное слово, символ или словосочетание и нажать кнопку Найти далее. После этого текстовый процессор Microsoft Word покажет первое совпадение введенного значения в тексте, расположенном после текущего курсора. Совпадение с поисковым запросом будет отображаться текстом на сине-сером фоне. Чтобы перейти к следующему совпадению поискового запроса с содержанием документа, нужно вновь нажать кнопку Найти далее (Find Next).
[box color=primechanie]Если поиск искомого выражения был осуществлен до конца документа, программа Microsoft Office автоматически продолжит его с начала документа до текущего положения курсора.[/box]
В случае если значение поискового запроса не найдено, откроется диалоговое окно, содержащее информацию об этом.
[box color=sovet]Если вы хотите повторно найти выражение, которое уже вводили в поле ввода Найти (Find what), воспользуйтесь раскрывающимся списком, который содержит все вводимые за текущий сеанс работы ключевые значения.[/box]
Поиск в выделенном фрагменте
Чтобы найти выражение в выделенном фрагменте текста, необходимо сначала выделить нужную часть документа, ввести искомый текст в поле ввода Найти (Find what), затем нажать кнопку Найти в (Find In) и в открывшемся контекстном меню выбрать Текущий фрагмент (Current selection). Если в указанном фрагменте содержится искомое выражение, то в диалоговом окне Найти и заменить (Find and Replace) над кнопками поиска появится сообщение Число элементов, найденных приложением Word (Word found items matching this criteria) и количество найденных выражений.
[box color=sovet]Если вы хотите изменить выделенный фрагмент, необязательно закрывать диалоговое окно Найти и заменить (Find and Replace): достаточно выделить нужный участок документа и снова воспользоваться кнопками поиска.[/box]
Если вы хотите вновь установить в качестве места поиска весь документ и узнать количество встречающихся выражений в содержании всего документа, нажмите кнопку Найти в (Find In) и в контекстном меню выберите пункт Основной документ (Main Document).
Выделение всех вхождений искомого выражения
Текстовый процессор Microsoft Word поддерживает функцию подсветки всех вхождений искомого выражения в документ. Оно подсвечивается желтым фоном (рис. 4.14). Чтобы подсветить все вхождения искомого выражения в документе, необходимо в диалоговом окне Найти и заменить (Find and Replace) нажать кнопку Выделение при чтении (Reading Highlight) и в открывшемся контекстном меню щелкнуть мышью по пункту Выделить все (Highlight all).

Рис. 4.14. Текстовый документ с подсвеченным поисковым запросом «Буква “в”»
После этого все встречающиеся в документе совпадения с поисковым запросом будут подсвечены. Чтобы отменить выделение встречающихся совпадений, необходимо нажать кнопку Выделение при чтении (Reading Highlight) и в открывшемся контекстном меню выбрать пункт Снять выделение (Clear Highlighting).
[box color=primechanie]Если пункт Снять выделение (Clear Highlighting) неактивен, значит, выделение в данный момент не установлено.[/box]
Данная функция продолжает работать даже после закрытия диалогового окна Найти и заменить (Find and Replace), что существенно помогает при дальнейшем редактировании документа.
[box color=primechanie]Обратите внимание на то, что приложение Microsoft Word учитывает знаки пробела. Так, поисковый запрос «в» найдет все буквы «в» в тексте, а запрос с пробелами « в » покажет вам только предлоги. Регистр букв при этом не важен.[/box]
Дополнительные параметры поиска
Поиск в текстовом процессоре Microsoft Word имеет дополнительные параметры, позволяющие существенно уточнить поисковый запрос. Для того чтобы воспользоваться дополнительными средствами поиска, необходимо в диалоговом окне Найти и заменить (Find and Replace) на вкладке Найти (Find) нажать кнопку Больше>> (More>>). После нажатия на эту кнопку диалоговое окно раскроется, и вы увидите дополнительные параметры поиска (рис. 4.15).

Рис. 4.15. Вкладка Найти диалогового окна Найти и заменить в расширенном виде
Группа элементов Параметры поиска (Search Options) позволяет корректировать вывод запросов, исключая вывод результатов, не подходящих по регистру, или же расширяя вывод запросов, игнорируя окончания, пробелы или знаки препинания. Для активации любого из дополнительных параметров поиска необходимо установить флажок напротив нужного параметра.
[box color=primechanie]Дополнительный параметр Произносится как (Sounds like (English)), позволяющий сформировать поисковый запрос из транскрипции звучания слова или слога, работает только с английским языком.[/box]
Чтобы вернуться в обычный режим поиска, необходимо нажать кнопку
Поиск спецальных знаков и непечатных символов
Помимо поиска видимого текста программа Microsoft Word может осуществлять поиск по непечатным символам и знакам форматирования. Чтобы запустить подобный поиск, необходимо на вкладке Найти (Find) диалогового окна Найти и заменить (Find and Replace) нажать кнопку Больше>> (More>>), а затем нажать кнопку Специальный (Special). Откроется контекстное меню, в котором можно выбрать один из непечатных символов и знаков форматирования, щелкнув по соответствующему пункту мышью.
[box color=primechanie]Непечатные символы в поле ввода Найти: (Find what:) заменяются сочетаниями из букв и знаков препинания. Не нужно изменять ничего в строке поиска после выбора нужного специального символа.[/box]
После этого можно воспользоваться кнопками Найти в (Find In), Найти далее (Find Next) или Выделение при чтении (Reading Highlight) для поиска или выделения необходимых совпадений в тексте.
Поиск по элементам форматирования
Программа Microsoft Word позволяет корректировать запрос согласно форматированию искомого текста. Например, если вам нужно найти текст определенного цвета, написанный определенным шрифтом или стилем, имеющий выравнивание, написанный на другом языке или все вместе — на помощь придет поисковый запрос с форматированием.
Для его активации необходимо на вкладке Найти (Find) диалогового окна Найти и заменить (Find and Replace) выбрать расширенный вариант поиска, щелкнув мышью по кнопке Больше>> (More>>). Затем в группе элементов управления Найти (Find) следует нажать кнопку Формат (Format) и в открывшемся контекстном меню выбрать необходимые элементы форматирования. После этого под полем ввода Найти: появится строка с дополнительной информацией, касающейся форматирования поискового запроса.
[box color=primechanie]Вы можете искать как определенные выражения с указанным форматированием, так и любой текст с указанным форматированием. В последнем случае необходимо строку поиска оставить пустой.[/box]
Если вы хотите отменить форматирование, необходимо нажать кнопку Снять форматирование в группе элементов управления Найти (Find). Если кнопка неактивна, значит, выборка по элементам форматирования уже отменена. Вкладка Найти (Find) предлагает широчайшие возможности по корректировке поискового запроса по документам. Однако если вам нужно просто найти текст без особых излишеств, проще и удобнее пользоваться полем ввода Поиск в документе (Search Document) панели Навигация (Navigation).
Кроме того, поиск при помощи диалогового окна Найти и заменить (Find and Replace) взаимосвязан с поиском из панели Навигация (Navigation). Если выражение было введено в поле ввода в одной из этих функций, то оно будет автоматически применено к другой. Таким образом, поисковый запрос, введенный в диалоговом окне Найти и Заменить (Find and Replace), автоматически появится в поле ввода Поиск в документе панели Навигация (Navigation) при нажатии сочетания клавиш Ctrl+F.
При запуске Word появляются сообщения об ошибке
При запуске Microsoft Office Word могут появляться сообщения об ошибках, аналогичные приведенным ниже:
Ошибка при выполнении.
нижний индекс находится вне пределов диапазона
Ошибка компиляции в скрытом модуле имя_модуля.
Ошибка Visual Basic — Объект не поддерживает это свойство или метод.
Невозможно отобразить шаблон или шаблон надстройки недопустим имя_шаблона.
Word не может открыть шаблон документа имя_шаблона.
Не удалось найти имя_модуля.
Команда не может быть выполнена, поскольку открыто диалоговое окно.
Невозможно открыть этот файл имя_файла.
Невозможно открыть файл.
Microsoft VisualBasic — Макросы в проекте отключены.
Недопустимый шаблон надстройки.
Причина
Ошибка возникает из-за несовместимости надстройки, находящейся в одной из папок автозагрузки, с программой Word.
Временное решение
Для определения вызывающей ошибку надстройки сделайте следующее:
- Завершите работу всех программ Microsoft Office, включая Word и Microsoft Outlook.
- В зависимости от версии установленного у вас Word откройте следующую папку.
Проблему с запуском Word можно также решить при помощи шаблона поддержки. Для получения дополнительных сведений об использовании шаблона поддержки щелкните следующий номер статьи базы знаний Майкрософт:
820919 Использование программы устранения неполадок для решения проблем, возникающих при запуске и использовании Word 2003
Отображение встроенных диалоговых окон Word
Этот раздел содержит сведения и примеры в следующих разделах.
Отображение встроенного диалогового окна
Вы можете отобразить встроенное диалоговое окно для ввода данных пользователем или управления Word с помощью Visual Basic для приложений (VBA). Метод Show объекта Dialog отображает и выполняет все действия, выполненные во встроенном диалоговом окне Word. Чтобы получить доступ к определенному встроенному диалоговому окку Word, необходимо указать константу WdWordDialog со свойством Dialogs . Например, следующая инструкция макроса отображает диалоговое окно Открыть (wdDialogFileOpen).
Sub ShowOpenDialog() Dialogs(wdDialogFileOpen).Show End Sub
Если выбран файл и нажат ОК , файл открывается (выполняется действие). В следующем примере отображается диалоговое окно Печать (wdDialogFilePrint).
Sub ShowPrintDialog() Dialogs(wdDialogFilePrint).Show End Sub
Задайте свойство DefaultTab для доступа к определенной вкладке в диалоговом окне Word. В следующем примере отображается вкладка Граница страницы в диалоговом окне Границы и заливка .
Sub ShowBorderDialog() With Dialogs(wdDialogFormatBordersAndShading) .DefaultTab = wdDialogFormatBordersAndShadingTabPageBorder .Show End With End Sub
Вы также можете использовать свойства VBA в Word для отображения сведений о пользователе без отображения диалогового окна. В следующем примере свойство UserName объекта Application используется для отображения имени пользователя для приложения без отображения диалогового окна Сведения о пользователе .
Sub DisplayUserInfo() MsgBox Application.UserName End Sub
Если имя пользователя изменено в предыдущем примере, это изменение не задается в диалоговом окне. Используйте метод Execute для выполнения параметров в диалоговом окне без отображения диалогового окна. В следующем примере отображается диалоговое окно Сведения о пользователе , и если имя не является пустой строкой, параметры задаются в диалоговом окне с помощью метода Execute .
Sub ShowAndSetUserInfoDialogBox() With Dialogs(wdDialogToolsOptionsUserInfo) .Display If .Name <> "" Then .Execute End With End Sub
Используйте свойства и методы VBA в Word, чтобы задать сведения о пользователе без отображения диалогового окна. В следующем примере кода имя пользователя изменяется с помощью свойства UserName объекта Application , а затем отображается диалоговое окно Сведения о пользователе , чтобы показать, что изменения были внесены. Обратите внимание, что отображение диалогового окна не требуется для изменения значения диалогового окна.
Sub SetUserName() Application.UserName = "Jeff Smith" Dialogs(wdDialogToolsOptionsUserInfo).Display End Sub
Возврат и изменение параметров диалогового окна
Не очень эффективно использовать объект Dialog для возврата или изменения значения диалогового окна, если его можно вернуть или изменить с помощью свойства или метода. Кроме того, в большинстве, если не во всех случаях код VBA используется вместо доступа к объекту Dialog , код становится проще и короче. Таким образом, следующие примеры также включают примеры, использующие соответствующие свойства VBA для выполнения одинаковых задач.
Перед возвратом или изменением параметра диалогового окна с помощью объекта Dialog необходимо определить отдельное диалоговое окно. Для этого используется свойство Dialogs с константой WdWordDialog . После создания экземпляра объекта Dialog можно вернуть или задать параметры в диалоговом окне. В следующем примере отображается правый отступ в диалоговом окне Абзацы .
Sub ShowRightIndent() Dim dlgParagraph As Dialog Set dlgParagraph = Dialogs(wdDialogFormatParagraph) MsgBox "Right indent = " & dlgParagraph.RightIndent End Sub
Используйте свойства и методы VBA Word для отображения правого отступа для абзаца. В следующем примере свойство RightIndent объекта ParagraphFormat используется для отображения отступа вправо для абзаца в позиции точки вставки.
Sub ShowRightIndexForSelectedParagraph() MsgBox Selection.ParagraphFormat.RightIndent End Sub
Так же, как вы можете вернуть параметры диалогового окна, можно также задать параметры диалогового окна. В следующем примере в диалоговом окне Абзац помечается флажок Сохранить с помощью следующего.
Sub SetKeepWithNext() With Dialogs(wdDialogFormatParagraph) .KeepWithNext = 1 .Execute End With End Sub
Вы также можете использовать свойства и методы VBA для изменения отступа вправо для абзаца. В следующем примере свойство KeepWithNext объекта ParagraphFormat используется для сохранения выбранного абзаца со следующим абзацем.
Sub SetKeepWithNextForSelectedParagraph() Selection.ParagraphFormat.KeepWithNext = True End Sub
Используйте метод Update , чтобы убедиться, что значения диалогового окна отражают текущие значения. Возможно, потребуется использовать метод Update , если вы определите переменную диалогового окна в начале макроса, а затем захотите вернуть или изменить текущие параметры.
Проверка закрытия диалогового окна
Значение, возвращаемое методами Show и Display , указывает, какая кнопка была нажата, чтобы закрыть диалоговое окно. В следующем примере отображается диалоговое окно Разрыв , и если щелкнуть ОК , в строке состояния отображается сообщение.
Sub DialogBoxButtons() If Dialogs(wdDialogInsertBreak).Show = -1 Then StatusBar = "Break inserted" End If End Sub
В следующей таблице описаны возвращаемые значения, связанные с кнопками в диалоговых окнах.
| Возвращаемое значение | Описание |
|---|---|
| –2 | Кнопка Закрыть . |
| –1 | Кнопка ОК . |
| 0 (ноль) | Кнопка Отмена . |
| > 0 (ноль) | Кнопка команды: 1 — первая кнопка, 2 — вторая кнопка и т. д. |
Поддержка и обратная связь
Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.
Обратная связь
Были ли сведения на этой странице полезными?
