Programovanie makier v Exceli hrou

V tomto článku vysvetlím zopár základných prvkov programovania makier v programe Excel pomocou jednoduchej hry.

Písmo: A- | A+
Diskusia  (7)

Hra je jednoduchá: hádanie čísla. Do riadku vložíme číslo. Ak je toto číslo menšie alebo väčšie, ako číslo náhodne vygenerované počítačom, v príslušnej bunke sa vypíše hlásenie. Ak číslo uhádneme, otvorí sa oznamovacie okno (Message box), ktoré nám oznámi, že sme číslo uhádli.

Praktické využitie je pri kontrole zadávaných údajov. Napríklad, ak máme zadať číslo z nejakého rozsahu, program nás upozorní, ak zadáme číslo mimo rozsah.

Musíte povoliť spúštanie makier pod nástrojovou lištou. Ak neviete ako vytvoriť a spustiť makro v programe Excel, postup môžete nájsť tu: Vytvorenie a Spustenie.

SkryťVypnúť reklamu
SkryťVypnúť reklamu
Článok pokračuje pod video reklamou
0 seconds of 0 secondsVolume 0%
Press shift question mark to access a list of keyboard shortcuts
00:00
00:00
00:00
 

Takže postup na vytvorenie spomínanej hry:

a. HHra by mala vyzerať asi takto:


Obrázok blogu


b. V Takže najprv do bunky A1 vložte text "Hádaj číslo".

or Vytvorímeíme (create/vytvoriť) si makro s nazvom „cislo“ a stlačíme „Edit/Editovať“:

Obrázok blogu

c. O Otvorí sa nám prázdne makro :

Obrázok blogu

d. T Teraz prejdeme k samotnému programovanie kódu. Potrebujeme vykonať nasledujúce kroky:

1. Vygenerujeme náhodné číslo v rozsahu 1-10, ktoré zobrazíme v bunke B3. (V konečnej verzii sa samozrejme zobrazovať nebude, ide iba o to, aby sme videli funkciu kódu)

2. Toto náhodné číslo porovnáme s číslom v bunke B1

3. Ak nie je číslo zhodné s náhodným číslom, zobrazíme v bunke A5 text, v ktorom uvedieme zadané číslo, a informáciu, či má byť ďaľšie zadané číslo menšie alebo väčšie

SkryťVypnúť reklamu

4. Ak je číslo rovnaké, program vygeneruje takéto okno:

Obrázok blogu

e. P Po potvrdení okna, sa počet pokusov vynuluje. Tým sa vygeneruje nové číslo (krok 1, a hra začína odznova.

a)D Do hárku si vložíme tlačidlo “Hádam”. Toto tlačidlo nám sputí makro “cislo”. Postup:

Obrázok blogu


Na karte Developer (Vývojár) stlačte tlačidlo Insert (Vložiť) a vyberte Tlačilo (Button). Kurzor myši sa zmení na krížik, a môžete nakresliť vaše tlačidlo. Hneď sa vám zobrazí ponuka na vytvorenienie makra k tlačidlu. Keďže mi už makro vytvorené máme, môžete ju zrušiť (tlačidlom Cancel/Zrušiť)

Ak vám Excel nezobrazuje kartu vývojár, postup ako ju zobraziť nájdete tu, v časti “Spustenie makra”).

SkryťVypnúť reklamu

Kliknite na tlačidlo a pravým tlačidlom myši zobrazíte ponuku:

Obrázok blogu

Pomocou Assign Macro (Priradiť makro) pridáme k tlačidlu naše makro „cislo“ :

Pomocou Edit text (Editovať text) zmeníme názov tlačidla na „Hádam“.

Vrátime sa do editora makra a pridáme kód na generovanie náhodného čísla v bunke A3:

Range("B3")= Int((10 * Rnd) + 1)

Príkazom „Range(B3)=“ vkladáme do bunky hodnotu.

Funkcia Int((10 * Rnd) + 1) generuje celé číslo v rozsahu od 1 do 10. Zloženie funkcie vysvetlím neskôr, zatial nám postačí že generuje číslo. Uložíme makro a vrátime sa do nášho zošita. Klikaním na naše tlačidlo „Hádaj“ by sa malo v bunke B3 zobrazovať náhodné číslo.

SkryťVypnúť reklamu

Teraz priradíme k existujúcemu generovaniu čísla podmienku, aby sa číslo generovalo, iba na začiatku (ak je hodnota bunky B3 rovná nule):

If (Range("B3") = 0) Then Range("B3") = (Int((10 * Rnd) + 1))

Neskôr pridáme kód, ktorý bunku B3 vynuluje ak sme číslo uhádli (a tým sa nám vygeneruje nové číslo).

Range(“B3”) – hodnota bunky B3

Je tu použitá podmienka:

