Vytvorenie tlačítka.Skôr ako sa pustíme do premenných, pridáme program "Vycisti" tlačítku, aby sme ho mohli používať jednoducho priamo z excelu.
Na karte vývojár otvoríme tlačítko Vložiť a tam klikneme na Ovládacie prvky formulára, potom na prvú ikonku vľavo hore "Tlačidlo".
Príloha:
tlacitko.png [ 22.19 KiB | Zobrazené 6739 krát ]
Stratí sa všetko, čo bolo otvorené, ale kurzor ostane v tvare krížika. Klikneme niekde v tabuľke excelu. Otvorí sa okno s ponukou priradenia makra k tlačítku, tak priradíme "Vycisti".
Príloha:
tlacitko_vycisti.png [ 29.51 KiB | Zobrazené 6739 krát ]
Môže to vyzerať takto:
Príloha:
Tlačítko.png [ 40.51 KiB | Zobrazené 5752 krát ]
Pochopiteľne, ak program Vycisti() nemáte, treba si ho naprogramovať. Je to domáca úloha č. 1 z prvej lekcie.
Ak sa vám veľkosť tlačítka alebo jeho umiestnenie nepáči, kliknite naň pravým myšidlom a môžete si ho naformátovať alebo presunúť.
Krokovanie programu.Veľmi dobrá pomôcka pri programovaní, hlavne pri ladení programov je tzv. krokovanie. Znamená to, že program prechádzame po jednotlivých riadkoch (mimo komentárov) a môžeme si pozrieť výsledky jednotlivých krokov.
Krokovanie sa spúšťa cez tlačítko Debug a tam Step Into alebo klávesou F8.
Poprípade si môžete za zelené tlačítko Run pridať tlačítko Step Into. Je to jednoduché. Kliknite pravým na zelený trojuholník Run, tam vyberte Customize, tam kliknite na Debug, chyťte ikonu Step Into ľavým myšidlom a presuňte ho napr. vedľa tlačítka Run.
Príloha:
step into.png [ 4.03 KiB | Zobrazené 6739 krát ]
Schválne si skúste krokovať program Stvorec() - domáca úloha č. 2 z 1. lekcie.
Premenné vo VBA.VBA je staticky typovaný jazyk. To znamená, že všetkým premenným musíme priradiť typ.
Základné typy sú:
Celé čísla: Integer
Desatinné čísla: Single
Textový reťazec: String
Poďme si niečo naprogramovať.
Kód:
' program vypíše stanovené premenné do stanovených buniek
Sub Premenne_1()
' deklarácia premennej celé číslo
Dim celeCislo As Integer
' deklarácia premennej desatinné číslo
Dim desatinneCislo As Single
' deklarácia premennej reťazec
Dim retazec As String
' naplnenie premenných hodnotami
celeCislo = 25
desatinneCislo = 54.7896
retazec = "slovo"
' výpis premenných v stanovených bunkách
Range("B3") = celeCislo
Range("B5") = desatinneCislo
Range("B7") = retazec
End Sub
Krokujte program a uvidíte, že to pracuje správne.
Naprogramujeme si kalkulačku, ktorá spočíta dve hodnoty zadané užívateľom.
Urobte si v exceli niečo takéto:
Príloha:
kalkulačka.png [ 18.52 KiB | Zobrazené 6739 krát ]
Teraz napíšeme dva programy, ktoré nakoniec priradíme k tlačítkam.
Kód:
' program spočíta dve čísla zadané užívateľom
Sub Kalulacka()
' deklarácia premenných
Dim a As Single
Dim b As Single
Dim vysledok As Single
' priradí premenným obsah buniek
a = Range("B3")
b = Range("D3")
' výpočet
vysledok = a + b
' vypísanie výsledku
Range("F3") = vysledok
End Sub
a
Kód:
' program zmaže čísla zo stanovených buniek
Sub Vynuluj()
Range("B3") = ""
Range("D3") = ""
Range("F3") = ""
End Sub
Zamyslite sa ako a prečo sú tak napísané a krokovaním si otestujte ich funkčnosť.
Vytvorte tlačítko spočítaj a priraďte mu makro Kalkulacka, potom tlačítko vynuluj a priraďte mu makro Vynuluj.
Výsledok môže vyzerať asi takto:
Príloha:
kalkulačka_hotovo.png [ 21.03 KiB | Zobrazené 6739 krát ]
Operátory.Posledná časť tejto lekcie sa zaoberá operátormi vo VBA.
Poznáme ich 5:
Kód:
sucet = a + b
rozdiel = a - b
sucin = a * b
podiel = a / b
zostatokPoDeleni = a Mod b
Urobte si v exceli niečo takéto:
Príloha:
operátory.png [ 19.6 KiB | Zobrazené 6739 krát ]
Napíšme si program:
Kód:
' program vypíše výsledky výpočtu dvoch čísiel
' pomocou rôznych operátorov
Sub Operátory()
Dim a As Single
Dim b As Single
Dim sucet As Single ' +
Dim rozdiel As Single ' -
Dim sucin As Single ' *
Dim podiel As Single ' /
Dim zostatokPoDeleni As Single ' Mod (iba celočíselné delenie)
a = 25
b = 4
sucet = a + b
rozdiel = a - b
sucin = a * b
podiel = a / b
zostatokPoDeleni = a Mod b
Range("G2") = sucet
Range("G3") = rozdiel
Range("G4") = sucin
Range("G5") = podiel
Range("G6") = zostatokPoDeleni
End Sub
To pre dnešok všetko.
_________________
kódy píšem na platforme: linux Ubuntu 12.04 (Geany, Code::Blocks), WinXP (Code::Blocks, PsPad editor),
Skype: libcokamo, ICQ: 56312279
Ak treba, napíš mi na
libcosenior@gmail.com. To mám v mobile a stále po ruke.