Jednym z najlepszych narzędzi służących do debugowania kodu jest okienko Watches.
Watches vs. Locals
Sporo osób twierdzi, że jest to uboższa wersja okienka Locals, ale co ciekawe – sympatycy Watches uważają dokładnie odwrotnie.
Gdzie leży prawda? Moim zdaniem oba narzędzia świetnie się uzupełniają Locals jest dużo wygodniejsze, ale to Watches daje większe możliwości.
W przypadku Locals wszystko odbywa się automatycznie. Korzystając z Watches sami musimy określić zmienne i wyrażenia, które chcemy monitorować. Gra jest jednak warta świeczki…
Okienko Watches
Za pomocą okienka Watches możemy kontrolować nie tylko wartość zmiennych (w tym publicznych), ale też konkretne wyrażenia czy właściwości obiektu.
Problem polega na tym, że przy każdym uruchomieniu pliku nasze ustawienia się resetują i musimy każdą czujkę zdefiniować od nowa.
Możemy jednak znacznie uprościć sobie pracę korzystając z makra, która doda nam nasze wyrażenia automatycznie do okienka Watches.
Wydawało mi się to niemożliwe, ale za pomocą kodu opracowanego przez mojego kolegę z Excelforum – Artika, jesteśmy w stanie ogarnąć to szybko i sprawnie.
Kod Makra
Poniżej szczegółowy kod i efekt.
Sub AddWatch()
SendKeys "%vh"
Call Send("Application.Screenupdating")
Call Send("Application.EnableEvents")
Call Send("Application.Calculation")
Call Send("ActiveWorkbook.Name")
Call Send("ActiveSheet.Name")
Call Send("ActiveSheet.AutoFilterMode")
Call Send("ActiveCell.Address")
Call Send("ActiveCell.Value")
End Sub
Podprocedura
Sub Send(strT)
SendKeys "%da" & strT & "{Tab 2}{Up 200}~"
End Sub