трюк №81

Макроси чудесним чином спрощують автоматизацію повторюваних завдань в Excel, але спосіб їх створення і застосування іноді викликає проблеми. На щастя, Excel - це досить гнучке додаток, що дозволяє впоратися з цими проблемами і створити нові можливості з мінімальними зусиллями.

Коли ви записуєте макрос в Excel, створюваний код часто змушує екран мерехтіти, не тільки сповільнюючи роботу макросу, а й роблячи його неохайним. На щастя, можна виключити мерехтіння екрану, одночасно прискоривши виконання макросу.

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

Якщо ви вже працювали з макросами і цікавилися кодом VBA, то, ймовірно, чули про властивості Application.ScreenUpdating. Присвоївши йому значення Брехня (False) на початку виконання макросу, ви не тільки припиніть постійне мерехтіння екрану монітора, що відбувається через те, що макрос був записаний, а не запрограмований в VBE, але і прискорите виконання макросу. Причина, чому цей спосіб прискорює роботу макросу, полягає в тому, що Excel більш не потрібно перемальовувати екран при виконанні таких команд, як Select, Activate, LargeScroll, SmallScroll і багатьох інших.

Щоб включити рядок Application.ScreenUpdating = False в початок існуючого макросу, виберіть команду Разработчікс → Макроси (Developer → Macros), виберіть макрос, клацніть кнопку Змінити (Edit) і введіть наступний код, показаний в лістингу 7.1.

// Лістинг 7.1 Application.ScreenUpdating = False // Ваш код Application.ScreenUpdating = True End Sub

Зверніть увагу, що в кінці коду ви заново включили оновлення, присвоївши властивості Application.ScreenUpdating значення Істина (True). Хоча Excel зробить це, коли фокус управління буде переданий назад Excel (іншими словами, коли робота макросу завершиться), краще все ж подбати про безпеку програми і включити цей код в кінці макросу.

Іноді можна виявити, що властивості Application.ScreenUpdating присвоюється значення Істина (True) ще до завершення записаного макросу. Це може статися з записаними макросами, в яких часто використовується команда Select. Якщо це сталося, потрібно просто повторити рядок Application.ScreenUpdating = False в інших фрагментах коду вашого макросу.

Схожі статті