Přeskočit na obsah

Textové FunkceVBA

Vrátí zadaný počet znaků od začátku (zleva) textového řetězce.

Pokud není předem jisté, na jaké pozici je určitý znak, který má být nalezen, je vhodné využít funkce instr pro nalezení daného znaku.

=LEFT(string,length)

String – Textový řetězec, ze kterého mají být extrahovány znaky.

Length – Počet znaků, které mají být extrahovány.

result = Left(„ExcelVBA“, 5) – Extrahuje 5 znaků ze slova „ExcelVBA“.

result = Left(Range(„A1“).Value, 5) – Extrahuje 5 znaků z textového řetězce, které se bude nacházet v buňce A1.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

result = Left(„Excel_VBA“, InStr(1, „Excel_VBA“, „_“, vbTextCompare) – 1) – Extrahování textu před podtržítkem, které je hledáno dynamicky pomocí funkce instr a ne přímo napsáno číslo jako druhý argument funkce Left.

Vrátí zadaný počet znaků od konce (zprava) textového řetězce.

Pokud není předem jisté, na jaké pozici je určitý znak, který má být nalezen, je vhodné využít funkce instr pro nalezení daného znaku a funkci len pro zjištění celkové délky.

Right(string, length)

string (povinné) – Textový řetězec, ze kterého chcete extrahovat znaky.

length (povinné) – Počet znaků, které chcete vrátit.

result = Right(„ExcelVBA“, 3) – Vrátí poslední 3 znaky z daného textu, tedy VBA.

result = Right(Range(„A1“).Value, 3) – Poslední 3 znaky z textu v buňce A1.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

result = Right(„Excel_VBA“, Len(„Excel_VBA“) – InStr(1, „Excel_VBA“, „_“, vbTextCompare)) – Dynamické zjištění textu za podtržítkem pomocí nalezení podtržítka funkcí instr a celkové délky funkcí len.

Vrátí zadaný počet znaků z textového řetězce, počínaje určenou pozicí.

Funkce prakticky vrátí prostředek určitého textového řetězce nebo od určitého znaku až do konce textového řetězce. Pokud není předem známo, kde se určitý znak nachází, je možné funkci kombinovat s funkcí instr.

Mid(string, start, [length])

string (povinné) – Textový řetězec, ze kterého se extrahují znaky.

start (povinné) – Pozice prvního znaku, který má být vrácen.

length (volitelné) – Počet znaků, které mají být vráceny. Pokud není zadáno, vrátí všechny znaky od pozice start do konce řetězce.

result = Mid(„ExcelVBA“, 2, 4) – Vrátí textový řetězec od 2. znaku s celkovým počtem 4 znaků (xcel).

result = Mid(„ExcelVBA“, 6) – Vrátí textový řetězec od 6. znaku až do konce řetězce, jelikož 3. argument není nastaven.

result = Mid(Range(„A1“).Value, 3, 1) – Vrátí z textového řetězce v buňce A1 znaky od 3. pozice, ale pouze jeden znak.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

result = Mid(„Excel_VBA“, InStr(1, „Excel_VBA“, „_“, vbTextCompare) + 1) – Vrátí počet znaků od nalezeného podtržítka plus jeden znak až do konce textového řetězce.

Vrátí počet znaků v textovém řetězci.

Len(string)

string (povinné) – Textový řetězec, jehož délka má být zjištěna.

result = Len(„ExcelVBA“) – Délka zadaného textového řetězce.

result = Len(Range(„A1“).Value) – Délka textového řetězce z buňky A1.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

result = Right(„Excel_VBA“, Len(„Excel_VBA“) – InStr(1, „Excel_VBA“, „_“, vbTextCompare)) – Funkce délky je zde pomocnou funkcí pro dynamické zjištění textu zprava funkcí Right dle zadaného znaku podtržítka ve funkci instr.

result = Mid(„Excel_VBA_Function“, Instr(1, „Excel_VBA_Function“, „_“) + 1, Len(„Excel_VBA_Function“) – Instr(1, „Excel_VBA_Function“, „_“)) – Část textu pomocí funkce mid, kde je zjištěno, kde se nachází podtržítko pomocí funkce instr a vše za podtržítkem bude ve výstupu ze zdrojového textového řetězce.

