1.4.4. ScreenUpdating - обновление экрана
Позволяет включать (присвоением свойству True) и отключать (присвоением False) обновление экрана. Имеет смысл отключить обновление экрана перед теми частями программы, которые интенсивно пользуются данными на листе. Благодаря тому, что системные ресурсы не будут тратиться на обновление экрана, программа будет работать быстрее. Этот метод весьма актуален, так как MS Excel часто используют для проведения ресурсоемких расчетов.
Практика показывает, что если программа интенсивно использует вывод на экран в процессе работы, если она изменяет данные, которые участвуют в расчете формул, расположенных на листе, то отключение вывода может ускорить работу в 3-10 раз.
Например, ниже приведен код, который два раза повторяет процедуру 100-кратного вывода на экран 400 целых случайных чисел и выводит время, требующееся для выполнения этих действий с обновлением экрана и без него.
'Массив для значений времени
Dim WorkTime(2)
'Время начала теста
Dim StartTime
'Время окончания теста
Dim StopTime
'Включаем обновление
Application.ScreenUpdating = True
For i = 1 To 2
'Во втором проходе цикла
'выключим обновление
If i = 2 Then _
Application.ScreenUpdating = False
'Запишем текущее время
StartTime = Time
'Перейдем на лист для теста
Worksheets("Тест скорости").Activate
'Выведем 100 раз целые случайные
'числа в область 20х20
For y = 1 To 100
For p = 1 To 20
For j = 1 To 20
ActiveSheet.Cells(p, j) = _
Int(Rnd * 100)
Next j
Next p
Next y
'Запишем время окончания
StopTime = Time
'Для корректного представления
'в виде секунд
WorkTime(i) = _
(StopTime - StartTime) * 24 * 60 * 60
Next i
Application.ScreenUpdating = True
MsgBox "Время выполнения программы." & Chr(13) + _
"При включенном обновлении: " & _
WorkTime(1) & " сек." & Chr(13) & _
"При выключенном обновлении: " & _
WorkTime(2) & " сек."
- Excel и его обьекты. Объект Application
- 1.1. Особенности программирования для ms Excel
- 13.2. Объект Application
- 1.3. Методы Application
- 1.3.1. Calculate - принудительный пересчет
- 1.3.2. GoTo - переход в ячейку
- 1.3.3. SendKeys - имитация нажатий на клавиши клавиатуры
- 1.3.4. Wait - пауза при выполнении макроса
- 1.4. Свойства Application
- 1.4.1. ActiveCell, ActiveChart, ActivePrinter, ActiveSheet, ActiveWindow, ActiveWorkbook - активные объекты
- 1.4.2. Cells, Columns, Rows, Sheets, Workbooks, Worksheets, Names - наборы объектов и коллекции
- 1.4.3. Range - ячейка или группа ячеек
- 1.4.4. ScreenUpdating - обновление экрана
- 1.4.5. Selection - ссылка на выделенный объект
- 1.4.6. WorksheetFunction - формулы Excel в коде vba
- 1.5. События Application