If podmienka Then príkaz – príkaz sa vykoná, ak je splnená podmienka. V našom prípade, ak sa hodnota bunky B3 rovná nule. To znamená, že po uložení makra, sa nové číslo vygeneruje, iba ak vymažeme bunku B3.

Ak generovanie čísiel funguje, prejdeme na porovnávanie.

Do premnných ab si vložíme hodnoty buniek B1 a B3

a = Range("B3")

b = Range("B1")

Premenná je miesto v pamäti, ktoré používame na ukladanie údajov, v tomto prípade čísiel. Mohli by sme používať priamo funkciu Range, takto bude však kód jednoduchší a prehľadnejší.

Teraz si zadefinujeme textový reťazec, ktorý sa nám bude vypisovať do bunky A5. Text uložíme do premennej text:

Text = "Zadali ste " & b & ". " & "Hladané číslo je "

- Te - text v úvodzovkách je typu string (je to textový reťazec)

- znak & slúži na spájanie režazcov a znakov

- ako vydíte, aj bodka s medzerou je reťazec (". ")

- b je hodnota našej premennej, teda zadané číslo v bunke B1

Kód bude vyzerať takto (za znakom ' je komentár, ktorý program ignoruje, je iba pre našu informáciu) :

Obrázok blogu

Teraz ešte potrebujeme generovať okno s oznámením o uhádnutí čísla:

Pre jednoduchasť si zadefinujeme premenne, ktoré budeme potrebovať na generovanie okna. Za nimi vložíme kód na generovanie okna:

Styl = vbOKOnly

Nazov = "Hadaj číslo"

Sprava = Title = "Uhádli ste"

If a = b Then Range("B3") = 0: Range("A5") = "": Response = MsgBox(Sprava, Styl, Nazov, s, g)

Najprv sme vygenerovali premenne Styl, NazovSprava. Tie vložíme do funkcie MsgBox, ktorá vygeneruje správu. Jednotlivé položky znamenajú:

Styl = vbOKOnly – správa bude obsahovať iba potvrdyovacie tlačidlo OK

Nazov = "Hadaj číslo" – Nadpis v záhlavý okna

Sprava = Title = "Uhádli ste" – samotná správa

s, g - prazdne premenne, parametre nepoužijeme, ale musia byť zadané

Ak je splnená podmienka a = b, vykonajú sa príkazy uvedené za podmienkou. Jednotlivé príkazy su oddelené bodkočiarkou.

Prvý príkaz nastaví hodnotu bunky B3 na nulu, a taktiež vloží prazdny text do bunky A5 (Vymaže správu o čísle).

Samotné okno sa potom generuje príkazom:

Response = MsgBox(Sprava, Styl, Nazov, s, g)

Keďže bunka B3 sa po uhádnutí čísla rovná nule, po stlačení tlačidla sa vygeneruje nové číslo, a hra začína odznova. Keď chceme hrať hru naostro, je nezmyselné vidieť generované číslo. Preto nastavíme farbu písma bunky B3 na rovnakú ako farbu pozadia (bielu). Môžeme to urobiť ručne, alebo pomocou makra. Ale formátovanie buniek až nabudúce :)

Tu je výsledné makro:

Obrázok blogu


Hotový dokument si možete stiahnuť tu: http://www.ulozisko.sk/274009/Hadanie_cisla2.xlsm

Domáca úloha: zapisujte do bunky počet pokusov. Každým stlačením sa počet pokusov zvýši o jedna a pri uhádnutí čísla a generovania nového sa vynuluje:

Obrázok blogu
Lubo Kužela

Lubo Kužela

Bloger 
  • Počet článkov:  36
  •  | 
  • Páči sa:  1x

Moja stránka: lenacor.comV prípade záujmu pomôzem s Excelom.. Ak by ste mali zaujem o skolenie, alebo individuálne konzultácie kontaktujte ma prosím na lubomir.kuzela@gmail.com, predmet "Excel".makrá, kontingenčné tabuľky, grafy, reporty, import údajov, databázy, výpočty, prehľadávanie a analýza dát.. Pracujem ako projektový manažér v priemysle. Zaujímam sa o technológie a ekonómiu. Zoznam autorových rubrík:  InformatikaŠkolstvoEkonomikaPostrehyVedaSúkromnéNezaradenéDenník ítečkára :))

Prémioví blogeri

Tupou Ceruzou

Tupou Ceruzou

314 článkov
Adam Valček

Adam Valček

14 článkov
Milota Sidorová

Milota Sidorová

5 článkov
Yevhen Hessen

Yevhen Hessen

35 článkov
Pavol Koprda

Pavol Koprda

10 článkov
Monika Nagyova

Monika Nagyova

299 článkov
reklama
reklama
SkryťZatvoriť reklamu