Etykiety w kodzie VBA

W kodzie VBA można wstawiać linie stanowiące jakby zakładki, do których można przeskakiwać z dowolnego miejsca danej procedury. Linie te są oznaczone Etykietami.
Etykieta to wstawiony na początku linii ciąg znaków (bez spacji) zakończony dwukropkiem.
Przejście do linii z etykietą wykonywane jest poprzez instrukcję
Goto <nazwa etykiety>

Przykładowy kod może to wyglądać tak:

Public Sub Etykiety()
If IsEmpty(Cells(1,1)) Then GoTo PustePole
‘ciag instrukcji
Exit Sub
PustePole:
MsgBox “Brak wartości!”
End Sub

W przedstawionym przykładzie kodu – jeżeli komórka A1  jest pusta, następuje od razu przeskok do linii etykiety PustePole i kod jest wykonywany od tej linii do końca. Jeżeli komórka ta  nie jest pusta – wykonywany jest ciąg instrukcji.
W linii bezpośrednio poprzedzającej etykietę jest instrukcja Exit Sub, żeby ominąć ciąg instrukcji po etykiecie.


Kurs Makra i VBA w Excelu dla początkujących

Funkcje nietrwałe

Funkcje nietrwałe (nazywane także ulotnymi) Excela to funkcje, których wynik działania jest niezależny od argumentów wejściowych funkcji (lub w ogóle ich nie ma).
Do najbardziej typowych funkcji nietrwałych należą m.in. :

    • Dziś() – zwracająca bieżącą datę systemową
    • Teraz() – zwracająca bieżącą datę i czas systemowy
    • Los() – zwracająca losową liczbę większą lub równą 0 i mniejszą od 1

Funkcje te są zwracają wynik na nowo po każdym przeliczeniu arkusza. Oznacza to, że wszystkie formuły powiązane z nimi też będą na nowo przeliczane, a wyniki końcowe też się zmienią.

Chcąc wstawić datę/godzinę jako wartości statyczne – należy użyć skrótów klawiaturowych:

    • Ctrl+; – wstawia bieżącą datę
    • Ctrl+Shift + ; – wstawia bieżącą godzinę

Można też użyć kodu VBA do wstawienia wyniku działania funkcji jako wartości, a nie samej funkcji.

 


 

Kurs Excel 2019 od podstaw

Po Mistrzostwach Świata w Excelu

Tydzień temu odbyły się Mistrzostwa Świata w Excelu – World Cup Financial Modelling 2021. Tytuł wicemistrzyni zdobyła tam Polka, Gabriela Strój.

W najbliższą środę, 15 września o godz.19:00 weźmie udział w darmowym webinarze online: TO 10 trików w Excelu:

Transmisja na kanale YT:

Bedzie na pewno ciekawie, polecam.

Darmowy webinar o łamaniu haseł w Excelu

Na tym blogu jest już cała seria wpisów na temat ochrony – nie tylko arkusza. Na pewno warto zajrzeć i zabezpieczyć swoją pracę. Czasem jednak występuje konieczność, że tak zabezpieczony skoroszyt trzeba edytować, a nie znamy/nie pamiętamy hasła. Jak sobie wtedy poradzić?

Zapraszam na darmowy webinar: Jak złamać hasła w Excelu.

Środa, 14-go lipca o godz.19:00 darmowy webinar z Excela:

Kilka metod jak złamać hasło w Excelu

Transmisja na kanale YT:

Jacek Cetnarski

pod linkiem:

Warto zarezerwować czas. Temat na pewno bardzo ciekawy.

Scripting.FileSystemObject

Scripting.FileSystemObject to obiekt VBA służący do zarządzania plikami i  folderami. Wprawdzie w kodzie VBA są dostępne proste i przyjemne funkcje Dir, MkDir itp., ale przy odwołaniach do folderów sieciowych niestety zawodzą. Wówczas pozostaje wykorzystanie właśnie obiektu FileSystemObject, popularnie nazywanym FSO.

Dostępne są tu następujące właściwości i metody:

  • GetDrive – informacje o napędzie (dysku)
  • GetFolder – informacje o folderze
  • GetFile– informacje o pliku
  • CreateFolder – tworzenie folderu
  • CreateFile – tworzenie pliku
  • DeleteFolder – usuwanie folderu
  • DeleteFile – usuwanie pliku
  • CopyFolder – kopiowanie folderu
  • CopyFile – kopiowanie pliku
  • MoveFolder – przenoszenie folderu
  • MoveFile – przenoszenie pliku

Kurs Excel programowanie w VBA

Nazwy arkuszy

Każdy arkusz w Excelu ma swoją własną, unikalną nazwę, odróżniającą go od innych arkuszy.

Nazwę arkusza można w prosty i łatwy sposób zmienić, klikając w nią dwukrotnie lewym przyciskiem myszy  i po zaznaczeniu, wpisując nową.

Arkusze Excela mają także swoją, również unikalną, nazwę kodową.  Nazwa kodowa arkusza widoczna jest tylko z poziomu edytora VBA.
Na wszelki wypadek przypominam – szybkie wejście do edytora przez naciśnięcie przycisków Alt+F11.

W oknie projektu widoczne są wszystkie arkusze skoroszytu.

Widoczne są w nim nazwy wszystkich arkuszy, wpisane jako nazwa kodowa, a w nawiasie nazwa arkusza widoczna z poziomu Excela.
Czyli np.arkusz o nazwie kodowej Arkusz1 ma nazwę własną Mój arkusz 1.
Nazwy kodowe są nadawane automatycznie i uzależnione są od wersji językowej Excela, w której skoroszyt został utworzony. Dla wersji polskiej są to Arkusz1, Arkusz2… itd., w wersji angielskiej Sheet1, Sheet2… itd.

