Vianoce v ITnetwork sú tu! Dobí si teraz kredity a získaj až 80 % extra kreditov na e-learningové kurzy ZADARMO. Zisti viac.
Hľadáme nové posily do ITnetwork tímu. Pozri sa na voľné pozície a pridaj sa k najagilnejšej firme na trhu - Viac informácií.

2. diel - Klasické Hello a úvod do OOP pre makrá

V minulej lekcii, Úvod do tvorby makier pre Microsoft Office , sme si urobili úvod do makier a vytvorili si jednoduché makro formátující text pre Microsoft Word a Excel. V dnešnom tutoriále sa budeme venovať objektom.

Spustite si Visual Basic, vložme modul voľbou Insert -> Module a môžeme začať programovať.

MsgBox

Zadanie: Zobrazte text "Hello" v dialógovom okne.

Napíšeme Sub pozdrav a stlačíme Enter. Visual Basic sám doplní prázdne zátvorky a ukončenie makrá. Medzi tieto riadky budeme písať samotné telo makra.

Za ' sa píšu komentáre, kde býva popis kódu. Funkčnosť makrá neovplyvňujú, ale umožňujú sa v kóde lepšie orientovať, najmä ak sa k nemu vraciame po dlhšej dobe.

Príkaz MsgBox zobrazí dialógové okno s textom (reťazcom) uvedeným v "":

Sub pozdrav()
'prvni pozdraveni
MsgBox "Hello"
End Sub

Teraz urobíme v kóde zámerne chybu vymazaním písmená M a makro spustíme. Editor Visual Basic nás upozornil na chybu. Chybu teda opraví a pokúsme sa makro spustiť. Lenže sa dozvieme, že editor je teraz v break módu a v ňom nedá makro spustiť. Aby sme mohli makro opäť spúšťať, zvolíme Run -> Design mode a alebo Run -> Continue (F5). Oboje má svoje tlačidlá na lište. Teraz už bude všetko bez problémov.

Zadanie: Zobrazte v dialógovom okne veľkosť písma vybranej oblasti.

Sub velikost()
'zobrazi Velikost: a velikost pisma
MsgBox "Velikost: " & Selection.Font.Size
End Sub

Textový reťazec sme opäť uviedli do "". Nasleduje operátor & pre spájanie reťazcov a za ním je časť vracajúci veľkosť písma. A u nej sa zastavme.

Úvod do OOP

Visual Basic podporuje objektovo orientované programovanie (OOP). Ponúka nám veľké množstvo hotových tried a objektov. Pre prácu s nimi sa používa bodkovaný notácie. Tu vidíme objekt Selection, čo nám hovorí, že budeme pracovať s výberom. Za bodkou máme spresnenie, že nás zaujíma z Font výberu a za ďalšie bodkou je uvedené ešte bližšie upresnenie Size. Size je vlastnosť, v tomto prípade je to veľkosť fontu písma vo vybranej oblasti. Font má veľa vlastností, s ktorými sme sa už stretli v minulom článku po nahraní makra. Vo finálnom makre potom zostali len vlastnosti Name, Size, Bold a Italic.

Vlastnosti môžu všeobecne obsahovať len nejakú hodnotu. Napr. u Size je to číslo. Túto hodnotu možno meniť priradením, čo je vo Visual Basicu znak =:

Selection.Font.Size = 14

Príkaz nastavil hodnotu vlastnosti Size na 14 u fontu vybranej oblasti, a tak sa po spustení makra zmenila veľkosť písma. Obdobne je to aj u ďalších uvedených vlastností v minulom článku.

Trieda, objekt, môže mať vlastnosti a metódy. Kým vlastnosti iba popisujú vzhľad alebo stav objektu, metóda je nejaká činnosť (napr. Vybranie, zmazanie, kópie do schránky a tak ďalej).

Toto je veľmi krátky, prakticky orientovaný úvod do OOP. Skúsme si, či mu rozumieme.

Najprv sa pozrieme ešte na vlastnosť.

Zadanie: Zobrazte v dialógovom okne obsah aktuálnej bunky.

Zaujíma nás len jedna vybraná bunka. Nám známy objekt Selection sa hodí, keď chceme pracovať s celou vybranou oblasťou, ale napriek tomu skúsme, čo urobí. Obsah bunky je uložený vo vlastnosti Value. Použijeme tečkové notáciu:

Sub vypis()
    MsgBox Selection.Value
End Sub

Pri výbere obsahujúcim viac ako jednu bunku makro nefunguje, pri výbere jednej bunky funguje. Je lepšie teda povedať, že nás zaujíma hodnota Value práve a len aktívnej bunky ActiveCell, a nie celej vybranej oblasti Selection. Holt keď programujeme, musíme hovoriť presne a jednoznačne:

