Funkcia Fix
Funkcia Fix zoberie číselný výraz a odstraní desatinnú čiarku. Návrátová hodnota funkcie je typ Double.
1. príklad: Testujeme argumenty pre funkciu Fix
Sub macro On Error Resume Next Dim i As Integer Dim retazec As String Dim pole() pole() = Array(r, popo, pr4, mongii, 45, 45454, 444815, -1045, -455255, 104.56, 2545.64, "455411", "4555455", "88878788", "-525", "-89", "84p", "o78", "87.2", "144.78", "151.44", "-167.444", "78,12", "254,99", "454,77", "-4578,77", "-8954,448", "p125,77", "127,45osel", &HA2, &HB7, &HC8) For i = LBound(pole()) To UBound(pole()) retazec = retazec & i+1 & " Fix(" & pole(i) & ") = " retazec = retazec & Fix(pole(i)) retazec = retazec & Chr(10) Next MsgBox retazec End Sub
Rozbor makra:
10 Fix(104,56) = 104 – vidíme, ako funkcia odstráni desatinnú čiarku
20 Fix(144.78) = 144 – problém nerobí ani vytiahnúť z reťazca
28 Fix(p125,77) = 0 – ak výraz nezačína číslom, tak vráti 0
29 Fix(127,45osel) = 127 – nemá problém vytiahnúť číslo a zaokrúhliť ani v takto definovanom výraze
Funkcia Chr
S funkciou Chr už máte od začiatku seriálu bohaté skúsností. Je to práve tá funkcia, s ktorou robíte nový riadok pri výpise. Robíte to konkretnejšie s Chr(10). Funkcia vezme hodnotu argumentu od 0 do 255 a vypíše znak. Číselne hodnoty znakov sa radia podľa ASCII tabuľky.
2. príklad: Testujeme argumenty pre funkciu Chr
Sub macro On Error Resume Next Dim i As Integer Dim retazec As String Dim pole() pole() = Array(d,fdp, 0, 100, 255, 266, 1000, -10, -255, 10.6, 254.6, "11", "45", "88", "-25", "-89", "84p", "o78", "87.2", "144.78", "78,12", "254,99", "p125,77", "127,45osel", &HA2, &HB7, &HC8) For i = LBound(pole()) To UBound(pole()) retazec = retazec & i+1 & " Chr(" & pole(i) & ") = " retazec = retazec & Chr(pole(i)) retazec = retazec & Chr(10) Next MsgBox retazec End Sub
Funkcia CVar
Ako dobré tušíte, funkcia CVar vrácia premennú typu Variant.
3. príklad: Testujeme funkciu CVar
Sub macro On Error Resume Next Dim i As Integer Dim retazec As String Dim pole() pole() = Array(r, popo, pr4, mongii, 45, 45454, 444815, -1045, -455255, 104.56, 2545.64, "455411", "4555455", "88878788", "-525", "-89", "84p", "o78", "87.2", "144.78", "151.44", "-167.444", "78,12", "254,99", "454,77", "-4578,77", "-8954,448", "p125,77", "127,45osel", &HA2, &HB7, &HC8,) For i = LBound(pole()) To UBound(pole()) retazec = retazec & i+1 & " CVar(" & pole(i) & ") = " retazec = retazec & CVar(pole(i)) retazec = retazec & Chr(10) Next MsgBox retazec End Sub
Funkcia CDec
Funkcia vrácia číslo v decimálnom tvare.
4. príklad: Testujeme funkciu CDec
Sub macro On Error Resume Next Dim i As Integer Dim retazec As String Dim pole() pole() = Array(r, popo, pr4, mongii, 45, 45454, 444815, -1045, -455255, 104.56, 2545.64, "455411", "4555455", "88878788", "-525", "-89", "84p", "o78", "87.2", "144.78", "151.44", "-167.444", "78,12", "254,99", "454,77", "-4578,77", "-8954,448", "p125,77", "127,45osel", &HA2, &HB7, &HC8,) For i = LBound(pole()) To UBound(pole()) retazec = retazec & i+1 & " CDec(" & pole(i) & ") = " retazec = retazec & CDec(pole(i)) retazec = retazec & Chr(10) Next MsgBox retazec End Sub
Rozbor makra:
17 CDec(84p) = 0 – stačí jeden nečíselný znak a vráti funkcia hodnotu 0.
28 CDec(p125,77) = 0 – rovnaký dôvod ako v predchadzajúcom bode
V budúcom článku si ešte predstavíme nejaké funkcie a tým skončí miniséria formátovania čísel. Potom nás bude čakať formátovanie času a dátumu.