Vrátí pozici, na které se poprvé vyskytuje jeden textový řetězec uvnitř jiného.

Funkci lze často používat s podmínkou if, kdy pokud se daný textový řetězec nalezne, má se udělat určitý blok kódu a pokud ne, tak jiný blok kódu. Pokud se text v jiném textu nenalezne, funkce nevrátí error, ale hodnotu 0. V podmínce je tak vhodné porovnávat, zdali výstup z funkce instr je větší než 0. Pokud je potřebné začít hledat text od konce, hodí se použít funkci InStrRev.

InStr([start], string1, string2, [compare])

start (volitelné) – Pozice, kde se má vyhledávání zahájit. Výchozí je 1. znak (1).

string1 (povinné) – Textový řetězec, ve kterém má být vyhledáno.

string2 (povinné) – Textový řetězec, který má být nalezen.

compare (volitelné) – Typ porovnání:

  • vbBinaryCompare – Binární porovnání
  • vbDatabaseCompare – Textové porovnání
  • vbTextCompare – Porovnání informací z databáze (pouze Microsoft Access)

position = InStr(„ExcelVBA“, „x“) – Hledání písmena „x“ ve slově „ExcelVBA“. Výsledkem bude 2 jako 2. pozice.

position = InStr(1, „ExcelVBA“, „VBA“) – Hledání textu „VBA“ v textu „ExcelVBA“. Výsledkem bude 6 jako 6. pozice.

position = InStr(1, „ExcelVBA“, „Python“) – Hledání textu „Python“ v textu „ExcelVBA“. Výsledkem bude 0 jelikož text se v hlavním textu nenachází.

position = InStr(4, „VBAExcelVBA“, „VBA“) – Hledání textu „VBA“ od 4. pozice v textu „VBAExcelVBA“. Výsledkem bude 9, jelikož se nezačíná hledat hned od začátku textu.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

If InStr(1, LCase(„NAZEVSOUBORU“), „soubor“, vbTextCompare) then – Hledání textu „soubor“ v textu „NAZEVSOUBORU“, kdy ale tento text je velkými písmeny, takže je transformován funkcí Lcase na malá písmena. Zároveň je použita podmínka if Pokud by podmínka byla splněna, provedl by se blok daného kódu pod podmínkou.

Set folder = fso.getfolder(„C:\Cesta\k\souborům\“) ‚ Je nutné zadat cestu k souborům

For Each file In folder.Files ‚ pro každý soubor něco udělej pomocí cyklu

