V jednom z minulých článků jsme si ukázali, jak nahrát vlastní makro. Často se ale dostaneme do situace, kdy makro nelze nahrát – a je třeba jej napsat. To nemusí být úplně strašidelná situace – jazyk pro psaní maker je jeden z nejjednodušších, které můžete potkat.

Příklad

Ukážeme si, jak vytvořit makro, které posune aktivně vybranou buňku o řádek níže. Tedy například z buňky A1 se posunu do buňky A2. 

Návod

V kartě Vývojář kliknu na Visual Basic a jsem v editoru, do kterého zapíšu toto makro:

Sub posunout_dolu()
soucasny = ActiveCell.Row
novy = soucasny + 1
ActiveSheet.Cells(novy, ActiveCell.Column).Select
End Sub

Pojďme si makro vysvětlit:

  • Sub posunout_dolu() Začínám makro a to se jmenuje “posunout_dolu”
  • soucasny = ActiveCell.Row Proměnná “soucasny” se nastaví na hodnotu, kterou má hodnota momentálně aktivní buňky
  • novy = soucasny + 1 Proměnná “novy” se nastaví na hodnotu o jednu větší než je proměnná “soucasny”
  • ActiveSheet.Cells(novy, ActiveCell.Column).Select Označí se buňka, jejíž řádek má číslo stejné jako hodnota proměnné “novy”, sloupec zůstává stejný.
  • End Sub Konec makra
Visual Basic vychází z angličtiny a není těžké s ním pracovat. Je to asi nejsnazší cesta k tomu, abyste začali programovat. Jak makro spustit jsme si už ukázali v minulém příspěvku.
Ještě mě napadá, že samozřejmě takové makro by se dalo napsat i mnohem elegantněji:
ActiveCell.Offset(1, 0).Select

Ale nechám tu obě verze – na té první je ukázaná práce s proměnnými, o což mi šlo.

Kurzy, na kterých se naučíte pracovat s makry:

4 Komentářů

  1. lasak.zd@seznam.cz

    Vážení,
    jsemť já dříve narozený dokonce jsem si dokázal udělat pamětníček, který funguje celý rok. Do sloupce A 1 vložím datum DDD – DD.MM.RRRR a přidám k dalšímu řádku +1 a táhnu až do konce roku. Jenom nevím, jak zadat podmínku, aby se pro SO a NE vybarvilo políčko, abych to nemusel dělat ručně. Děkuji za radu předem.

Komentáře není možné přidávat