Application screenupdating что это

Application screenupdating что это

Позволяет включать (присвоением свойству True) и отключать (присвоением False) обновление экрана. Имеет смысл отключить обновление экрана перед теми частями программы, которые интенсивно пользуются данными на листе. Благодаря тому, что системные ресурсы не будут тратиться на обновление экрана, программа будет работать быстрее. Этот метод весьма актуален, так как MS Excel часто используют для проведения ресурсоемких расчетов.

Практика показывает, что если программа интенсивно использует вывод на экран в процессе работы, если она изменяет данные, которые участвуют в расчете формул, расположенных на листе, то отключение вывода может ускорить работу в 3-10 раз.

Например, ниже приведен код, который два раза повторяет процедуру 100-кратного вывода на экран 400 целых случайных чисел и выводит время, требующееся для выполнения этих действий с обновлением экрана и без него.

‘Массив для значений времени

‘Время начала теста

‘Время окончания теста

‘Во втором проходе цикла

‘Запишем текущее время

‘Перейдем на лист для теста

‘Выведем 100 раз целые случайные

‘числа в область 20х20

For y = 1 To 100

ActiveSheet.Cells(p, j) = _

‘Запишем время окончания

‘Для корректного представления

(StopTime — StartTime) * 24 * 60 * 60

MsgBox "Время выполнения программы." & Chr(13) + _

"При включенном обновлении: " & _

WorkTime(1) & " сек." & Chr(13) & _

"При выключенном обновлении: " & _

Selection — ссылка на выделенный объект

Это очень важное свойство возвращает ссылку на выделенный объект. Чаще всего это — ячейка или группа ячеек. Например, это свойство удобно использовать при работе с выделенным диапазоном ячеек (или отдельной выделенной ячейкой). Ниже мы коснемся его подробнее.

WorksheetFunction — формулы Excel в коде VBA

Возвращает объект WorksheetFunction, методы которого представляют собой формулы Excel, которые можно использовать в коде VBA. Использование этого свойства позволяет облегчить выполнение сложных расчетов.

События Application

Объект Excel.Application поддерживает множество событий. Работа с ними аналогична работе с событиями Word.Application, которыми мы занимались в соответствующем разделе предыдущей главы.

Читайте также:  1С разрешить работу пользователей код разрешения

Рассмотрим основные шаги, которые необходимо произвести, чтобы работать с событиями приложения, перечислим события и приведем пример.

Создайте новый модуль класса. Добавьте в него объявление объекта типа Excel.Application с событиями

Public WithEvents obj_ExApp As Excel.Application

После этого в списке объектов редактора кода модуля появится объект obj_ExApp, а в списке событий — соответствующие ему события. Выберите нужное вам событие — автоматически будет создан обработчик для него. В частности, Excel.Application поддерживает следующие события:

  • NewWorkbook — происходит при создании новой книги
  • SheetActivate — при активации любого листа
  • SheetBeforeDoubleClick — происходит при двойном щелчке по листу, то есть позволяет перехватить щелчок и выполнить собственную процедуру до того, как будет выполнено стандартное действие.
  • SheetBeforeRightClick — позволяет перехватить нажатие правой кнопки мыши по листу.
  • SheetCalculate — после пересчета листа или после изменения данных, которые отображаются на диаграмме.
  • SheetChange — при изменении содержимого ячеек на любом листе.
  • SheetFollowHyperlink — происходит при переходе по гиперссылке, которая может быть включена в лист Microsoft Excel.
  • SheetSelectionChange — при изменении выделения на листе
  • WindowActivate — при активации окна книги.
  • WindowDeactivate — при деактивации окна книги.
  • WindowResize — при изменении размера окна книги.
  • WorkbookActivate — при активации книги.
  • WorkbookBeforeClose — перед закрытием книги.
  • WorkbookBeforePrint — перед печатью книги.
  • WorkbookBeforeSave — перед сохранением книги.
  • WorkbookDeactivate — при деактивации книги.
  • WorkbookNewSheet — при добавлении нового листа в любую из открытых книг.
  • WorkbookOpen — при открытии книги.

