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 Lorenc menu-stin

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–2010 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.