If (InStr(1, LCase(file.Name), „excel“, vbTextCompare) > 0 Then ‚ Podmínka hledání názvu souboru

Set wb = Workbooks.Open(file.path) ‚ otevření Excelu při splnění podmínky

Else

MsgBox(„Soubor s názvem nebyl nalezen“) ‚ Hláška při nesplnění podmínky

End If

Next file

Vyhledává textový řetězec, ale začíná od konce hlavního řetězce.

Funkce se hodí např. v případě nalezení poslední části textu oddělenou určitým znakem, například poslední adresář v cestě k souborům nebo poslední tečku v mailové adrese. Pokud je potřebné začít text v textovém řetězci od začátku, je vhodné použít funkci Instr.

InStrRev(string1, string2, [start], [compare])

string1 (povinné) – Textový řetězec, ve kterém se hledá.

string2 (povinné) – Textový řetězec, který má být nalezen.

start (volitelné) – Pozice, odkud začíná hledání (od konce směrem k začátku).

compare (volitelné) – Typ porovnání:

  • vbBinaryCompare – Binární porovnání
  • vbDatabaseCompare – Textové porovnání
  • vbTextCompare – Porovnání informací z databáze (pouze Microsoft Access)

position = InStrRev(„ExcelVBA“, „B“) – Hledání písmena „B“ ve slově „ExcelVBA“. Výsledkem bude 7 jako 7. pozice.

position = InStrRev(„ExcelVBAExcel“, „Excel“) – Nalezení posledního výskytu slove „Excel“ ve slově „ExcelVBAExcel“. V tomto případě se jedná o 9 pozici.

position = InStrRev(„ExcelVBA“, „Python“) – Hledání textu „Python“ v textu „ExcelVBA“. Výsledkem bude 0 jelikož text se v hlavním textu nenachází.

position = InStrRev(„VBAExcelVBA“, „VBA“, 4) – Hledání textu „VBA“ od v textu „VBAExcelVBA“, přičemž poslední 4 znaky textu jsou ignorovány. Výsledkem tak bude 1 jako první pozice, jelikož první výskyt textu „VBA“ od konce řetězce „VBAExcelVBA“ se nachází na první pozici, když jsou poslední 4 znaky ignorovány.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

pathToFile = „C:\Cesta\k\Souborům“ ‚ Cesta k souborům

lastPath = Right(pathToFile, Len(pathToFile) – InStrRev(pathToFile, „\“)) ‚ hledání posledního výskytu lomítka funkcí InstrRev. Chceme získat pouze poslední složku, tedy vše za posledním lomítkem. V takovém případě používáme funkci Right, je však nutné od celkové délky textového řetězce cesty získané funkcí Len odečíst právě pozici posledního lomítka.

Nahrazuje všechny výskyty určitého textu jiným textem.

Pokud se text, který má být nahrazen, v textovém řetězci nevyskytuje, bude vrácena původní hodnota textového řetězce a tak nevznikne žádný error.

Replace(expression, find, replace, [start], [count], [compare])

expression (povinné) – Textový řetězec, ve kterém má být provedeno nahrazení.

find (povinné) – Textový řetězec, který má být nahrazen.

replace (povinné) – Textový řetězec, který bude použit jako náhrada.

start (volitelné) – Pozice, kde začít nahrazování. Výchozí je 1, tedy od prvního znaku v řetězci.

count (volitelné) – Maximální počet nahrazení. Výchozí je nahradit všechny výskyty.

compare (volitelné) – Typ porovnání:

  • vbBinaryCompare – Binární porovnání
  • vbDatabaseCompare – Textové porovnání
  • vbTextCompare – Porovnání informací z databáze (pouze Microsoft Access)

result = Replace(„ExcelVBA“, „VBA“, “ je skvělý“) – Nahrazení slova VBA textem „ je skvělý“. Výsledek tak bude „Excel je skvělý“.

result = Replace(„panama“, „a“, “ e“) – Nahrazení všech výskytů písmena „a“ za „e“.

result = Replace(„ExcelVBA“, „Python“, „Py“) – Nahrazení slova „Python“ za „Py“. Jelikož se v prvním argumentu slovo „Python“ nevyskytuje, výstupem bude originální text „ExcelVBA“.

result = Replace(„VBAExcelVBA“, „VBA“, „VisualBasic“, 4) – Nahrazení slova „VBA“ za „VisualBasic“ s hledáním od 4. znaku. Tedy první výskyt VBA zůstane, ale na konci textového řetězce se text „VBA“ změní na „VisualBasic“.

result = Replace(„panama“, „a“, “ e“,,2) – Maximální počet nahrazení nastavený na 2. Nahradí se tak pouze první dvě „a“ za písmeno „e“, jelikož se hledá zleva.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

vbaString = „VBAExcel-VBAExcel-VBAExcel“ ‚ Textový řetězec, ve kterém se bude nahrazovat

result = Left(vbaString, 9) & Replace(vbaString, „Excel“, „Python“, 10) ‚ Ponechání prvních 9 znaků pomocí funkce Left a následné přidání zbytku textu, kde bude slovo „Excel“ nahrazeno textem „Python“.

Převede všechny znaky textového řetězce na velká písmena.

Pokud již v textovém řetězci velká písmena jsou, zůstanou velká. Pokud se jedná o textový řetězec obsahující i čísla, zůstanou čísla ve výstupu stejná. Funkce se hodí i v případě, kdy je potřeba porovnávat určitý text v podmínce, kdy není jisté, zdali jsou všechny písmena v textu velká, tak se přemění na velká písmena a budou porovnávány se slovem, který je napsán velkými písmeny.

UCase(string)

string (povinné) – Textový řetězec, který má být převeden na velká písmena.

result = UCase(„ExcelVBA“) – Výsledkem bude celý text velkými písmeny.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

Set folder = fso.getfolder(„C:\Cesta\k\souborům\“) ‚ Je nutné zadat cestu k souborům

For Each file In folder.Files ‚ pro každý soubor něco udělej pomocí cyklu

If (InStr(1, UCase(file.Name), „EXCEL“, vbTextCompare) > 0 Then ‚ Podmínka hledání části názvu souboru, kde ale může být text v názvu souboru malými písmeny, tak bude celý text (název souboru) v iterované proměnné převeden na velká písmena a porovnávána s textem ve 3. argumentu napsaným také velkými písmeny.

Set wb = Workbooks.Open(file.path) ‚ otevření Excelu při splnění podmínky

Else

MsgBox(„Soubor s názvem nebyl nalezen“) ‚ Hláška při nesplnění podmínky

End If

Next file

Převede všechny znaky textového řetězce na malá písmena.

Pokud se jedná o textový řetězec obsahující i čísla, zůstanou čísla ve výstupu stejná. Funkce se hodí i v případě, kdy je potřeba porovnávat určitý text v podmínce, kdy není jisté, zdali jsou všechny písmena v textu malá, tak se přemění na malá písmena a budou porovnávány se slovem, který je napsán malými písmeny.

LCase(string)

string (povinné) – Textový řetězec, který má být převeden na malá písmena.

result = LCase(„ExcelVBA“) – Výsledkem bude celý text malými písmeny (excelvba).

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

Set folder = fso.getfolder(„C:\Cesta\k\souborům\“) ‚ Je nutné zadat cestu k souborům

For Each file In folder.Files ‚ pro každý soubor něco udělej pomocí cyklu

If (InStr(1, LCase(file.Name), „excel“, vbTextCompare) > 0 Then ‚ Podmínka hledání části názvu souboru, kde ale může být text v názvu souboru i velkými písmeny, proto bude celý text (název souboru) v iterované proměnné převeden na malá písmena a porovnávána s textem ve 3. argumentu napsaným také malými písmeny.

Set wb = Workbooks.Open(file.path) ‚ otevření Excelu při splnění podmínky

Else

MsgBox(„Soubor s názvem nebyl nalezen“) ‚ Hláška při nesplnění podmínky

End If

Next file

Odstraní mezery na začátku a na konci textového řetězce.

Nadbytečné mezery budou odstraněny pouze ze začátku a konce textového řetězce, pokud zde jsou. Pokud existují nadbytečné mezery uprostřed textového řetězce, zůstanou nezměněny. Pokud je potřebné odstranit nadbytečné mezery pouze zleva, existuje funkce LTrim. Pokud naopak zprava, lze využít funkci RTrim.

Trim(string)

string (povinné) – Textový řetězec, který chcete oříznout.

result = Trim(“ ExcelVBA „) – Nadbytečné mezery se nachází na začátku i konci textového řetězce, které ubdou odstraněny a výsledkem tak bude „ExcelVBA“.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

Použití cyklu pro každou buňku v sloupci „A“ od 2. řádku po 13. řádek, kdy budou odstraněny nadbytečné mezery z jednotlivých buněk, pokud zde jsou.

For i = 2 To 13

cellToTrim = Trim(Range(i, „A“).Value)

Range(i, „A“).Value = cellToTrim

Next i

Vrátí ASCII hodnotu prvního znaku zadaného řetězce. ASCII používá 7 bitů pro každou znakovou hodnotu, což umožňuje reprezentovat 256 různých znaků (0-255).

Funkce vrátí ASCII hodnotu pouze pro první znak v textovém řetězci, pokud se nejedná pouze o jeden znak. Pokud je naopak převést ASCII znak zpátky, použije se funkce Chr.

ASC(string)

String (povinné) – Textový řetězec, ze kterého se má získat ASCII hodnota prvního znaku.

result = Asc(„A“) – Vrátí hodnotu 65, jelikož písmeno „A“ je 65. znakem v ASCII formátu.

result = Asc(„Argument“) – Také vrátí hodnotu 65, jelikož první písmeno ve slově je „A“.

Vrátí znak odpovídající zadané ASCII hodnotě.

Zadané číslo do funkce musí odpovídat jednomu z ASCII hodnot, jinak funkce vrátí error.

Chr(Number)

Number (povinné) – Číslo odpovídající ASCII hodnotě (0–255).

result = Chr(65) – Vrátí odpovídající hodnotu danému číslu, zde hodnotu/písmeno „A“.

Vrátí hodnotu formátovanou podle zadaného formátu.

Funkce formátuje čísla, text nebo datum do zadaného formátu. Pokud se jedná o datum, je možné extrahovat i pouze určitou část z datumu, např. měsíc, rok nebo den. Jednotlivé formáty do funkce jsou stejné jako při formátování daných buněk v klasickém Excelu.

Format(Expression, [Format], [FirstDayOfWeek],[FirstWeekOfYear])

Expression (povinné) – Hodnota k formátování.

Format (volitelné) – Řetězec určující formát. Zde je ukázka jednotlivých formátu, které do argumentu lze zvolit:

  • Datumy:
Formát Příklad Popis
General Date 01.01.2025 Systémové datum.
Long Date Pondělí 1. leden 2025 Zobrazí datum s vypsaným dnem v týdnu a textem měsíce.
Medium Date 01.led 2025 Zobrazí zkratku měsíce v celém datu.
Short Date 01.01.2025 Číselné datum.
Long Time 15:34:55 Zobrazí 24hodinový čas s hodinami, minutami a sekundami.
Medium Time 3:34 odp. Zobrazí 12hodinový čas.
Short Time 15:34 Zobrazí hodiny a minuty.
yyyy 2025 Zobrazí pouze rok z datumu.
mm 01 Zobrazí pouze měsíc z datumu.
dd 01 Zobrazí pouze den z datumu.
  • Čísla:
Formát Popis
General Number Zobrazí obecné číslo bez oddělení tisíců.
Currency Zobrazí systémovou měnu s oddělenými tisíci a 2 desetinnými místy.
Euro Zobrazí symbol eura k danému číslu.
Fixed Zobrazí alespoň jedno celé číslo a 2 desetinná místa.
Standard Číslo s oddělovačem mezi tisíci a dvěma desetinnými místy.
Percent Zobrazí číslo v procentech s 2 desetinnými místy.
Scientific Vědecký formát.
Yes/No Zobrazí „Ne“ pokud je číslo rovno 0, jinak „Ano“.
True/False Zobrazí „NEPRAVDA“ pokud je číslo rovno 0, jinak „PRAVDA“.
On/Off Zobrazí „Off“ pokud je číslo rovno 0, jinak „On“.
  • Text:
Znak formátu Popis
@ Znak textu je požadovaný.
& Znak textu není požadovaný.
< Převede všechny znaky na malé písmeno.
> Převede všechny znaky na velké písmeno.

FirstDayOfWeek (volitelné, výchozí=0) – Definuje první den týdne, výchozí je neděle (0).

FirstWeekOfYear (volitelné, výchozí=0) – Definuje první týden roku.

formatDate = Format(„2024-12-25“, „Long Date“) – Formátování datumu na dlouhé datum.

formatDate = Format(„2024-12-25“, „Short Date“) – Formátování datumu na krátké datum.

FormatTime = Format(„18:25:45“, „Medium Time“) – Formátování času na 12 hodinový formát.

formatDate = Format(„2024-12-25“, „MM“) – Zjištění pouze měsíce z data.

formatDate = Format(„2024-12-25“, „yyyy“) – Zjištění roku z data.

formatDate = Format(„2024-12-25“, „dd“) – Zjištění číselného dne z data.

formatDate = Format(„2024-12-25“, „dddd“) – Zjištění dne v týdnu z data.

NumberFormat = Format(„45“, „Currency“) – Formátování čísla na účetnický formát se systémovou měnou.

FormatText = Format(„ExcelVBA“, „<„) – Převedení textu na malá písmena.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

formatTime = Format(Time, „Short Time“) – Formátování aktuálního času zjištěného funkcí time na pouze hodiny a minuty.

formatDate = Format(Date, „Long Date“) – Formátování dnešního dne zjištěného funkcí date na dlouhé datum.

formatDate = Format(DateAdd(„m“, -1, Date), „yyyy-MM-dd“) – Formátování dne, přičemž od dnešního dne má být odečten jeden měsíc díky znaku „m“ (měsíc) pomocí funkce DateAdd. Následně bude datum formátováno jako rok-měsíc-den.

Odstraní mezery na začátku textového řetězce.

Nadbytečné mezery budou odstraněny pouze ze začátku textového řetězce, pokud zde jsou. Pokud existují nadbytečné mezery uprostřed nebo na konci textového řetězce, zůstanou nezměněny. Pokud je potřebné odstranit nadbytečné mezery pouze zleva i zprava, existuje funkce Trim. Pokud pouze zprava, lze využít funkci RTrim.

LTrim(string)

string (povinné) – Textový řetězec, z kterého mají být na začátku odstraněny mezery.

result = LTrim(“ ExcelVBA „) – Nadbytečné mezery se nachází na začátku i konci textového řetězce, budou však odstraněny pouze zleva. Výsledkem tak bude „ExcelVBA “.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

Použití cyklu pro každou buňku v sloupci „A“ od 2. řádku po 13. řádek, kdy budou odstraněny nadbytečné mezery ze začátku řetězce z jednotlivých buněk, pokud zde jsou.

For i = 2 To 13

cellToTrim = LTrim(Range(i, „A“).Value)

Range(i, „A“).Value = cellToTrim

Next i

Odstraní mezery z konce textového řetězce.

Nadbytečné mezery budou odstraněny pouze na konci textového řetězce, pokud zde jsou. Pokud existují nadbytečné mezery uprostřed nebo na začátku textového řetězce, zůstanou nezměněny. Pokud je potřebné odstranit nadbytečné mezery pouze zleva i zprava, existuje funkce Trim. Pokud pouze na začátku, lze využít funkci LTrim.

RTrim(string)

string (povinné) – Textový řetězec, z kterého mají být na konci odstraněny mezery.

result = RTrim(“ ExcelVBA „) – Nadbytečné mezery se nachází na začátku i konci textového řetězce, budou však odstraněny pouze z konce. Výsledkem tak bude „ ExcelVBA“.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

Použití cyklu pro každou buňku v sloupci „A“ od 2. řádku po 13. řádek, kdy budou odstraněny nadbytečné mezery ze konce řetězce z jednotlivých buněk, pokud zde mezery jsou.

For i = 2 To 13

cellToTrim = RTrim(Range(i, „A“).Value)

Range(i, „A“).Value = cellToTrim

Next i

Vrátí řetězec obsahující zadaný počet mezer.

Funkce se používá zejména v msgboxu nebo psaní textu přímo do buněk, kde je možné mezi text vložit zadaný počet mezer.

Space(Number)

Number – Počet mezer, které mají být vytvořeny.

result = „Ahoj“ & Space(5) & „Světe“ – Přidání pěti mezer mezi slova.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

MsgBox(„Ahoj“ & spaces(5) & „Světe“) – Přidání 5 mezer mezi textem v rámci msgboxu.

Rozdělí textový řetězec podle zadaného oddělovače.

Funkce vrátí pole podřetězců, tedy ne pouze jednu hodnotu, jelikož se textový řetězec rozděluje. Proto není možné výstup vložit pouze do jedné proměnné, ale do daného pole. Pole se specifikuje pomocí názvu proměnné a kulatých závorek. Pokud má být následně jedna z hodnot uložených do listu někde vypsána, je nutné zadat číslo hodnoty v daném listu. Proměnnou je navíc nutné deklarovat.

Split(Expression, [Delimiter], [Limit], [Compare])

Expression (povinné) – Text, který má být rozdělen.

Delimiter (volitelné, výchozí=“ “) – Oddělovač, podle kterého se text rozdělí.

Limit (volitelné) – Počet částí, do kterých se má text rozdělit.

Compare (volitelné) – Typ porovnání:

  • vbBinaryCompare – Binární porovnání
  • vbDatabaseCompare – Textové porovnání
  • vbTextCompare – Porovnání informací z databáze (pouze Microsoft Access)

textSplit() = Split(„Jan,Novák“, „,“) – Rozdělí textový řetězec na základě čárky do listu specifikovaného před rovnítkem. List je nutné specifikovat kulatými závorkami za názvem proměnné.

textSplit() = Split(„1;2;3“, „;“) – Rozdělení dat na základě středníku.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

Deklarace proměnné a zároveň vypsání dat pomocí msgboxu jednotlivých hodnot (první a druhé) v listu.

Dim textSplit() As String

textSplit() = Split(„1;2;3“, „;“)

MsgBox („první hodnota: “ & textSplit(0) & “ Druhá hodnota: “ & textSplit(1))

Převede číslo na textový řetězec.

Str(Number)

Number – Číslo, které má být převedeno na text.

Number – Číslo, které má být převedeno na text.

Vrátí řetězec obsahující zadaný znak opakovaný tolikrát, kolik je zadáno.

Nelze opakovat určité slovo nebo více znaků. Funkcí bude opakován pouze první znak (písmeno, číslo, speciální znak) v daném textovém řetězci, pokud je vloženo více než 1 znak do funkce.

String(Number, Character)

Number – Počet opakování znaku.

Character – Znak, který má být opakován.

result = String(5, „*“) – Znak hvězdičky se bude opakovat 5x. Výstupem tak bude „*****“.

result = String(3, „w“) – Písmeno „w“ bude opakováno třikrát.

result = String(3, „vba“) – Písmeno „v“ se bude opakovat třikrát. Bude se opakovat pouze „v“, jelikož se jedná o první znak v textovém řetězci.

Porovná dva textové řetězce a vrátí výsledek porovnání.

Výstupem bude buďto 0 jako shoda nebo -1 jako neshoda dvou textových řetězců. Pokud se má pouze zjistit, zdali určitý podřetězec nebo písmeno se nachází v textu a skutečně se nachází, výstupem bude 1. Porovnání nebere ohled na velikost písmen v řetězcích.

StrComp(String1, String2, [Compare])

String1 (povinné) – První textový řetězec k porovnání.

String2 (povinné) – Druhý textový řetězec k porovnání.

Compare (volitelné) – Typ porovnání:

  • vbBinaryCompare – Binární porovnání
  • vbDatabaseCompare – Textové porovnání
  • vbTextCompare – Porovnání informací z databáze (pouze Microsoft Access)

result = StrComp(„VBA“, „VBA“) – Porovnání textů. Vrátí 0 ( přesná shoda), jelikož nezáleží na velikosti písmen

result = StrComp(„vba“, „VBA“) – Vrátí 0 ( přesná shoda), jelikož nezáleží na velikosti písmen

result = StrComp(„vba“, „a“) – Vrátí 1, jelikož písmeno „a“ se nachází ve slově VBA.

result = StrComp(„vba“, „x“) – Vrátí -1, jelikož písmeno „x“ se nenachází ve slově „vba“ a ani se nejedná o přesnou shodu.

Převede textový řetězec na specifický formát.

StrConv(String, Conversion, [LocaleID])

String (povinné) – Text, který chcete převést.

Conversion (povinné) – Typ konverze:

Argument Popis
vbUpperCase Převede písmena na všechny velká.
vbLowerCase Převede písmena na všechny malá.
vbProperCase První písmeno každého slova bude velké a ostatní na malá písmena.
vbWide Převede ASCII znaky na Chr znaky.
vbNarrow Převede Chr znaky na ASCII znaky.
vbUnicode Převede řetězec na Unicode.
vbFromUnicode Převede řetězec z Unicode na výchozí kódování systému.

LocaleID (volitelné) – Nastavení jazyka.

result = StrConv(„vba“, vbUpperCase) – Vrátí text pouze s velkými písmeny (VBA).

result = StrConv(„ahoj světe“, vbProperCase) – Výsledkem bude každé první písmeno slova velké (Ahoj Světe).

Vrátí řetězec, jehož znaky jsou v opačném pořadí.

StrReverse(String)

String – Textový řetězec, který má být obrácen.

result = StrReverse(„text123“) – Výstupem bude „321txet“, jelikož se text obrátí.

Použití s ostatními funkcemi

Sekce “Použití s ostatními funkcemi”

Nalezení poslední složky v cestě k souborům pomocí funkce StrReverse:

pathfile = „C:\Cesta\k\souborům“ – Řetězec cesty k souborům

reversePath = StrReverse(pathfile) – Obrácení textového řetězce

partPath = Left(reversePath, InStr(reversePath, „\“) – 1) – Nalezení lomítka pomocí funkce Instr v obrácené cestě k souborům, kdy bude extrahován pouze text před lomítkem pomocí funkce Left v obráceném řetězci.

result = StrReverse(partPath) – Znovu obrácení extrahovaného textu, aby byl v původním stavu. Výsledkem tak bude pouze text „souborům“ díky extrahování před posledním lomítkem kvůli obrácenému řetězci.

© 2026 Excelland