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:

  1. V sešitu je sloupec známek z matematiky. Vytvořte makro, které projde tento sloupec a všechny pětky zvýrazní červeně.
  2. 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ů.
  3. 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ě").
  4. 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:

  1. 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ě.
  2. 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ů.
  3. 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:

  1. 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.