cognity

Czary mary z ASCII oraz VBA

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. 

24 marca 2018
blog

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:

Kurs VBA (Visual Basic for Applications) w Microsoft Excel średniozaawansowany - instrukcje, pętle, formularze i debugowanie kodu
średnio zaawansowany
cena
od 3500 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs VBA w Microsoft Excel średniozaawansowany - instrukcje, pętle, formularz...
Kurs Microsoft Excel - automatyzacja zadań z wykorzystaniem programowania VBA
zaawansowany
cena
od 850 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs Microsoft Excel - automatyzacja zadań...
Kurs VBA (Visual Basic for Applications) w Microsoft Excel - programowanie w języku VBA, rejestrowanie makr i zarządzanie kodem
początkujący
cena
od 1090 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs VBA w Microsoft Excel - programowanie w języku VBA...
Kurs VBA (Visual Basic for Applications) w Microsoft Excel podstawowy - zasady tworzenia i kodowania algorytmów oraz automatyzacja pracy i tworzenie aplikacji
początkujący
cena
od 990 zł + VAT dla szkoleń otwartych
szkolenia zamknietę
Zapytaj o cenę dla szkoleń zamkniętych
Kurs VBA w Microsoft Excel podstawowy - zasady tworzenia i kodowania...
icon

Formularz kontaktowyContact form

Imię *Name
NazwiskoSurname
Adres e-mail *E-mail address
Telefon *Phone number
UwagiComments