Volanie Call
Jednou z možností, ako môžete volať procedúry, funkcie či triedy je pomocou slova Call.
1. príklad: Využitie príkazu Call pri dvoch procedúrach
Sub TestSub(cislo, cislo1)
MsgBox "Vysledok scitania: " & cislo+cislo1 & Chr(10) & "Vysledok odcitania: " &
cislo-cislo1 & Chr(10) & "Vysledok nasobenia: " & cislo*cislo1 & Chr(10) &
"Vysledok delenia: " & cislo/cislo1
End Sub
Sub macro
Dim m As Integer
Dim n As Integer
m = InputBox("Zadajte prve cele cislo")
n = InputBox("Zadajte druhe cele cislo")
Call TestSub(m, n) REM voláme procedúru
End Sub
Rozbor makra: Makro je jednoduché na pochopenie. Procedúru voláme pomocou funkcie Call.
Skúsme teraz miesto procedúry využiť funkciu? Bude výsledok iný?
2. príklad: Voláme funkciu pomocou Call
Function TestFunction(cislo, cislo1)
MsgBox "Vysledok scitania: " & cislo+cislo1 & Chr(10) & "Vysledok odcitania: " &
cislo-cislo1 & Chr(10) & "Vysledok nasobenia: " & cislo*cislo1 & Chr(10) &
"Vysledok delenia: " & cislo/cislo1
End Function
Sub macro
Dim m As Integer
Dim n As Integer
m = InputBox("Zadajte prve cele cislo")
n = InputBox("Zadajte druhe cele cislo")
Call TestFunction(m, n) REM voláme funkciu
End Sub
Rozbor makra: Rovnaký výsledok ako v prvom príklade. Všetko funguje ako má.
Swap
Swap v počítačovej terminológii znamená, výmena hodnôt medzi dvoma prvkami. Aspoň takto by som to v jednoduchostí definoval. Aj vo Visual Basicu môžeme využívať tieto fintíčky.
Pre názornosť je lepšie ukázať jednoduchý príklad. Následne by som vám chcel ukázať ďalšie príklady so swapom.
3. príklad: Jednoduchý príklad so swapom
Sub swap
Dim a As Integer
Dim b As Integer
Dim pomocnaPremenna As Integer
a = InputBox("Zadajte prve cele cislo")
b = InputBox("Zadajte druhe cele cislo")
pomocnaPremenna = a REM swap
a = b
b = pomocnaPremenna
MsgBox "Po vykonani swapu: a = " & a & ", b = " & b
End Sub
Rozbor makra: Vtip swapu je v tom, že si vytvoríme tretiu premennú. Volajme ju pomocná premenná. V nej uložíme hodnotu z prvej premennej. Potom prvá premenná získa hodnotu z druhej premennej. A na koniec, druhá premenná získa uloženú hodnotu z pomocnej premennej. Takto vieme jednoducho vymieňať hodnoty medzi dvoma prvkami.
4. príklad: Ideme na ostrejší príklad so swapom
Sub swap
Dim poleDatum(0 to 2) As String
Dim stringDatum As String
Dim pomocnaPremenna As String
stringDatum = InputBox("Zadajte dátum vo formáte dd.mm.rrrr!")
poleDatum = Split(stringDatum, ".")
pomocnaPremenna = poleDatum(0) REM swap s prvkami poľa
poleDatum(0) = poleDatum(2)
poleDatum(2) = pomocnaPremenna
stringDatum = Join(poleDatum, ".")
MsgBox stringDatum
End Sub
Rozbor makra: Užívateľ zadá dátum v predpísanom tvare. S pomocou funkcie Split nasekáme reťazec do poľa. Vďaka tomu môžeme využiť swap. Vymeníme nultý prvok s druhým a získame opačne napísaný dátum. Funkcia Join už len premení pole na reťazec a vypíšeme na obrazovku.
No a čo tak ten vstupný reťazec zmeníme na typ Variant? Bude zmena?
5. príklad: Vstupná reťazec nech je typu Variant
Sub swap
Dim poleDatum(0 to 2) As String
Dim stringDatum As Variant
Dim pomocnaPremenna As String
stringDatum = InputBox("Zadajte dátum vo formáte dd.mm.rrrr!")
poleDatum = Split(stringDatum, ".")
pomocnaPremenna = poleDatum(0)
poleDatum(0) = poleDatum(2)
poleDatum(2) = pomocnaPremenna
stringDatum = Join(poleDatum, ".")
MsgBox stringDatum
End Sub
Rozbor makra: Už dávnejšie vieme, že Variant je ako skladisko premenných. Prehltne všetky typy premenných. Ak napíšeme správne reťazec, tak žiadna zmena oproti 4 programu nenastane.

Na začiatku si ukážeme alternatívne volanie funkcii, procedúr a tried (tie ešte v rámci seriálu
nepoznáte). Potom sa vrhneme na výmenu hodnôt medzi dvoma premennými pomocou swapu.























