Wstrzymanie odświeżania ekranu w Excel VBA

Brak odświeżania ekranu podczas działania makra VBA

Podczas wykonywania makra chcielibyśmy, by wykonywanie kodu nie było widoczne dla użytkownika. Z pomocą przychodzi nam funkcjonalność ScreenUpdating VBA. Za pomocą tego polecenia możemy wstrzymać odświeżanie ekranu podczas wykonywania kodu VBA. Użytkownik aplikacji nie widzi żadnych zmian podczas wykonywania bloku kodu. By przedstawić to w prosty sposób stwórzmy w Excelu proste makro wypełniające 20 kolumn liczbami od 1 do 10000. Przykład makra zamieszczam poniżej:

ScreenUpdating VBA - Brak odświeżania ekranu

ScreenUpdating VBA – Brak odświeżania ekranu

Jak widzisz w toku wykonania programu makro uzupełnia wszystkie kolumny. Jeśli nie chcesz, by było to widoczne, przed rozpoczęciem właściwego kodu wstaw blok  Application.ScreenUpdating = False. Taki sam blok kodu z wartością True wstawiamy na końcu kodu programu. Wykonanie kodu po zastosowaniu wartości True będzie widoczne. W ten sposób możemy także tworzyć aplikacje, których wykonywanie kodu będzie widoczne tylko w określonych przez nas przypadkach. Sam schemat ScreenUpdating VBA wygląda następująco:

Poniżej zamieszczam przykład z prawidłowo zastosowanym kodem. Podczas wykonywania kodu widzimy od razu efekt końcowy:

Podobne przykłady użycia kodu VBA zamieszczam w tym dziale. Link do strony Microsoft z opisem funkcjonalności. Poniżej plik Excela z naszym programem:

Excel_vba_screenupdating.xlsm

1 comment

Leave Comment

Twój adres email nie zostanie opublikowany.