Sub vypis_funkcni()
    MsgBox ActiveCell.Value
End Sub

Zadanie: Text Hello zapíšte do aktuálne vybranej oblasti.

Zaujíma nás vybraná oblasť Selection. Chceme meniť hodnotu vlastnosti Value, preto do nej priraďujeme pomocou =. Pretože chceme priradiť reťazec "Hello", za = je "Hello":

Sub pozdraveni()
    Selection.Value = "Hello"
End Sub

A teraz si vyskúšame pre zmenu nejaké metódy. Všimnite si, že sa jedná o nejakej činnosti.

Zadanie: Zmažte obsah aktuálne vybranej oblasti.

Zaujíma nás vybraná oblasť Selection, a metóda Clear, ktorá maže obsah buniek. Tečkové notáciu už používať vieme:

Sub smaz()
    Selection.Clear
End Sub

Zadanie: Zmažte formát aktuálne vybrané oblasti.

Zaujíma nás opäť vybraná oblasť Selection a metóda ClearFormats:

Sub smazformat()
    Selection.ClearFormats
End Sub

Za povšimnutie stojí, že ako vlastnosť či použitá metóda je vždy uvedená na konci tečkové notácie a naopak na začiatku je objekt (alebo aj niekoľko vo vzájomnej hierarchii).

Keď náhodou niekde v manuáli nájdete objekt s výpočtom jeho vlastností a metód, nebudete mať problém si všetko vyskúšať samostatne, ak chápete predchádzajúce.

A možno, pri programovaní jedného cvičenia, ste postrehli, že po napísaní názvu objektu ActiveCell a bodky sa zobrazila rolovacie ponuka. Práve v nej sú uvedené vlastnosti a metódy, ktoré možno použiť pri objekte ActiveCell. Na mieste vlastností môže vystupovať aj ďalší objekt. V tom prípade, po jeho zvolení alebo ručným dopísanie a zapísanie ďalšie bodky, bude zobrazená opäť rolovacie ponuka so zoznamom dostupných vlastností a metód pre tento objekt. Skúsme si to ešte spoločne.

Zadanie: Zobrazte v dialógovom okne veľkosť písma aktívnej bunky.

Pretože od druhého zadania sa líši v tele len tým, že vybranú oblasť Selection sme nahradili aktívny bunkou ActiveCell, čo do funkčnosti nie je čo vysvetľovať a určite to vyriešite bez problémov sami. Ale vnímajte pri písaní rolovacie ponuku a jej premeny. Aké jednoduché a priateľské. Ak viete anglicky, tak si niektoré vlastnosti a metódy z ponuky môžete tiež skúsiť sami, len tak pre radosť :) A v komentári sa podeliť o tú radosť, a napríklad aj o to, čo sa vám podarilo vyskúmať.

Sub velikost_pisma()
'zobrazi Velikost: a velikost pisma
    MsgBox "Velikost: " & ActiveCell.Font.Size
End Sub

Rolovacie ponuka obsahuje vlastnosti a metódy objektu:

Rolovacie ponuka obsahuje vlastnosti a metódy objektu - Makrá v Microsoft Office

A ako spoznáme v rolovacie ponuke, či sa jedná o vlastnosť, alebo metódu? Jednoducho, pred názvom je vždy ikonka. Zelená je pre metódu (napr. Activate) a tá druhá pre vlastnosť (napr. Address, Font).

Selection je výnimočný tým, že rolovacie ponuku nezobrazuje. Je to logické, pretože môžeme mať vybranú bunku, hárok zošita, graf. Určite si viete predstaviť, že graf má iné vlastnosti a metódy ako list a ako bunka. Rolovacie ponuka tu teda nedáva zmysel.

V budúcej lekcii, Makrá pre prácu s konkrétnou bunkou, riadkom či stĺpcom , sa naučíme pracovať s konkrétnou bunkou, riadkom či stĺpcom.


 

Predchádzajúci článok
Úvod do tvorby makier pre Microsoft Office
Všetky články v sekcii
Makrá v Microsoft Office
Preskočiť článok
(neodporúčame)
Makrá pre prácu s konkrétnou bunkou, riadkom či stĺpcom
Článok pre vás napísala Lenka
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autorka je absolventkou FI MU. Má dlouholetou pedagogickou praxi. Vyučovala maturitní obor IT, zejména Programování a Databázové systémy. Taktéž byla vývojová odborná redaktorka matematiky. Nyní se věnuje nestandardní i standardní výuce na soukromo.
Aktivity