Nazwę kodową można zmienić w edytorze, w oknie właściwości arkusza – można je uaktywnić przez naciśnięcie przycisku F4.

W polu nazwy (Name) można wpisać własną nazwę kodową arkusza.

Nazwa kodowa arkusza nie może zawierać spacji i znaków specjalnych. Osobiście zdecydowanie odradzam też stosowanie polskich znaków diakrytycznych (czyli wszystkich liter z ogonkami: ą, ś, ć itp.

Czy i po stosowane są nazwy kodowe arkuszy? Ja z nich korzystam bardzo często. Przede wszystkim zabezpieczam się w ten sposób przed nieprzewidzianą zmianą nazwy arkuszy przez użytkowników. Zapis w kodzie:
Worksheets(“czerwiec”)
jest równoważny zapisowi:
Arkusz2
Jeśli jednak użytkownik zmieni nazwę z czerwca na  lipiec, to wprawdzie wszystkie formuły zapisane w komórkach automatycznie się zaktualizują, ale w kodzie VBA nie. Oznacza to, że pierwsze odwołanie nie zadziała i wystąpi błąd kodu. Skorzystanie w kodzie z nazwy kodowej arkusza zabezpiecza przed taką sytuacją.


 

 

 

Typer w Excelu

https://www.facebook.com/events/381737259920571Kolejne, ciekawe wydarzenie na Facebooku, tym razem związane zarówno z Excelem jak i EURO2020. W środę 2 czerwca o godz.19:00 darmowy webinar  – Typer w Excelu.

Wydarzenie dostępne na FB:

Webinar Typer w Excelu

oraz na kanale YT:

Jacek Cetnarski

Warto zarezerwować czas.

Właściwości obiektu Range

Najpopularniejsze właściwości obiektu Range w kodzie VBA to:

  • adres zakresu
    • Address -zwraca adres zakresu lub nazwę obiektu Range
  • liczba obiektów
    • Count – liczba obiektów w Range. Dla zakresu komórek zwracana jest ich liczba
  • przesunięcie
    • Offset -przesunięcie o określoną liczbę wierszy i kolumn od obiektu Range
  • położenie
    • Top – zwraca położenie od góry górnego wierzchołka obiektu Range
    • Left – zwraca położenie od lewej strony wierzchołka obiektu Range
  • wartość
    • Value – wartość zakresu (np.komórki). Jest to właściwość domyślna obiektu Range

Tak, jak w przypadku metod obiektu Range chcąc wywołać daną właściwość, po nawiasie zamykającym oznaczenie obiektu wstawiamy kropkę i wybieramy z listy rozwijalnej daną właściwość.


 

Kurs Excel programowanie w VBA

Usuń duplikaty maili

Długa majówka z pogodą typowo barową, gdy pogoda zniechęca nawet do spacerów, to dobra okazja do odrobienia różnych zaległości, ciągle odkładanych na moment, gdy będzie więcej czasu. Zaczęłam więc porządkować komputer, co jest wyzwaniem samym w sobie – nazbierało się sporo plików, które niepotrzebnie tylko śmiecą i zajmują miejsce. Przy okazji też zabrałam się za porządkowanie maili, gdyż pliki poczty (w tym archiwa) za bardzo mi się rozrosły. Korzystam z programu Microsoft Outlook i ściągam przez niego pocztę z kilku różnych kont pocztowych. Sporo maili usunęłam, ale znaczną część jednak wolę mieć zachowaną, gdyż dość często zdarza mi się, że odszukuję historię jakiejś korespondencji, w tym przesyłanych plików. No i żeby maksymalnie ułatwić sobie pracę, skorzystałam z całkiem ciekawego dodatku do Outlooka – “Usuń duplikaty”.  Autorem dodatku jest mój dobry znajomy, więc korzystam z pełnej wersji i mogę go polecić.
Po zainstalowaniu w  Outlooku widoczna jest nowa karta VBATools, z przyciskiem dodatku:

Po kliknięciu w przycisk otwiera się formularz, poprzez który pobieramy listę maili z danego folderu:

Dodatkowo zaznaczamy rozpoznanie kontekstowe i wybieramy sposób porównania maili:

Teraz wystarczy już tylko kliknąć przycisk Usuń duplikaty i wszystkie “podwójne” maile trafiają do wiadomości usuniętych. Ja na wszelki wypadek zaglądam tam, chcąc sprawdzić, co zostało usunięte.

Wersja demo dodatku jest do pobrania tu:

DEMO Usuń duplikaty

Po pobraniu rozpakowujemy go i przy wyłączonym Outlooku, uruchamiamy instalację.

Pełen opis działania dodatku jest tu oraz możliwość zakupienia pełnej wersji jest tu:

Usunięcie duplikatów Outlooka

A dla zainteresowanych – kupon promocyjny na cenę o 10% niższą:

 

Kanał dla Exceloholików

Ostatnio kilkakrotnie zapraszałam na bezpłatne webinary z Excela. Uczestniczyłam w nich, naprawdę było warto. Sporo konkretnej, merytorycznej wiedzy. I wielu uczestników. Dla tych, którzy przeoczyli, nie mieli czasu – zapisane webinary są cały czas dostępne na kanale YT.

kanał YT – Jacek Cetnarski

Warto też śledzić na bieżąco stronę na FB:

Excel dla każdego

Jednym słowem – subskrybujemy, likujemy i uczymy się Excela.