Czary mary z ASCII oraz VBA
Kategoria: Kurs VBA, Samouczek Excel , Kurs Excel

Rozwiązywanie problemów i zadań w arkuszu kalkulacyjnym nie zawsze jest łatwe. Czasem wystarczy prosta funkcja a niekiedy musimy zastosować zaawansowane narzędzie - jak na przykład język VBA czy kod ASCII.
Jak sprawnie i skutecznie korzystać języka VBA i kodu ASCII opowie trener i ekspert Cognity Grzegorz Plak.
Przykładem, który posłuży nam podczas nauki będzie problem uczestnika jednego z naszych szkoleń otwartych. Zadanie, którego rozwiązania podjął się Pan Grzegorz widoczne jest na rysunku nr. 1
Rys. 1. Zadanie rozdzielenia imienia oraz nazwiska
Funkcje VBA
Napisanie funkcji dla większości osób zajmujących się językiem VBA nie jest wymagającym zadaniem w przypadku, gdy między imieniem a nazwiskiem występuje separator np. spacja. Jednak w tym zadaniu nie ma typowego ogranicznika. W związku z tym zadanie z pozoru wymaga przepisywanie tekstu ręcznie. Jednak zawsze przed napisaniem kodu warto ułożyć punktowy plan rozwiązania problemu.
Zawsze w zadaniach biznesowych należy zobaczyć, co jest cechą wspólną dla poszczególnych rozwiązań.
W tym przypadku proszę zauważyć, że imię i nazwisko pisane są wielkimi literami. I to jest nasze rozwiązanie.
Funkcja ACS
Zanim przejdziemy do zapisania rozwiązania, to warto zapoznać się z funkcją Asc. Funkcja ta przyjmuje jako argument ciąg znaków i dla pierwszej litery tego ciągu wskazuje, jaki jest jej odpowiednik w tzw. kodzie ASCII.
Dla litery A odpowiednikiem jest liczba 65. Liczby dla innych liter można zobaczyć na stronie internetowej Microsoft.
Jak rozdzielić imię i nazwisko? – praktyczna funkcja Excel
Dzięki tej informacji możemy napisać funkcję, która będzie wyłączała imię z połączonego tekstu imienia i nazwiska:
Pętla For w VBA
Funkcja pobierz_imie pobiera jeden argument w postaci ciągu znaków (typ String) oraz zwraca ciąg znaków. Linie Dim mają na celu zadeklarowanie zmiennych. Pętla For ma na celu przejście przez każdą literę w słowie, którą przekaże użytkownik (imienazwisko). Zmienna litera pobiera tylko jeden znak argumentu. Zmienna kod_ascii zamienia pobraną literę na odpowiednią liczbę w tablicy ASCII (patrz wyżej).
Instrukcja warunkowa If i jej użycie w rozwiązaniu problemu
Przy pomocy instrukcji warunkowej If następuje sprawdzenie, czy podana litera występuje w alfabecie anglosaskim (od A do Z) oraz czy jest wielka.
Jeśli spełnione są warunki w instrukcji If, to następuje zapamiętanie pozycji tej litery oraz wyjście z pętli. Na koniec, jeśli znaleziono pozycję dużej litery, to wycinany jest odpowiedni fragment tekstu przy pomocy funkcji tekstowej Mid. Analogicznie działa funkcja pobierz_nazwisko, której kod został przedstawiony poniżej:
Czary mary z ASCII oraz VBA by Cognity is licensed under a Creative Commons Uznanie autorstwa-Użycie niekomercyjne 4.0 Międzynarodowe License.
Cognity zaprasza Cię na praktyczne kursy i szkolenia:
Kurs VBA (Visual Basic for Applications) w Excelu Zaawansowany
Więcej informacji znajdziesz w artykułach:
Klasy w języku VBA

Zainteresować Cię może również:
Ranking wartości Excel
