Manažerská informatika 3MA381
Domů  |  3MA112  |  3MA191  |  3MA381  |  3MA382  |  3MA481   
Osnova cvičení Úvodní informace Harmonogram prezentací Hodnocení Podklady ke cvičením Teorie Domácí cvičeníExtra aktivity Odkazy

Jednoduchá makra

Zde jsou ukázky některých jednoduchých maker pro Excel. Některá makra jde přímo nahrát pomocí Záznamu makra, jiné je třeba alespoň částečně poupravit. Jde spíše o ukázku.

Makro, které u předem označených buněk vymaže formáty.

Sub Vymazat_format()
    Selection.ClearFormats
End Sub

Převedení vzorců nebo funkcí v označené oblasti na hodnoty (stejně jako když dáme Úpravy - Vložit jinak... - Hodnoty).

Sub Vzorec_Na_Hodnotu()
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub

Přepínání zapnutí a vypnutí zobrazení mřížky (stejné jako přes nabídku Nástroje - Možnosti - karta Zobrazení a zatržení resp. nezatržení položky Mřížky).

Sub Mrizka_Prepni()
    With ActiveWindow
    .DisplayGridlines = Not .DisplayGridlines
    End With
End Sub

Obdobně lze přepínat například zobrazení hodnot a vzorců (manuálně lze zobrazení přepínat pomocí zatržení políčka hned nad políčkem Mřížka nebo pomocí tlačítka Režim závislosti vzorců Režim závislosti vzorců ).

Sub Vzorce_Prepni()
    With ActiveWindow
    .DisplayFormulas = Not .DisplayFormulas
    End With
End Sub

Následující makro upraví šířku všech sloupců neširšího a výšku všech řádků a podle nejvyššího.

Sub Autosirka_Autovyska()
    Cells.Select
    Cells.EntireColumn.AutoFit
    Cells.EntireRow.AutoFit
End Sub

V dalším makru je použito relativního odkazu typu R1C1. Makro vezme výsledek (hodnotu) z buňky vlevo a vloží ho jako hodnotu do buňky ve které je kurzor.

Sub Vlozit_Hodnotu_Zleva()
    Selection.FormulaR1C1 = "=RC[-1]"
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
End Sub

V následujícím makru je pomocí podmíněného formátu nastaveno střídání sudých a lichých řádků.

Sub Format_Sude_Radky()
    Selection.FormatConditions.Delete
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= "=MOD(ŘÁDEK();2)=0"
    With Selection.FormatConditions(1).Borders(xlTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 2
    End With
    With Selection.FormatConditions(1).Borders(xlBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 16
    End With
    Selection.FormatConditions(1).Interior.ColorIndex = 24
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:= "=MOD(ŘÁDEK();2)=1"
    With Selection.FormatConditions(2).Borders(xlTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 2
    End With
    With Selection.FormatConditions(2).Borders(xlBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 16
    End With
    Selection.FormatConditions(2).Interior.ColorIndex = 19
End Sub

Pokud potřebujeme v celém listu odstranit všechny hypertextové odkazy, pak se bude hodit makro:

Sub Odstranit_Hypertext()
Dim h As Hyperlink
For Each h In ActiveSheet.Hyperlinks
    h.Delete
Next
End Sub

Toto makro se spustí automaticky po otevření sešitu (spustí se automaticky právě proto, že se jmenuje Auto_Open) a zobrazí okno se zprávou.

Sub Auto_Open()
    Dim upozorneni
    upozorneni = MsgBox("Důležité upozornění:" & Chr(10) & Chr(10) & _
        "Text zprávy, kterou chceme při otevření sešitu zobrazit.", _
        vbOKCancel + vbExclamation, "U P O Z O R N Ě N Í")
    If upozorneni = vbCancel Then Application.Quit
End Sub

Vytvoření seznamu všech listů v sešitu a odkazů na ně.

Sub Seznam_Listu()
    Dim cell As Range
    Columns(1).Insert
    For i = 1 To Sheets.Count
        Cells(i, 1) = Sheets(i).Name
    Next i
    For Each cell In Range("A1", Range("A1").End(xlDown))
        cell.Hyperlinks.Add anchor:=cell, Address:="", SubAddress:="'" & cell.Value & "'" & "!A1"
    Next
End Sub
Nahoru

© 2007–2013 Miroslav Lorenc

Převzetí, publikování, kopírování, či jiné užití než pro osobní potřebu je možné pouze s písemným svolením autora.