Что нужно написать в коде, чтобы диалоговые окна становились или модальными или не модальными.
Например, я запустил макрос, содержащий MsgBox. Пока я не нажму на кнопку в выскочившем диалоговом окне, то ничего не смогу делать в документе. Как сделать так, чтобы Диалоговое окно висело, но что бы я мог, например, текст вводить, или перемещаться по документу.
Модальность диалоговых окон в Word
Модератор: Naeel Maqsudov
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
- EducatedFool
- Сообщения: 197
- Зарегистрирован: 06 апр 2008, 14:03
- Откуда: Россия, Урал
- Контактная информация:
Надо использовать не встроенный MsgBox, а создать форму, которая внешне выглядит как MsgBox.
Или использовать API-функцию MessageBox, которая может отображать немодальное сообщение:
Или использовать API-функцию MessageBox, которая может отображать немодальное сообщение:
Код: Выделить всё
Private Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" ( _
ByVal hwnd As Long, _
ByVal lpText As String, _
ByVal lpCaption As String, _
ByVal wType As Long) As Long
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
- Busine2009
- Сообщения: 322
- Зарегистрирован: 18 июл 2009, 15:34
- Контактная информация:
EducatedFool
то есть к встроенным диалоговым окнам, например, vbOKCancel, нельзя применить модальность?
Я, например, не создаю своих диалоговых окон, т.к. мне кажется, что из-за этого макросы будут медленнее выполняться. На самом ли деле макросы будут медленнее выполняться, если использовать свои диалоговые окна, а не встроенные?
то есть к встроенным диалоговым окнам, например, vbOKCancel, нельзя применить модальность?
Я, например, не создаю своих диалоговых окон, т.к. мне кажется, что из-за этого макросы будут медленнее выполняться. На самом ли деле макросы будут медленнее выполняться, если использовать свои диалоговые окна, а не встроенные?
- EducatedFool
- Сообщения: 197
- Зарегистрирован: 06 апр 2008, 14:03
- Откуда: Россия, Урал
- Контактная информация:
Нет, нельзя.то есть к встроенным диалоговым окнам, например, vbOKCancel, нельзя применить модальность?
Читаем справку по MsgBox:
Как видишь, немодального режима здесь нет (есть только 2 вида модальных).vbApplicationModal 0
Application modal; the user must respond to the message box before continuing work in the current application.
vbSystemModal 4096
System modal; all applications are suspended until the user responds to the message box.
Не скорость макросов это почти не влияет.На самом ли деле макросы будут медленнее выполняться, если использовать свои диалоговые окна, а не встроенные?
По крайней мере, ты не заметишь разницы в скорости.
Макросы для Excel, Word, CorelDRAW. Быстро, профессионально, недорого. http://ExcelVBA.ru/
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216
Благодарности принимаются на кошелёк WebMoney: R318574877619 и Яндекс.Деньги: 41001335672216