Funkcje znakowe w Excel VBA

1. Funkcje znakowe VBA w Excel

Excelowe VBA oferuje nam szereg użytecznych funkcji znakowych. Nie możemy ich liczby porównywać oczywiście do liczby funkcji w arkuszu Excel i co najważniejsze nie są to te same funkcje. Wykorzystanie funkcji arkuszowych w naszym kodzie VBA opiszemy w osobnym rozdziale. Funkcje znakowe podobnie jak funkcje matematyczne możemy ze sobą łączyć.Możemy także zagnieżdżać jedną funkcję w drugiej. Poniżej tabela zawierająca wszystkie funkcje znakowe w VBA oraz ich dokładny opis.

2. Funkcje znakowe VBA – wykaz funkcji

ASC(string)Funkcja zamienia podany w argumencie znak na kolejny numer znaku w kodzie ASCII
CHR(string)Odwrotność funkcji ASCII. Zamienia kolejny znak numeryczny na znak w kodzie ASCII.
INSTR(string_1, string_2)Funkcja wyszukuje w ciągu znaków string_2 frazę zawartą w string_1, zwracając jego pozycję w formie liczby/miejsca, które kolejno zajmuje. Zaczyna od lewej strony. Szuka pierwszego wystąpienia
INSTRRREV(string_1, string_2)Funkcja wyszukuje ciągu znaków string_2 w ciągu znaków string_1 zwracając jego pozycję w formie liczby/miejsca, które kolejno zajmuje. Zaczyna od prawej strony. Szuka pierwszego wystąpienia
LCASE(string)Funkcja zamienia wszystkie litery w ciągu znaków na małe litery.
LEFT(string, int)Funkcja zwraca wybraną liczbę znaków z ciągu tekstowego zaczynając od lewej strony.
LEN(string)Funkcja zwraca liczbę znaków w podanym ciągu tekstowym.
LTRIM(string)Funkcja usuwa spacje z lewej strony ciągu tekstowego.
MID(string, int_1, int_2)Funkcja wycina z ciągu znaków string ciąg rozpoczynający się w pozycji int_1 o długości int_2.
REPLACE(string_1, string_2, string_3)Funkcja zamienia w ciągu tekstowym string_1 znaki podane w argumencie string_2 na znaki podane w argumencie string_3. Zamienić możemy zarówno pojedynczy znak, jak i całe frazy.
RIGHT(string, int)Funkcja zwraca wybraną liczbę znaków z ciągu tekstowego zaczynając od prawej strony.
RTRIM(string)Funkcja usuwa spacje z prawej strony ciągu tekstowego.
SPACE(int)Funkcja zwraca określoną w argumencie liczbę spacji
SPLIT(string, delimiter)Funkcja szuka w ciągu string, znaku kończącego delimiter. Następnie usuwa cały tekst występujący za tym znakiem.
STR(number)Zamienia liczbę na typ znakowy String
STRCOMP(string_1, string_2,[rodzaj porównania])Funkcja używana do porównania dwóch wartości tekstowych. Porównuje wartość string_1 z wartością string_2. Jeśli string_1 jest krótszy od string_2, funkcja zwróci wartość -1. Jeśli są równej długości, zwróci 0. Jeśli string_1 jest dłuższy, funkcja zwróci wartość 1.
STRCONV(string, conversion)Funkcja używana o konwersji wartości tekstowych. Zmienia wartość tekstową w zależności od wybranego przez nas drugiego argumentu. Funkcja opisana szerzej w rozdziale „Funkcje formatu i konwersji”
STRREVERSE(string)Zwraca ciąg znaków w porządku odwrotnym, zaczynając od końca ciągu.
TRIM(string)Funkcja usuwa spacje z prawej i lewej strony ciągu tekstowego.
UCASE(string)Funkcja zamienia wszystkie litery w ciągu znaków na wielkie litery.
VAL(string)Funkcja wyszukuje w ciągu tekstowym text wszystkie znaki liczbowe, następnie je zwraca. Może służyć do usuwania zer wiodących z naszego ciągu tekstowego.

Niektóre funkcje znakowe VBA jak STRCOMP(), czy SPLIT() umożliwiają wybranie dodatkowych nieopisanych wyżej parametrów. Ich zastosowanie szczegółowo opiszę w części dla zaawansowanych.

3. Przykład wykorzystania funkcji znakowych 

Poniżej przykłady wykorzystania wszystkich poznanych w tym rozdziale funkcji znakowych vba. Tak jak w poprzednim rozdziale, tworzymy makro, które wyświetli nam wszystkie funkcje w kolumnie „A” arkusza danych.

Sub FunExample()

Range("A1").Value = Asc("a")
Range("A2").Value = Chr(122)
Range("A3").Value = InStr("dowolny ciąg znaków", "a")
Range("A4").Value = InStrRev("dowolny ciąg znaków", "a")
Range("A5").Value = LCase("Dowolny Tekst")
Range("A6").Value = Left("Dowolny Tekst", 5)
Range("A7").Value = Len("dowolny tekst")
Range("A8").Value = LTrim(" Jakiś tekst ")
Range("A9").Value = Mid("Dowolny ciąg tekstowy", 10, 8)
Range("A10").Value = Replace("Dowolny ciąg tekstowy", "tekstowy", "znakowy")
Range("A11").Value = Right("Dowolny Tekst", 5)
Range("A12").Value = RTrim(" Jakiś tekst ")
Range("A13").Value = Space(5) + "Przed tym tekstem jest 5 spacji"
Range("A14").Value = Split("Dowolny tekst", " ")
Range("A15").Value = Str(123)
Range("A16").Value = StrComp("Dowolny tekst1", "Dowolny tekst2", vbTextCompare)
Range("A17").Value = StrConv("Dowolny tekst1", vbUpperCase)
Range("A18").Value = StrReverse("Jakiś tekst")
Range("A19").Value = Trim(" Jakiś tekst ")
Range("A20").Value = UCase("Dowolny Tekst")
Range("A21").Value = Val("0123")

End Sub
Kurs Excel VBA - Funkcje znakowe VBA
Kurs Excel VBA – Funkcje znakowe VBA

Plik Excel z przykładem zamieszczam poniżej:

kurs_excel_vba_funkcje_znakowe

4. Zadania (Rozwiązanie możesz wpisać w komentarzu)

4.1 Działając na zdaniu „Funkcje znakowe VBA”. Wykonaj następujące działania przy użyciu funkcji tekstowych: zlicz długość ciągu znaków ; zamień wszystkie litery na litery wielkie; zamień frazę VBA na frazę VisualBasic ; wytnij z tekstu 5 znaków zaczynając od lewej strony.

4.2 Przy pomocy okienka InputBox wprowadz do VBA zmienną tekstową o wartości 004535. Następnie zamień ją na liczbę i przy użyciu funkcji matematycznej wyciągnij z niej pierwiastek.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

13 komentarzy “Funkcje znakowe w Excel VBA”