Makra v Excelu - úlohy
Cykly a podmínky
Příklad 1. Makro projde sloupec číselných hodnot, každou hodnotu přitom zvětší o jedničku.
Sub PlusJedna()
Do Until IsEmpty(ActiveCell)
ActiveCell.Value = ActiveCell.Value + 1
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Příklad 2. Makro projde a podbarví sloupec číselných hodnot, přitom hodnoty větší než 5 barevně odliší.
Sub Podbarveni()
Do Until IsEmpty(ActiveCell)
If ActiveCell.Value > 5 Then
ActiveCell.Interior.Color = RGB(200, 160, 35)
Else
ActiveCell.Interior.Color = RGB(100, 160, 35)
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Příklad 3. Makro projde sloupec jmen osob a zvýrazní ta jména, která začínají písmenem "A".
Sub ZvyrazniA()
Do Until IsEmpty(ActiveCell)
If Left(ActiveCell.Value, 1) = "A" Then
ActiveCell.Font.Bold = True
End If
ActiveCell.Offset(1, 0).Select
Loop
End Sub
Příklad 4. Makro projde sloupec číselných hodnot. Přitom vedle tohoto sloupce vytvoří sloupec druhých mocnin hodnot z prvního sloupce.
Sub Mocniny()
Do Until IsEmpty(ActiveCell)
hodnota = ActiveCell.Value
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = hodnota * hodnota
ActiveCell.Offset(1, -1).Select
Loop
End Sub
Úkoly:
- V sešitu je sloupec známek z matematiky. Vytvořte makro, které projde tento sloupec a všechny pětky zvýrazní červeně.
-
V sešitu jsou dány dva sloupce číselných hodnot (sloupce jsou stejně dlouhé a nachází se vedle sebe). Vytvořte makro, které vedle těchto sloupců vytvoří třetí světle modře podbarvený sloupec. Každá buňka tohoto sloupce bude obsahovat součet hodnot dvou buněk ze zadaných sloupců.
-
V sešitu je sloupec známek z matematiky. Vytvořte makro, které projde tento sloupec a přitom do vedlejšího sloupce zapíše slovní vyjádření každé známky ("výborně", "chvalitebně", ..., "nedostatečně").
-
V sešitu jsou dány dva sloupce, první obsahuje jména zaměstnanců a druhý jejich platy. Vytvořte makro, které projde tyto dva sloupce, najde zaměstnance s největším platem a barevně zvýrazní jeho jméno a plat.
Práce s oblastmi buněk
Nejprve si prostudujte ukázky na stránkách oficiální podpory Microsoft.
Příklad 1. Makro vybere souvislou oblast buněk kolem aktuální buňky a seřadí ji vzestupně podle aktuálního sloupce.
Sub Razeni()
Dim oblast As Range
Dim klic As Range
Set oblast = Range(ActiveCell, ActiveCell).CurrentRegion
Set klic = Range(ActiveCell, ActiveCell)
oblast.Sort Key1:=klic
End Sub
Úkoly:
-
V sešitu jsou dány dva sloupce, první obsahuje jména atletů a druhý jejich výkony ve skoku dalekém. Vytvořte makro, které souvislou oblast tvořenou těmito dvěma sloupci seřadí sestupně podle výkonu ve skoku dalekém a do sloupce před tuto oblast vloží další sloupec, ve kterém bude pořadí atletů. První tři atlety navíc zvýrazní barevně.
-
V sešitu jsou dány dva sloupce, první obsahuje jména žáků (nemusí být seřazena podle abecedy) a druhý jejich známku z matematiky. Vytvořte makro, které souvislou oblast tvořenou těmito dvěma sloupci seřadí podle sloupce jméno vzestupně a do sloupce před tuto oblast vloží další sloupec, ve kterém budou první písmena jmen žáků.
-
V sešitu jsou dána v jednom sloupci jména žáků. Za každým jménem žáka jsou na řádku uvedeny jeho známky z matematiky (v každé buňce jedna známka, ale u každého žáka může být jiný počet známek). Vytvořte makro, které hned za sloupec jmen žáků vloží další sloupce, v němž bude pro každého žáka spočítaný průměr jeho známek.
Práce s funkcemi
Příklad 1. Ukázka použití volání funkce Sum.
Sub PouzitiFunkce()
Range("C1").Value = Application.WorksheetFunction.Sum(Range("A1:A32"))
End Sub
Úkoly:
-
V sešitu jsou dány dva sloupce, první obsahuje jména atletů a druhý jejich výkony ve skoku dalekém. Vytvořte makro, které vypočte a přehledně vypíše základní statistické charakteristiky tohoto souboru - aritmetický průměr, směrodatnou odchylku, maximum a minimum.