Заставка при закрытии Excel…

Программирование на Visual Basic for Applications
Rom
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 30.09.2004 (Чт) 18:50

Заставка при закрытии Excel…

Сообщение Rom » 08.05.2005 (Вс) 0:27

Нужно показать заставку при выходе из программы, пока происходит сохранение данных. Думал сделать это примерно так:
Код: Выделить всё

UserForm14.Show
UserForm14.Label1.Caption = "Сохранение данных . . ."


ActiveWorkbook.Save
UserForm14.Hide
Application.Quit
Но на строчке UserForm14.Show выполнение останавливается. И пока форму не закроешь, выполнение кода дальше не идёт.

Как можно обойти эту проблему, т.е. показать форму и продолжить выполнение кода? (на FoxPro была команда Nowait)
Или может в данном случае стоит использовать какой-то другой подход?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.05.2005 (Вс) 4:58

Диалоги экселя модальные.
В 97 точно :)

Сделай так: проверь установлен ли Assistant. Если установлен, заставь его показать балун с мессагой. Если нет, выведи текст в статусбаре.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rom
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 30.09.2004 (Чт) 18:50

Сообщение Rom » 08.05.2005 (Вс) 14:01

Пытаюсь сделать это через помощника. Код такой:

Код: Выделить всё
Dim myassis As Assistant
Set myassis = Assistant
Set newballoon = myassis.newballoon
Dim num As Integer
newballoon.Heading = "Завершение работы программы"
newballoon.Text = "Сохранение данных..."
num = newballoon.Show


newballoon.Text = "Завершение работы..."
num = newballoon.Show
Application.Quit
Но всё равно на строчке num = newballoon.Show выполнение останавливается, и пока не нажмешь OK, выполнение кода дальше не идёт. :roll:

Может как-то сделать, чтобы месага не “тормозила” выполнение кода?
Или я как-то не так её показываю?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.05.2005 (Вс) 15:48

А помести завершающий код в форму-заставку :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Rom
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 30.09.2004 (Чт) 18:50

Сообщение Rom » 08.05.2005 (Вс) 16:39

То есть :?:

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 08.05.2005 (Вс) 16:45

Ну, все те действия, которые надо выполнить при висящей форме, помести в саму эту форму :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ig
Обычный пользователь
Обычный пользователь
 
Сообщения: 73
Зарегистрирован: 30.04.2005 (Сб) 12:37
Откуда: Far East

Сообщение Ig » 14.05.2005 (Сб) 6:04

2 Rom
посмотрите здесь
там правда про заставку в Ворде и при открытии, но ничто не мешает заменить Document_Open на Workbook_Close :wink:

Rom
Начинающий
Начинающий
 
Сообщения: 22
Зарегистрирован: 30.09.2004 (Чт) 18:50

Сообщение Rom » 15.05.2005 (Вс) 14:34

Спасибо за линк :)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 2

    TopList  
cron