Funkcje znakowe w Excel VBA 9


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.

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 email nie zostanie opublikowany.

9 komentarzy do “Funkcje znakowe w Excel VBA

    • Zuzia

      Zad. 4.2 ( nie mam pewności czy dobrze )

      Sub ZmTekstNaLiczb()

      Dim strValue As String
      strValue = InputBox(“Podaj zmienną tekstową: “)
      Dim intValue As Integer
      intValue = strValue
      MsgBox (Sqr(intValue))

      End Sub

  • Grzegorz_Gie

    Sub zadanie1()

    Dim tekst As String
    tekst = “Funkcje znakowe VBA”
    Range(“d1”).Value = Len(tekst)
    Range(“d2”).Value = UCase(tekst)
    Range(“d3”).Value = Replace(tekst, “VBA”, “Visual Basic”)
    Range(“d4”).Value = Left(tekst, 5)

    End Sub

    Sub zadanie2()

    Dim wartosc As String
    wartosc = “004535”

    Range(“a1”).Value = Sqr(Val(InputBox(“Wprowadź wartość”, , wartosc)))

    End Sub

    • Ewa

      > wytnij z tekstu 5 znaków zaczynając od lewej strony.

      z postu powyzej:
      > Range(“d4”).Value = Left(tekst, 5)

      Szczerze mowiac, to ja to “wytnij” rozumiem jako “usun”, czyli wynikiem ma byc “je znakowe VBA”
      Wowczas:

      MsgBox (“Usuniecie 5-ciu pierwszych znakow: ” & Right(s, Len(s) – 5))

  • Marcin

    Zadanie 4.1

    Option Explicit
    Sub FunkcjeZnakowe2()

    MsgBox (“Zwrot ‘Funkcje znakowe VBA’ ma długość ” & Len(“Funkcje znakowe VBA”) & ” znaków”)
    MsgBox (“Zwrot ‘Funkcje znakowe VBA’ zamieniony na litery wielkie wygląda tak: ” & UCase(“Funkcje znakowe VBA”))
    MsgBox (“A teraz zamienimy zwrot ‘VBA’ na coś innego. Tadam!!! –> ” & Replace(“Funkcje znakowe VBA”, “VBA”, “VisualBasic”))
    MsgBox (“Wycinamy 5 znaków z lewen strony wyrażenia ‘Funkcje znakowe VBA’. Oto one: ” & Left(“Funkcje znakowe VBA”, 5))

    End Sub

    Zadanie 4.2

    Option Explicit
    Sub ZmienneTekstowe3()

    Dim strTekst As String
    Dim sinLiczba As Single

    strTekst = InputBox(“Wprowadź liczbę 004535”)
    sinLiczba = Val(strTekst)
    MsgBox Sqr(sinLiczba)

    End Sub