Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание пользовательских п ÒÉÌÏÖÅÎÉÊ ÓÒÅÄÓÔÁÍ...doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

Свойства, влияющие на высвечивание на экране Свойство DisplayAlerts (r/w Boolean)

Во время выполнения программ возможно высвечивание сообщений и запросов MS Excel (встроенных диалоговых окон), на которые пользователь должен реагировать. Например, это может быть запрос на сохранение изменений при закрытии рабочей книги. Значение False свойства DisplayAlerts позволяет отключить высвечивание подобных сообщений. При отключении запросов MS Excel выбирает ответ, который установлен в диалоге по умолчанию.

Важно

  • Не забывайте возвращать первоначальное значение этого свойства, равное True, так как MS Excel автоматически его не восстанавливает.

Пример

Sub wrkbook_close()

Application.DisplayAlerts = False

Workbooks("AIR.XLS").Close

Application.DisplayAlerts = True

End Sub

Процедура закрывает рабочую книгу AIR.XLS без сохранения изменений, при этом запрос на сохранение изменений не возникает.

Свойства DisplayFormulaBar (r/w Boolean), DisplayStatusBar (r/w Boolean)

Эти свойства скрывают или отображают на экране строку формул и строку состояния соответственно.

Примеры

Application.DisplayFormulaBar = False

отключение строки с формулами

Application.DisplayStatusBar = True

высвечивание строки состояния

Свойство ScreenUpdating (r/w Boolean)

Это свойство обновления экрана разрешает (значение True) или запрещает (значение False) изменение экрана при выполнении команд MS Excel.

Если процедура выполняет команды MS Excel, то на экране отображаются все действия с объектами MS Excel: выделение и копирование ячеек, перемещение экрана и т.д. Свойство ScreenUpdating позволяет избежать подобного "мелькания экрана".

Важно

  • Выключение обновления экрана ускоряет выполнение макропроцедур.

  • Не забывайте возвращать первоначальное значение этого свойства, равное True, так как MS Excel автоматически его не восстанавливает.

Пример

Процедура сравнивает время заполнения последовательными числами ячеек первых двух колонок рабочего листа при разрешенном и запрещенном обновлении экрана.

Sub property_ScreenUpdating()

'основная процедура

Dim TM(1 To 2) As Double

Dim stopTime, startTime As Date

Application.ScreenUpdating = True ‘обновление экрана

Worksheets("Sheet1").Activate

For i = 1 To 2

startTime = Time

macro_fil

stopTime = Time

TM(i) = (stopTime – startTime) ‘* 24 * 60 * 60

Application.ScreenUpdating = False ‘нет обновления экрана

Next i

Application.ScreenUpdating = True

MsgBox "Затраченное время в сек., при обновлении экрана: " _

& Round(TM(1), 3) & _

" при выключенном экране: " & Round(TM(2), 3)

End Sub

Sub macro_fil()

'вызываемая процедура

Dim n As Long

Set r = Range("A1:B65536")

For Each c In r

c.Activate

c.Value = n

n = n + 1

Next c

End Sub

Сравнивается время выполнения процедуры Macro_fil при включенном и выключенном свойстве ScreenUpdating.

Время выполнения в секундах сохраняется как элемент массива TM и распечатывается по окончании выполнения процедуры. Для округления используется функция Round.