4 triki w języku VBA w Excelu
Zapraszamy do zapoznania się z 4 praktycznymi trikami dzięki, którym usprawnisz swoją pracę w programie MS Excel.
VBA Excel: jak ukryć arkusz kalkulacyjny w Excelu
Istnieją trzy rodzaje widoczości arkusza w VBA:
- xlSheetVisible – widoczny
- xlSheetHidden – ukryty w taki sposób, że można go odkryć przy pomocy menu kontekstowego znajdującego się pod prawym przyciskiem myszy
- xlSheetVeryHidden – arkusz ukryty i niedostępny w menu kontekstowym pod PPM
VBA Excel: Daty w Excelu wyświetlane z nazwą dnia tygodnia
Pierwszym rozwiązaniem jest zastosowanie dwóch funkcji: Weekday oraz funkcji WeekdayName.
Funkcja Weekday przyjmuje dwa argumenty: datę oraz jaki dzień jest dla nas pierwszym dniem tygodnia (domyślnie jest to niedziela).
Funkcja WeekdayName przyjmuje trzy argumenty: datę, czy podana nazwa ma być skrótem w postaci wartości logicznej (domyślnie podawana jest False – czyli podawana jest pełna nazwa) oraz pierwszy dzień tygodnia (domyślnie jest ustawiony na pobranie systemowych ustawień).
Połączenie dwóch funkcji w poniższy sposób.
WeekdayName(Weekday("2014-09-27", vbMonday))
zwróci wartość „sobota”.
Drugim rozwiązaniem jest zastosowanie tablicy jednowymiarowej:
Dimdzien_tygodnia(1 To 7) As String
dzien_tygodnia(1) = "niedziela"
dzien_tygodnia(2) = "poniedziałek"
dzien_tygodnia(3) = "wtorek"
dzien_tygodnia(4) = "środa"
dzien_tygodnia(5) = "czwartek"
dzien_tygodnia(6) = "piątek"
dzien_tygodnia(7) = "sobota"
Dimmoja_data As Date
moja_data = DateValue("2014-09-27")
MsgBoxdzien_tygodnia(Weekday(moja_data, vbMonday) + 1)
Podane rozwiązanie jest bardziej złożone, jednak pozwala na zdecydowanie programiście co zostanie wyświetlone.
VBA Excel: sformatowanie zaznaczania kolorem wierszy parzystych i nie parzystych
Pracując w programie Excel mamy możliwość sformatowania w odpowiedni sposób zaznaczenia w taki sposób, aby wiersze nieparzyste były oznaczone innym kolorem niż wiersze parzyste – język VBA idealnie sprawdza się w takich zadaniach.
Aby wykonać zadanie opisane powyżej należy zastosować kod:
i = 1
For Each wiersz In Selection.Rows ‘dla każdego wiersza w zaznaczeniu
If i Mod 2 = 0 Then ‘jeśli i jest parzyste
wiersz.Interior.Color = 255 ‘pokoloruj wiersz na czerwono
Else ‘w przeciwnym przypadku
wiersz.Interior.Color = 46523 ‘pokoloruj wierszy na zielono
End If
i = i + 1 ‘zwiększaj i co jeden
Next
VBA Excel: nadawanie nazwy miesięcy arkuszom kalkulacyjnym
Jeżeli posiadamy dwanaście arkuszy w skoroszycie i chcemy nadać im nazwy kolejnych miesięcy możemy do tego wykorzystać kod opracowany za pomocą VBA. W przygotowanym kodzie znajduje się zabezpieczanie przed sytuacja, w której plik posiada więcej niż dwanaście arkuszy.
For Each sh In ActiveWorkbook.Worksheets ‘dlakażdegoarkusza
If sh.Index<= 12
Then ‘jeślinumerarkusza<= 12sh.Name = MonthName(sh.Index) ‘zmień nazwę na nazwę miesiąca
End If
Next
Autorem artykułu jest Grzegorz Plak, trener Cognity.