После того, как создан обработчик, написан его код, работа еще не окончена. Следующий шаг — это связывание объекта obj_ExApp с реально работающим приложением. Ниже приведен полный код модуля с одним обработчиком события, а также — процедура, служащая для связывания объекта obj_ExApp с работающим приложением. Эта процедура может существовать в виде отдельного макроса или в виде кода обработчика нажатия на кнопку. Ее выполнение можно назначить событию открывающейся книги, которая содержит данный модуль класса и т.д.

Читайте также:  Bitrix catalog store amount

Итак, вот код процедуры, который связывает объект созданного нами класса AppEvents с приложением:

Dim obj_ExcelAppEv As New AppEvents

Set obj_ExcelAppEv.obj_ExApp = Excel.Application

А вот полный код модуля класса AppEvents с объявлением объектной переменной и обработчиком события.

Public WithEvents obj_ExApp As Excel.Application

Private Sub obj_ExApp_NewWorkbook(ByVal Wb As Workbook)

Макросы чудесным образом упрощают автоматизацию повторяющихся задач в Excel, но способ их создания и применения иногда вызывает проблемы. К счастью, Excel — это достаточно гибкое приложение, позволяющее справиться с этими проблемами и создать новые возможности с минимальными усилиями.

Когда вы записываете макрос в Excel, создаваемый код часто заставляет экран мерцать, не только замедляя работу макроса, но и делая его неопрятным. К счастью, можно исключить мерцание экрана, одновременно ускорив выполнение макроса.

Один недостаток записанных макросов в Excel заключается в том, что созданный код зачастую является очень неэффективным. Это значит, что макрос, который должен выполняться за секунды, часто работает слишком долго и выглядит непривлекательно. Кроме того, когда вы создаете макрос в режиме записи, записываются все нажатые клавиши, нужны они были или нет. Это означает, что, если вы сделаете ошибку, а потом исправите ее, нажатые для этого клавиши также будут записаны в коде макроса. Подобными функциями обладает специальное программное обеспечение для создания веб-проектов. Достаточно купить битрикс и заказать услуги специалистов по настройке и вы получите все перечисленные функции. В битрикс существует также импорт файлов Excel.

Значение True, если обновление экрана включено. True if screen updating is turned on. Для чтения и записи, Boolean. Read/write Boolean.

Синтаксис Syntax

выражение.** ScreenUpdating** expression.ScreenUpdating

выражение: переменная, представляющая объект Application. expression A variable that represents an Application object.

Читайте также:  Etegro hyperion rs160 g4

Примечания Remarks

Для ускорения кода макроса отключите обновление экрана. Turn screen updating off to speed up your macro code. Вы не сможете увидеть, что делает макрос, но он будет выполняться быстрее. You won’t be able to see what the macro is doing, but it will run faster.

Не забудьте установить значение True для свойства ScreenUpdating при завершении макроса. Remember to set the ScreenUpdating property back to True when your macro ends.

Пример Example

В этом примере показано, как отключение обновления экрана может ускорить выполнение кода. This example demonstrates how turning off screen updating can make your code run faster. В этом примере скрываются все остальные столбцы на листе Sheet1, а также отслеживается время, необходимое для этого. The example hides every other column on Sheet1, while keeping track of the time it takes to do so. В первый раз в примере скрываются столбцы при включенном обновлении экрана; во второй раз обновление экрана отключено. The first time the example hides the columns, screen updating is turned on; the second time, screen updating is turned off. При выполнении этого примера можно сравнить соответствующее время, которое отображается в окне сообщения. When you run this example, you can compare the respective running times, which are displayed in the message box.

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Ссылка на основную публикацию
Adblock detector