Komentarz standardowo nie może zostać dodany do arkusza chronionego. Podobnie jego edycja w takim arkuszu również jest niemożliwa. Za pomocą pewnej subtelnej zmiany w kodzie makra – możemy jednak to zrobić. W jaki sposób? O tym dowiesz się z tej krótkiej notki.
Problem
Niedawno pracowałem nad aplikacją do rozliczania delegacji służbowych. Trochę zachodu było z utworzeniem mechanizmu do wyboru poniesionych kosztów.
Z listy rozwijanej pracownik wybierał pozycję kosztową i walutę, zaś obok wpisywał kwotę. W przypadku, gdy wystąpił nieokreślony koszt, pracownik wybierał z listy pozycję INNE.
Taka informacja była jednak dla nas niewystarczająca, chcieliśmy aby pracownik doprecyzował na co wydał pieniądze.
Rozwiązanie
Zdecydowaliśmy, że rozwiązaniem może być dodanie komentarza i pobranie później jego treści makrem. Problem jaki się pojawił, dotyczył faktu, że bazowaliśmy na chronionym arkuszu, a w nim dodawanie i edytowanie komentarzy jest standardowo wyłączone.
Z pomocą przyszło krótkie makro, które nakłada ochronę na arkusz, pozwalając go jednocześnie edytować z poziomu VBA. Zezwala ono także na dodawanie komentarzy i zmianę ich treści bezpośrednio w komórkach arkusza.
W kodzie nie zakładamy ochrony na obiekty typu przyciski/kształty, natomiast zakładamy ją na zablokowane komórki i scenariusze.
Kod makra
1 2 3 4 5 6 7 |
Sub ChronArkuszZostawKomentarze() wksTest.Protect Password:="Tajne", DrawingObjects:=False, _ Contents:=True, Scenarios:=True, UserInterfaceOnly:=True End Sub |
Screeny
Jak widać na poniższych screenach, rozwiązanie działa. Komentarz może być edytowany w wersjach 365 i 2010 Excela.