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ů
).
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