VBA praktické příklady Excel 2016, 2013, 2010, 2007 e-book Autor: Pavel Lasák Copyright 2021 100+ VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 2 z 51 Pavel Lasák Přes 18 let tvořím nejčtenější web o Excel http://office.lasakovi.com/ (100.000 návštěv měsíčně), který obsahuje přes 1300 článku (vše zdarma a bez registrace). Učím a lektoruji ve firmách, na MUNI (Masarykova univerzita), Czechitas, naucme.se. Mám videokurzy o Excel na SEDUO. Konzultuji, školím programuji pro Excel a VBA. Po čtvrté za sebou mám prestižní ocenění MVP od Microsoftu (12/2020). Videokurzy: Ve spolupráci se SEDUO (seduo.cz) vznikly videokurzy: • Videokurz na Excel: http://bit.ly/ExcelSeduo • Maxi kurz Excel (7 hodin videí) http://bit.ly/MaxiKurzExcel Sociální sítě: Můžete mě sledovat (propojit se) na sociálních sítích: • LinkedIn https://www.linkedin.com/in/pavellasak/ • Twitter https://twitter.com/PavelLasak Prostor pro vaši reklamu :) Máte-li zájem o umístění vaší reklamy v tomto e-booku, můžete se ozvat na email pavel.lasak@gmail.com s nabídkou. VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 3 z 51 Obsah O knize..................................................................................................................................................... 7 VBA kódy pro práci s listy........................................................................................................................ 9 1. Zobrazit všechny listy .................................................................................................................. 9 2. Skrýt všechny listy kromě aktivního ............................................................................................ 9 3. Smazat všechny listy kromě aktivního....................................................................................... 10 4. Smazat prázdné listy.................................................................................................................. 10 5. Zamykání „zaheslování“ listů..................................................................................................... 11 6. Odemykání „odhesluj“ listy....................................................................................................... 11 7. Zamykání „zaheslování“ konkretní list ...................................................................................... 12 8. Odemykání „odhesluj“ konkretní list ........................................................................................ 12 9. Aktivní list jako nový sešit ......................................................................................................... 13 10. Seznam listu v sešitě.............................................................................................................. 13 11. Seřadit listy abecedně ........................................................................................................... 13 12. Vložit požadovaný počet listů................................................................................................ 14 13. Pro vaše poznámky................................................................................................................ 14 VBA kódy pro práci v listu...................................................................................................................... 15 14. Přidej sloupce ........................................................................................................................ 15 15. Přidej řádky............................................................................................................................ 15 16. Barva oušek (karet) listů........................................................................................................ 16 17. Poslední řádek ve sloupci ...................................................................................................... 16 18. Poslední sloupec v řádku....................................................................................................... 16 19. V listu zamknout buňky se vzorci .......................................................................................... 16 20. Zobrazit skryté řádky a sloupce............................................................................................. 17 21. Skrýt označené řádky sloupce ............................................................................................... 17 22. Promazat prázdné řádky........................................................................................................ 17 23. Rychlé a efektivní mazání řádky ............................................................................................ 18 24. Promazat prázdné sloupce.................................................................................................... 18 25. Smazat řádky splňující podmínku.......................................................................................... 18 26. Pro vaše poznámky................................................................................................................ 18 VBA kódy pro Application...................................................................................................................... 20 27. Nastav referenci A1............................................................................................................... 20 28. Nastav referenci R1C1........................................................................................................... 20 29. Přepnutí z jednoho stylu na druhý A1 <> R1C1..................................................................... 20 VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 4 z 51 30. Status Bar .............................................................................................................................. 20 31. Skrývat ouška, posuvníky, pás karet, atd .............................................................................. 21 32. Zobrazovat ouška, posuvníky, pás karet …............................................................................ 22 33. Verze Excel............................................................................................................................. 22 34. Jazyková verze Excel.............................................................................................................. 23 35. Jazyková verze Windows....................................................................................................... 24 36. Označená oblast jako obrázek............................................................................................... 24 37. Pro vaše poznámky................................................................................................................ 24 Jak na VBA Události............................................................................................................................... 25 38. Uvítací vzkaz při spuštění sešitu............................................................................................ 25 39. Vzkaz před zavřením sešitu ................................................................................................... 25 40. Poslední hodnota před změnou ............................................................................................ 25 41. Změna v listu - pokud dojde k přepočtu listu........................................................................ 26 42. Změna v listu - Pokud dojde ke změně výběru..................................................................... 26 43. Změna v listu - Pokud dojde ke změně v buňce .................................................................. 26 44. Informace o buňce kde byla změna ...................................................................................... 26 45. Odstranit z buněk znaky........................................................................................................ 26 46. Přidat stupně k číslům ........................................................................................................... 27 47. Pro vaše poznámky................................................................................................................ 27 Jak na úpravu buňky (oblasti)................................................................................................................ 28 48. Všechna písmena v oblasti velká........................................................................................... 28 49. Všechna písmena v oblasti malá ........................................................................................... 28 50. Mezery na nuly v oblasti........................................................................................................ 28 51. Nuly na mezery v oblasti ....................................................................................................... 28 52. Poslední řádek a sloupec na listu .......................................................................................... 16 53. Počet vyplněných buněk........................................................................................................ 29 54. Odstranit zalomení (tvrdý enter) v buňkách ......................................................................... 29 55. Z desetinných čísel vytvořit celá............................................................................................ 29 56. Smazat obsah v buňkách....................................................................................................... 29 57. Odstranit sloučení buněk ...................................................................................................... 30 58. Odstranit apostrof................................................................................................................. 30 59. Hypertextový odkaz do buňky............................................................................................... 30 60. K číslům přičíst požadovanou hodnotu ................................................................................. 30 61. Prázdné nebo s mezerou....................................................................................................... 36 VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 5 z 51 62. Vzorce na hodnoty ................................................................................................................ 31 63. Formát poznámek.................................................................................................................. 31 64. Uprav tvar poznámek ............................................................................................................ 32 65. Obsahuje buňka poznámku................................................................................................... 31 66. Výpis hodnot z oblasti ........................................................................................................... 32 67. Pro vaše poznámky................................................................................................................ 32 Označovat buňky oblasti ....................................................................................................................... 33 68. Označ minimální hodnoty ..................................................................................................... 33 69. Označ maximální hodnoty..................................................................................................... 33 70. Označit buňky s chybou a jejich počet .................................................................................. 33 71. Označ buňky se vzorci ........................................................................................................... 34 72. Označ specifickou hodnotu (a sečti počet)............................................................................ 34 73. Označit pojmenované rozsahy .............................................................................................. 35 74. Označit záporné hodnoty ...................................................................................................... 35 75. Označit buňky s poznámkou.................................................................................................. 35 76. Unikáty využitím podmíněného formátování ....................................................................... 36 77. Pro vaše poznámky................................................................................................................ 36 Ukládaní................................................................................................................................................. 37 78. Uložit list jako pdf-ko............................................................................................................. 37 79. Uložit všechny list jako pdf-ko............................................................................................... 37 80. Uložit kopii sešitu .................................................................................................................. 37 81. Zavřít aktuální sešit................................................................................................................ 37 82. Listy jako samostatné soubory.............................................................................................. 38 83. Vypsat soubory v adresáři –(složce)...................................................................................... 38 84. Pro vaše poznámky................................................................................................................ 38 Jak na VBA pro Tisk................................................................................................................................ 39 85. Tisk vybrané oblasti............................................................................................................... 39 86. Náhled vybrané oblasti.......................................................................................................... 39 87. Náhled celého listu aktivního................................................................................................ 39 88. Zrušit konce stránek v listech................................................................................................ 39 89. _Nastavení záhlaví a zápatí kompletní.................................................................................. 39 90. Vložit vlastní text do záhlaví.................................................................................................. 40 91. Pro vaše poznámky................................................................................................................ 41 Design listů ............................................................................................................................................ 42 VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 6 z 51 92. Min šířka sloupce................................................................................................................... 42 93. Min výška řádku..................................................................................................................... 42 94. Pro vaše poznámky................................................................................................................ 43 Jak na hrátky s VBA – co se jinam nevešlo ............................................................................................ 44 95. Abeceda malá........................................................................................................................ 44 96. Abeceda velká písmena......................................................................................................... 44 97. 50 odstínu šedi – využití cyklu............................................................................................... 44 98. Arabské na římské ................................................................................................................. 44 99. Hody kostkou – výpis možností co mohou nastat................................................................. 45 100. Časovač.................................................................................................................................. 45 101. Otevřít kalkulátor (kalkulačku) .............................................................................................. 46 102. Pro vaše poznámky................................................................................................................ 46 Speciální kódy – převody....................................................................................................................... 47 103. Hodnota RGB z hodnoty HEX pro barvu................................................................................ 47 104. Hodnota HEX z hodnoty RGB................................................................................................. 47 105. RGB z čísla barvy.................................................................................................................... 47 106. HEX z čísla barvy .................................................................................................................... 47 107. Číslo barvy z HEX.................................................................................................................... 48 108. Číslo barvy z RGB hodnoty..................................................................................................... 48 109. Pro vaše poznámky................................................................................................................ 48 Jak na kontingenčky .............................................................................................................................. 49 110. Aktualizace kontingenčních tabulek...................................................................................... 49 111. Pro vaše poznámky................................................................................................................ 49 Závěrem................................................................................................................................................. 50 VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 7 z 51 O knize Jak na VBA kódy. Praktické ukázky kódu. Předpokládám, že víte jak kód do VBA v Excel vložit. Testováno na Excel 2013, 2016 a 365 pod Windows, Pro koho je kniha určena Kniha je určena pro mírně pokročilí uživatele Microsoft Excel, kteří mají zájem získat více z možností, které jim kontingenční tabulky a grafy nabízejí. Ikony a syntaxe V knize budou použity následující ikonky  Poznámka: k právě vysvětlovanému textu.  Tip: k právě vysvětlovanému textu.  Web: odkaz na webové stránky, kde je uvedeno více informací k právě vysvětlovanému textu.  Pozor: Na co si dat pozor.  Novinka: Co je nového. Syntaxe použitá v knize V knize jsou pro přehlednost použity specificky označené texty, abych graficky odlišil různé informace. Práce s menu Domů –> Odstavec –> Zarovnat text vlevo Zadávání klávesových zkratek a stisk kláves Enter, Shift, Ctrl+S Kód VBA VBA kódy jsou psány následujícím písmem: VBA kódy =SUMA(B2:B50) =SUMA(B2:B50) VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 8 z 51 Funkce, názvy souborů a názvy oblastí C:\Dokument\soubor.xls Kontakt na autora Budu velice rád za jakékoliv názory na tuto knihu. Kontaktovat mě můžete emailem pavel.lasak@gmail.com , nebo přispěním do komentářů na stránkách.  Neoficiální web o Microsoft Office: http://office.lasakovi.com  Pozor: Kontakt neslouží jako technická podpora! Takového dotazy nejsem z kapacitních důvodu schopen zodpovídat. Doporučuji raději otázku položit v nějakém on-line fóru. VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 9 z 51 VBA kódy pro práci s listy V této sekci se podíváme na kódy pro práci s listy.  Web: https://office.lasakovi.com/excel/vba-listy-sheet/jak-na-listy-sheet-VBA-Excel/ 1. Zobrazit všechny listy Někdy se hodí, pokud nemáte Insider verzi, kde si můžete pro zobrazení vybrat více listů: ' Zobrazit všechny listy Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets ws.Visible = xlSheetVisible Next ws  Web: https://office.lasakovi.com/excel/vba-listy-sheet/Zobrazovat-skryvat-listy-VBA-Excel/ 2. Skrýt všechny listy kromě aktivního Neboli minimálně jeden list musí být zobrazen, proto necháme ten aktivní. ' Zobrazit všechny listy, kromě aktivního Dim Ws As Worksheet For Each Ws In ThisWorkbook.Worksheets ' Kontroluje zda jde o akticní list If Ws.Name <> ThisWorkbook.ActiveSheet.Name Then Ws.Visible = xlSheetHidden '' pro supeerskrytý list '' Ws.Visible = xlSheetVeryHidden '' --------------------------------- End If Next Ws  Poznámka: Hodí se například pro sešity s poznámkami, které nechcete zobrazovat. Můžeme využít i superskytý (Verihidden) VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 10 z 51  Web: https://office.lasakovi.com/excel/vba-listy-sheet/Zobrazovat-skryvat-listy-VBA-Excel/ 3. Smazat všechny listy kromě aktivního Pozor, tato operace je nevratná, po smazání všech listů nemůžete dát krok zpět! ' Smazat všechny listy kromě aktivního ' Pozor všechny listy smaže, nejde krok zpět! Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.name <> ThisWorkbook.ActiveSheet.name Then Application.DisplayAlerts = False ws.Delete Application.DisplayAlerts = True End If Next ws  Pozor nevratné operace! Po spuštění kódu se listy odstraní.  Web: https://office.lasakovi.com/excel/vba-listy-sheet/vkladat-mazat-listy-VBA-Excel/ 4. Smazat prázdné listy Smazat všechny listy možná až tak často nevyužijete, ale smazat prázdné, například vytvořené při různých pokusech se může hodit: ' Smazat prázdné listy Dim Ws As Worksheet On Error Resume Next Application.ScreenUpdating = False Application.DisplayAlerts = False For Each Ws In Application.Worksheets ' Zjistíme zda je list prázdný a pak smažeme If Application.WorksheetFunction.CountA(Ws.UsedRange) = 0 Then Ws.Delete End If Next Application.ScreenUpdating = True Application.DisplayAlerts = True VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 11 z 51  Web: https://office.lasakovi.com/excel/vba-listy-sheet/vkladat-mazat-listy-VBA-Excel/ 5. Zamykání „zaheslování“ listů Dialogové okno (InputBox) se zeptá na heslo. ' Všechny listy pod heslem Dim ws As Worksheet Dim ZadeneHeslo As String ZadeneHeslo = InputBox("Enter a Password.", "Heslo", vbOKCancel) For Each ws In ActiveWorkbook.Worksheets ws.Protect Password:=ZadeneHeslo Next ws  Web: https://office.lasakovi.com/excel/vba-listy-sheet/Zamykani-odemykani-listu-Excel-VBA/ 6. Odemykání „odhesluj“ listy Odhesluje sešity – za předpokladu, že všechny mají stejné heslo, ošetřeno, pokud by sešit měl jiné nebo neměl ' Všechny listy odhesluj On Error Resume Next ' Všechny listy odhesluj Dim ws As Worksheet Dim ZadeneHeslo As String ZadeneHeslo = InputBox("Enter a Password.", "Heslo", vbOKCancel) Application.ScreenUpdating = False For Each ws In ActiveWorkbook.Worksheets ws.Unprotect Password:=ZadeneHeslo Next ws Application.ScreenUpdating = True ' Kontrola špatné heslo If Err.Number <> 0 Then MsgBox "Nesprávné heslo!" Exit Sub End If VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 12 z 51 ' Reset Chybové hlášky On Error GoTo 0  Web: https://office.lasakovi.com/excel/vba-listy-sheet/Zamykani-odemykani-listu-Excel-VBA/ 7. Zamykání „zaheslování“ konkretní list Pokud chceme zaheslovat jen aktivní list ' Konkretní list heslo Dim ZadeneHeslo As String ZadeneHeslo = InputBox("Enter a Password.", "Heslo", vbOKCancel) ' Pro aktivní list ActiveSheet.Protect Password:=ZadeneHeslo ' V případě potřeby konkretní list ''Worksheets("List").Protect Password:=ZadeneHeslo 8. Odemykání „odhesluj“ konkretní list Odheslovat aktivní list, s kontrolou na chybné heslo ' Konkretní list odhesluj On Error Resume Next ' Konkretní list odhesluj Dim ZadeneHeslo As String ZadeneHeslo = InputBox("Enter a Password.", "Heslo", vbOKCancel) ' Odhesluj aktivtní list ActiveSheet.Unprotect Password:=ZadeneHeslo '' Odhesluj vybraný list ''Worksheets("List").UnProtect Password:=ZadeneHeslo ' Kontrola špatné heslo If Err.Number <> 0 Then MsgBox "Nesprávné heslo!" Exit Sub End If ' Reset Chybové hlášky On Error GoTo 0 VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 13 z 51 9. Aktivní list jako nový sešit Pokud potřebuji aktivní list přenést do nového sešitu ' Aktivní list jako nový sešit ThisWorkbook.ActiveSheet.Copy _ Before:=Workbooks.Add.Worksheets(1)  Tip: Cyklus, který vytvoří nové sešity z jednotlivých listů… 10. Seznam listu v sešitě Listy se vypisují do dialogového okna. ' Všechny listy v sešitě (i skryté) For i = 1 To Sheets.Count MsgBOx (Sheets(i).Name) 'Tip do listu, Debug.Print Next i  Tip: k právě vysvětlovanému textu. 11. Seřadit listy abecedně ' Seřadit listy Dim i As Integer Dim j As Integer Dim Odpoved As VbMsgBoxResult Odpoved = MsgBox("Setřidit vzestupně ANO, sestupně Ne", vbYesNo, "Třídit") For i = 1 To Sheets.Count For j = 1 To Sheets.Count - 1 If Odpoved = vbYes Then If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then Sheets(j).Move After:=Sheets(j + 1) End If ElseIf Odpoved = vbNo Then If UCase$(Sheets(j).Name) < UCase$(Sheets(j + 1).Name) Then Sheets(j).Move After:=Sheets(j + 1) End If End If Next j VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 14 z 51 Next i 12. Vložit požadovaný počet listů ' Vložit požadovaný počet listů Dim i As Integer i = InputBox("Počet listui vložit.", "Vložit") Sheets.Add After:=ActiveSheet, Count:=i ' Vloží za aktuální list ' Lze doplnit o názvy listu jinak se nazývají automaticky 13. Uložit list jako pdf-ko ' Listy uložit jako pdf-ka ThisWorkbook.ActiveSheet.ExportAsFixedFormat xlTypePDF, _ ThisWorkbook.Path & "/zaloha.pdf"  Poznámka: Viz kapitola ukládání. 14. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 15 z 51 VBA kódy pro práci v listu 15. Přidej sloupce Dotaz dialogovým oknem kolik sloupců chci doleva přidat od aktivní buňky. Dim i As Integer Dim j As Integer ActiveCell.EntireColumn.Select On Error GoTo Last i = InputBox("Kolik sloupců", "Vlož sloupce") For j = 1 To i Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromRightorAbove Next j Last: Exit Sub  Web: https://office.lasakovi.com/excel/vba-listy-bunky/List-radky-sloupce-VBA-Excel/ 16. Přidej řádky 'Přidání řádku Dim i As Integer Dim j As Integer ActiveCell.EntireRow.Select On Error GoTo Last i = InputBox("Kolik řádků", "Vlož řádky") For j = 1 To i Selection.Insert Shift:=xlToDown, CopyOrigin:=xlFormatFromRightorAbove Next j Last: Exit Sub  Web: https://office.lasakovi.com/excel/vba-listy-bunky/List-radky-sloupce-VBA-Excel/  Poznámka: Předpoklad že těch řádku nebude hodně - proto Integer. VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 16 z 51 17. Barva oušek (karet) listů '' Přebarvit ouška listu Dim i as Integer For i = 1 To Sheets.Count Sheets(i).Tab.Color = RGB(255,255,0) Next i 18. Poslední řádek ve sloupci PosledniPlnyRadek = Cells(Rows.Count, "A").End(xlUp).Row ' Ve sloupci A , lze i jako číslo 1 MsgBox "Poslední obsazený řádek má číslo: " & PosledniPlnyRadek  Web: https://office.lasakovi.com/excel/vba-listy-bunky/radky-sloupce-excel-vba-kody/ 19. Poslední sloupec v řádku PosledniPlnySloupec = Cells(1, Columns.Count).End(xlToLeft).Column ' Poslední sloupec v řádku 1 MsgBox "Poslední obsazený sloupec má číslo: " & PosledniPlnySloupec  Web: https://office.lasakovi.com/excel/vba-listy-bunky/radky-sloupce-excel-vba-kody/ 20. Poslední řádek a sloupec na listu Dim PosledniSloupec As Integer Dim PosledniRadek As Long If WorksheetFunction.CountA(Cells) > 0 Then PosledniRadek = Cells.Find(What:="*", After:=[A1], _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row PosledniSloupec = Cells.Find(What:="*", After:=[A1], _ SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column MsgBox ("Poslední obsazena buňka řádek: " & _ PosledniRadek & " sloupec: " & PosledniSloupec) Else MsgBox ("Prázdný list") End If 21. V listu zamknout buňky se vzorci VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 17 z 51 ' Zamknout buňky 0se vzorečkem v listě With ActiveSheet .Unprotect .Cells.Locked = False .Cells.SpecialCells(xlCellTypeFormulas).Locked = True '' Zamknout bez hesla .Protect End With 22. Zobrazit skryté řádky a sloupce ' Zobrazit skryté řádky sloupce Columns.EntireColumn.Hidden = False Rows.EntireRow.Hidden = False  Web: https://office.lasakovi.com/excel/vba-listy-bunky/radky-sloupce-excel-vba-kody/ 23. Skrýt označené řádky sloupce '' Sloupce řádky skrývat - označené ' Skrýt označené sloupce Selection.EntireColumn.Hidden = True ' Skrýt označené řádky Selection.EntireRow.Hidden = True  Web: https://office.lasakovi.com/excel/vba-listy-bunky/radky-sloupce-excel-vba-kody/ 24. Promazat prázdné řádky ' Promazat řádky ' Ve sloupci A , lze zadai i číslem řádku PosledniPlnyRadek = Cells(Rows.Count, "A").End(xlUp).Row ' Pozor nutno odmazávat od konce (posledního řádku For i = PosledniPlnyRadek To 1 Step -1 If Cells(i, "A").Value = "" Then ' MsgBox (i) ' Info o mazaném řádku Rows(i).Delete ' Možno vypisovat do imediate Debug.Print i End If Next i VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 18 z 51 25. Rychlé a efektivní mazání řádky Pokud mažete stovky řádku je vhodné mazat chytřeji. Vyfiltruji co nemazat, smažu co zůstalo najednou a setřídím ať nemám prázdné řádky: ' mít k dispozici list Excel ' nutno využít filtru Sheets("Excel").Range("A1:F1").AutoFilter field:=6, Criteria1:="=" & CoNemazat ' MsgBox (CoNEmazat) Sheets("Excel").Range("A2:F15000").SpecialCells(xlCellTypeVisible).EntireRow.Delete Sheets("Excel").Range("A1:F1").AutoFilter 26. Promazat prázdné sloupce ' Promazat řádky, vhodnější PosledniPlnySloupec = Cells(1, Columns.Count).End(xlToLeft).Column ' V řádku 1 For sloupec = PosledniPlnySloupec To 1 Step -1 If Cells(1, sloupec).Value = "" Then MsgBox sloupec Rows(sloupec).Delete End If Next sloupec 27. Smazat řádky splňující podmínku V oblasti řádků 139 až 147 smazat řádky kde je text „smazat“. '' Smazat řádky splňující podmínku For i = 147 To 139 Step -1 If Cells(i, "A").Value = "smazat" Then '' If StrComp("smazat", Cells(i, "A").Value) = 0 Then ' MsgBox i 'info o mazaném řádku Rows(i).Delete End If Next i  Web: https://office.lasakovi.com/excel/vba-listy-bunky/radky-sloupce-excel-vba-kody/ 28. Formát sloupců ' Nastavení formátu sloupců Columns(1).NumberFormat = "@" Columns(2).NumberFormat = "General" Columns(3).NumberFormat = "0" VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 19 z 51  Tip: Viz kapitola design listů. 29. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 20 z 51 VBA kódy pro Application 30. Nastav referenci A1 Pokud je nastaven styl odkazování R1C1 (čísla sloupců), lze využitím VBa kódu přepnout na odkazování A1. ' Zapnutí stylu odkazování A1 If Application.ReferenceStyle = xlR1C1 Then Application.ReferenceStyle = xlA1 Else Application.ReferenceStyle = xlA1 End If  Tip: Můžete vložit do Workbook_Open() ať se nastaví A1 odkazování při spuštění. 31. Nastav referenci R1C1 Pokud chcete se odkazovat číslem řádku a číslem sloupce ' Zapnutí stylu odkazování R1C1 If Application.ReferenceStyle = xlA1 Then Application.ReferenceStyle = xlR1C1 Else Application.ReferenceStyle = xlR1C1 End If 32. Přepnutí z jednoho stylu na druhý A1 <> R1C1 Toto makro se hodí na klávesovou zkratku, případně na ikonu do nástrojové lišty (pásu karet) ' Přepnutí z jednoho na druhý typ Application.ReferenceStyle = xlA1 + xlR1C1 - Application.ReferenceStyle  Tip: Využijte a doplňte na tlačítko, nebo klávesovou zkratku. 33. Status Bar Pokud zpracování makra trvá dlouho, je vhodné uživatele informovat například procenty ve stavovém řádku: ' Jak na status Bar VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 21 z 51 ' využití pro ukázku v jakém stavu je zpracování makra ' průběžně lze uživatele informovat Dim i As Integer, j As Integer Dim ProcentHotovo As Integer For i = 1 To 10 For j = 1 To 10 ProcentHotovo = ((i - 1) * 10) + j Application.StatusBar = "Tvorba dat z " & _ ProcentHotovo & "% kompletní." Application.Wait Now + TimeValue("00:00:01") 'zpoždění 1 sec Next j Next i ' vrátit na standartní zobrazení Application.StatusBar = False  Web: https://office.lasakovi.com/excel/vba-application/status-bar-vba-excel/ 34. Skrývat ouška, posuvníky, pás karet, atd Potřebujete-li skrýt vše nepotřebné v aplikaci Excel ' Skrývat a upravit aplikaci Excel ' Posuvníky ActiveWindow.DisplayHorizontalScrollBar = False ActiveWindow.DisplayVerticalScrollBar = False ' Mřížka ActiveWindow.DisplayGridlines = False ' řádek vzorců7 Application.DisplayFormulaBar = False VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 22 z 51 ' Ouška listů ActiveWindow.DisplayWorkbookTabs = False ' Písmena a čísla buněk ActiveWindow.DisplayHeadings = False ' Pas karet Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)"  Pozor: Excel pak vypadá úplně jinak 35. Zobrazovat ouška, posuvníky, pás karet … Pokud někdo něco skryje hodí se vše opět zobrazit: ' Zobrazovat a upravit aplikaci Excel ' Posuvníky ActiveWindow.DisplayHorizontalScrollBar = True ActiveWindow.DisplayVerticalScrollBar = True ' Mřížka ActiveWindow.DisplayGridlines = True ' řádek vzorců7 Application.DisplayFormulaBar = True ' Ouška listů ActiveWindow.DisplayWorkbookTabs = True ' Písmena a čísla buněk ActiveWindow.DisplayHeadings = True ' Pas karet Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",True)" 36. Verze Excel Při tvorbě některých maker je vhodné vědět jakou verzi Excel máte VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 23 z 51 ' Verze Excel If Application.Version = "17.0" Then MsgBox "Používáte Excel 2019." ElseIf Application.Version = "16.0" Then MsgBox "Používáte Excel 2016." ElseIf Application.Version = "15.0" Then MsgBox "Používáte Excel 2013." ElseIf Application.Version = "14.0" Then MsgBox "Používáte Excel 2010." ElseIf Application.Version = "12.0" Then MsgBox "Používáte Excel 2007." ElseIf Application.Version = "11.0" Then MsgBox "Používáte Excel 2003." ElseIf Application.Version = "9.0" Then MsgBox "Používáte Excel 2000." ElseIf Application.Version = "8.0" Then MsgBox "Používáte Excel 97." ElseIf Application.Version = "7.0" Then MsgBox "Používáte Excel 95." End If  Tip: Neexistuje verze Excel s kódovým označením 13. že by pověrčivost ?  Web: https://office.lasakovi.com/excel/vba-triky/vba-excel-zjisteni-verze/ 37. Jazyková verze Excel '' Jazyková verze Excel Select Case Application.LanguageSettings.LanguageID(msoLanguageIDUI) Case 1029: MsgBox "CZ" Case 1051: MsgBox "EN" Case 1045: MsgBox "Polsky" Case Else: MsgBox "Nelze rozhodnout." End Select  Web: https://office.lasakovi.com/excel/vba-triky/vba-excel-zjisteni-verze/ VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 24 z 51 38. Jazyková verze Windows ' Jazyková verze Windows Select Case Application.International(xlCountryCode) Case 1: MsgBox "Angličtina - USA – jak jinak ;)" Case 33: MsgBox "Francie" Case 42: MsgBox "Česká Republika" '' někdy se hlásí jako 420 Case 420: MsgBox "Česká Republika" Case 45: MsgBox "Dánsko" Case 48: MsgBox "Polsko" Case Else: MsgBox "Nelze rozhodnout." End Select  Web: https://office.lasakovi.com/excel/vba-triky/vba-excel-zjisteni-verze/ 39. Označená oblast jako obrázek ' Označená oblast jako obrázek Selection.Copy ActiveSheet.Pictures.Paste(Link:=True).Select 40. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 25 z 51 VBA kódy pro „Události“ 41. Uvítací vzkaz při spuštění sešitu ' Umístit do ThosWorkbook Private Sub Workbook_BeforeClose(Cancel As Boolean) MsgBox "Dobrou noc přeje ;) JakNaExcel.cz " End Sub 42. Vzkaz před zavřením sešitu ' Umístit do ThisWorkbook Private Sub Workbook_Open() MsgBox "Vítá vás JakNaExcel.cz " End Sub 43. Poslední hodnota před změnou Například při zapisování co se změnilo na co a případně kým Private Sub Worksheet_Change(ByVal Target As Range) ' Zjistit původní hodnotu ' Funguje jen pro jednu buňku ' jaká je nová hodnota NovaHodnota = Target.Value MsgBox ("Změněná hodnota: " & Target.Value) Application.EnableEvents = False ' o krok zpět Application.Undo ' původní hodnota StaraHodnota = Target.Value ' MsgBox ("Změněná hodnota: " & Target.Value) ' změním na již změněnou Target.Value = NovaHodnota Application.EnableEvents = True MsgBox ("původní: " & StaraHodnota & " změněno na: " & NovaHodnota) End Sub VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 26 z 51  Web: https://office.lasakovi.com/excel/vba-triky/vba-excel-zjisteni-verze/ 44. Změna v listu - pokud dojde k přepočtu listu Private Sub Worksheet_Calculate() MsgBox ("Přepočet") End Sub 45. Změna v listu - Pokud dojde ke změně výběru Private Sub Worksheet_SelectionChange(ByVal Target As Range) MsgBox ("Change") End Sub 46. Změna v listu - Pokud dojde ke změně v buňce Private Sub Worksheet_Change(ByVal Target As Range) MsgBox ("změna") End Sub 47. Informace o buňce kde byla změna Private Sub Worksheet_Change(ByVal Target As Range) ' Informace o změněné buňce MsgBox ("Změněná hodnota: " & Target.Value) MsgBox ("Adresa: " & Target.Address) MsgBox ("Řádek: " & Target.Row) MsgBox ("Sloupec: " & Target.Column) End Sub 48. Odstranit z buněk znaky ' Odstranit z buněk požadovné znaky Dim Rng As Range Dim Nahrad As String Nahrad = InputBox("Co chceš odstranit?", "Hodnoty") For Each Rng In Selection Selection.Replace What:=Nahrad, Replacement:="" Next VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 27 z 51 49. Přidat stupně k číslům ' Doplnit stupně k číslům Dim rng As Range For Each rng In Selection 'rng.Select If rng.Value <> "" And IsNumeric(rng.Value) Then rng.Value = rng.Value & "°" End If Next 50. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 28 z 51 VBA kódy úprava buňky, oblasti 51. Všechna písmena v oblasti velká ' Všechny písmena v oblasti velká Dim rng As Range For Each rng In Selection rng = UCase(rng) Next rng 52. Všechna písmena v oblasti malá ' Všechny písmena v oblasti malá Dim rng As Range For Each rng In Selection rng = LCase(rng) Next rng 53. Mezery na nuly v oblasti ' Prázné a mezery na nulu Dim rng As Range For Each rng In Selection If rng = "" Or rng = " " Then rng.Value = "0" Else '' nic End If Next rng 54. Nuly na mezery v oblasti ' Prázné nuly na nic Dim rng As Range For Each rng In Selection VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 29 z 51 If rng = 0 Then rng.Value = "" '' Nebo mezera, slovo Else '' nic End If Next rng 55. Počet vyplněných buněk ' Počet vyplněných buněk MsgBox (Application.WorksheetFunction.CountA( _ ThisWorkbook.ActiveSheet.UsedRange)) 56. Odstranit zalomení (tvrdý enter) v buňkách ' Odstranit zalomení Dim Rng As Range For Each Rng In Selection rng.WrapText = False ' Případně zalomit text 'rng.WrapText = True Next 57. Z desetinných čísel vytvořit celá Aneb odstranit to co je za desetinou čárkou ' Z čísel odstranit desetiny ' čísla převést na celá pro označenou oblast Dim lnumber As Double Dim lResult As Long Dim rng As Range ' Lze provést i pro celý list, řádek sloupec For Each rng In Selection rng.Value = Int(rng) rng.NumberFormat = "0" Next rng 58. Smazat obsah v buňkách ' Mazat obsah buněk Dim Rng As Range For Each Rng In Selection ' Mazat obsah rng.Clear VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 30 z 51 ' Mazat formáty 'rng.ClearFormats Next 59. Odstranit sloučení buněk Pokud vás štvou sloučené buňky, můžete upravit v oblasti ' Odstranit sloučení buněk Dim Rng As Range ' Odstranit podobně lze i pro celý list For Each Rng In Selection rng.UnMerge Next 60. Odstranit apostrof Potřebujete-li s čísel s apostrofem vytvořit číslo ' Odstranění apostrofů z buněk Selection.Value = Selection.Value  Tip: Neboli, když někdo píše čísla jako text a využívá apostrof 61. Hypertextový odkaz do buňky ' Hypertextový odkaz Set rng = ActiveSheet.ActiveCell rng.Parent.Hyperlinks.Add Anchor:=rng, _ Address:="http://JakNaExcel.cz", _ ScreenTip:="JakNaExcel.cz", _ TextToDisplay:="JakNaExcel.cz" 62. K číslům přičíst požadovanou hodnotu ' Příčíst určené číslo v oblasti Dim rng As Range Dim i As Integer i = InputBox("Zadej kolik přičíst", "Zadání") For Each rng In Selection VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 31 z 51 If WorksheetFunction.IsNumber(rng) And rng <> "" Then rng.Value = rng + i Else ' nic se neprovede End If Next rng 63. Vzorce na hodnoty '' Vzorce zamění za hodnoty '' Nevratná operace!! '' Zálohujte při testech Dim MojeOblast As Range Dim ProchazeneBunky As Range Set MojeOblast = Selection For Each ProchazeneBunky In MojeOblast If ProchazeneBunky.HasFormula Then ProchazeneBunky.Formula = ProchazeneBunky.Value '' Označí buňku ProchazeneBunky.Interior.Color = RGB(255, 255, 0) End If Next ProchazeneBunky 64. Obsahuje buňka poznámku ' Obsahuje buňka komentář If ActiveCell.Comment Is Nothing Then MsgBox "Nebsahuje komentář." Else komentarVBunce = ActiveCell.Comment.Text MsgBox "Obsahuje komentář: " & komentarVBunce End If 65. Formát poznámek Pokud chcete vlastní formát, velikost a barvu písma v komentáři If ActiveCell.Comment Is Nothing Then MsgBox "Označ buňku s poznámkou .." Else With ActiveCell.Comment.Shape.TextFrame.Characters.Font .Name = "Times New Roman" .Size = 15 .Bold = True VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 32 z 51 .ColorIndex = 3 End With End If 66. Uprav tvar poznámek Pokud chcete mít vlastní tvary poznámek: ' uprav tvar poznámek If ActiveCell.Comment Is Nothing Then MsgBox "Označ buňku s poznámkou ;) ..." Else With ActiveCell.Comment.Shape .AutoShapeType = msoShape32pointStar .Line.Visible = msoFalse End With End If 67. Výpis hodnot z oblasti ' Vypis hodnost z oblasti For Each cell In ActiveSheet.Range("B5:C7") Cell_Values = Cell_Values & vbNewLine & cell.Address & " - " _ & cell.Value ' Lze zkusit zde vložit MsgBox nebo Debug.Print Next cell MsgBox Cell_Values 68. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 33 z 51 VBA kódy pro označování buněk, oblasti 69. Označ minimální hodnoty v oblasti ' Označ minimální hodnoty a maximální Dim rng As Range For Each rng In Selection If rng = WorksheetFunction.Min(Selection) Then rng.Interior.Color = RGB(255, 255, 0) End If Next rng  Tip: Lze přidat i počet 70. Označ maximální hodnoty v oblasti ' Označ minimální hodnoty a maximální Dim rng As Range For Each rng In Selection If rng = WorksheetFunction.Max(Selection) Then rng.Interior.Color = RGB(255, 255, 0) End If Next rng 71. Označit buňky s chybou a jejich počet v oblasti '' Buňky s chybovou hodnotou (označit) a sečíst Dim rng As Range Dim i As Integer i = 0 '' Pro vybranou oblast '' For Each rng In Selection For Each rng In ActiveSheet.UsedRange If WorksheetFunction.IsError(rng) Then VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 34 z 51 rng.Interior.Color = RGB(255, 255, 0) '' Nebo přes styly '' rng.Style = "bad" '' počet chyb i = i + 1 End If Next rng MsgBox "Chyb bylo " & i & "." 72. Označ buňky se vzorci '' Označí buňky se vzorci Dim MojeOblast As Range Dim ProchazeneBunky As Range Set MojeOblast = Selection For Each ProchazeneBunky In MojeOblast If ProchazeneBunky.HasFormula Then '' Označí buňku ProchazeneBunky.Interior.Color = RGB(255, 255, 0) End If Next ProchazeneBunky  Tip: Můžete vzorce ještě přepsat na hodnoty… 73. Označ specifickou hodnotu a jejich počet '' Hledej zadanou hodnotu Dim rng As Range Dim i As Integer Dim CoHledat As Variant CoHledat = InputBox("Zadej co chceš označit") i = 0 For Each rng In ActiveSheet.UsedRange If rng = CoHledat Then rng.Color = RGB(255, 255, 0) '' Nebo přes styly VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 35 z 51 '' rng.Style = "Note" '' Zároveň i tyto hodnoty spočteme i = i + 1 End If Next rng MsgBox ("Nalezeno " & i & " " & c & " v listu hodnot: " & CoHledat) 74. Označit pojmenované rozsahy Pokud nevíte kde se v listu nacházejí pojmenované rozsahy, může se hodit následující trik: '' Označit pojmenovné rozsahy Dim RangeName As Name Dim Oznacit As Range On Error Resume Next For Each RangeName In ActiveWorkbook.Names Set Oznacit = RangeName.RefersToRange Oznacit.Interior.Color = RGB(255, 255, 0) Next RangeName 75. Označit záporné hodnoty ' Označit záporné hodnoty v označené oblasti Dim Rng As Range ' Lze i pro tento list For Each Rng In Selection If WorksheetFunction.IsNumber(Rng) Then If Rng.Value < 0 Then Rng.Font.Color = -16776961 Rng.Interior.Color = RGB(255, 255, 0) End If End If Next 76. Označit buňky s poznámkou ' Označit buňky s poznámkou Selection.SpecialCells(xlCellTypeComments).Select Selection.Interior.Color = RGB(255, 255, 0) ' Případně přes styly 'Selection.Style = "Note" VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 36 z 51 77. Označit buňky prázdné nebo s mezerou ' Prázdné nebo s mezerou Dim rng As Range ' Pro celý použivaný rozdah ' For Each rng In ActiveSheet.UsedRange For Each rng In Selection If rng.Value = "" Then '' If rng.Value = " " Then rng.Interior.Color = RGB(255, 255, 0) End If Next rng 78. Unikáty využitím podmíněného formátování ' Unikátní hodnoty v označené oblasti ' Využitím podmíněného formátování Dim rng As Range '' V označené oblasti odstraň podmíněná formátování Set rng = Selection rng.FormatConditions.Delete Dim unikaty As UniqueValues Set unikaty = rng.FormatConditions.AddUniqueValues '' Co se bude označovat unikaty.DupeUnique = xlUnique '' Jakou barvou se bude označovat unikaty.Interior.Color = vbGreen ' Nebo přes RGB 79. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 37 z 51 VBA kódy pro ukládaní 80. Uložit list jako pdf-ko ' Listy uložit jako pdf-ka ThisWorkbook.ActiveSheet.ExportAsFixedFormat xlTypePDF, _ ThisWorkbook.Path & "/zaloha.pdf" 81. Uložit všechny list jako pdf-ko ' Listy uložit jako pdf-ka Dim ws As Worksheet Application.ScreenUpdating = False Application.DisplayAlerts = False For Each ws In Worksheets ' kontrola zda list není prázdný If Application.WorksheetFunction.CountA(ws.UsedRange) <> 0 Then ws.ExportAsFixedFormat xlTypePDF, ThisWorkbook.Path & "\" & _ ws.Name & ".pdf" ' ws.ExportAsFixedFormat xlTypePDF, "Složka ručně"& ws.Name & ".pdf" End If Next ws Application.ScreenUpdating = True Application.DisplayAlerts = True 82. Uložit kopii sešitu ' Uložit kopii sešitu s časem a datumem ThisWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & _ & Format(Date, "mm-dd-yy") & " " & _ ThisWorkbook.name 83. Zavřít aktuální sešit ' Zavřít sešit a uložit ThisWorkbook.Close SaveChanges:=True VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 38 z 51 84. Listy jako samostatné soubory ' deklarace proměnné Dim sh As Worksheet For Each sh In Worksheets sh.Copy ' at se neptá na potvrzení uložení Application.DisplayAlerts = False ' jména jednotlivých sešitu podle názvu listů ' Tip: Lze mít podmínku, pokud se jméno listu začíná: xy* ActiveWorkbook.SaveAs Filename:="D:\smaz\" & sh.Name & ".xlsx" Application.DisplayAlerts = True 'budu-li chtit ulozit i tento sešit ActiveWorkbook.Close Savechanges:=False Next 85. Vypsat soubory v adresáři –(složce) ' Vypsat soubory ChDrive "C:\" ' disk který chci adresar = "C:\" ' adresář ChDir adresar SouboryKtere = Dir("*.*") i = 1 Do While SouboryKtere <> "" ' Do slouce 6, řádek 10 viz práce s buňkami Cells(i + 10, 6).Value = SouboryKtere SouboryKtere = Dir i = i + 1 Loop 86. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 39 z 51 VBA kódy pro Tisk 87. Tisk vybrané oblasti '' Tisk vybrané oblasti Selection.PrintOut Copies:=1, Collate:=True 88. Náhled vybrané oblasti ''Náhled vybrané oblasti Selection.PrintOut Copies:=1, Collate:=True 89. Náhled celého listu aktivního ''Náhled listu aktivního ActiveSheet.PrintPreview 90. Zrušit konce stránek v listech ' Zrušit konce stránke pro tisk '' Zrušit konce stránek pro tisk '' Ve všech listech Dim wks As Worksheet Application.ScreenUpdating = False For Each Sht In ThisWorkbook.Worksheets Sht.DisplayPageBreaks = False Next Sht Application.ScreenUpdating = True 91. _Nastavení záhlaví a zápatí kompletní With ActiveSheet.PageSetup .LeftHeader = "Zahlaví liché" .CenterHeader = "" .RightHeader = "" .LeftFooter = "" .CenterFooter = "" .RightFooter = "" .LeftMargin = Application.InchesToPoints(0.708661417322835) .RightMargin = Application.InchesToPoints(0.708661417322835) .TopMargin = Application.InchesToPoints(0.78740157480315) VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 40 z 51 .BottomMargin = Application.InchesToPoints(0.78740157480315) .HeaderMargin = Application.InchesToPoints(0.31496062992126) .FooterMargin = Application.InchesToPoints(0.31496062992126) .PrintHeadings = False .PrintGridlines = False .PrintComments = xlPrintNoComments .CenterHorizontally = False .CenterVertically = False .Orientation = xlPortrait .Draft = False .PaperSize = xlPaperA4 .FirstPageNumber = xlAutomatic .Order = xlDownThenOver .BlackAndWhite = False .Zoom = 100 .PrintErrors = xlPrintErrorsDisplayed .OddAndEvenPagesHeaderFooter = True .DifferentFirstPageHeaderFooter = True .ScaleWithDocHeaderFooter = True .AlignMarginsHeaderFooter = True .EvenPage.LeftHeader.Text = "Záhlaví sudé" .EvenPage.CenterHeader.Text = "" .EvenPage.RightHeader.Text = "" .EvenPage.LeftFooter.Text = "" .EvenPage.CenterFooter.Text = "" .EvenPage.RightFooter.Text = "" .FirstPage.LeftHeader.Text = "Záhlaví první stránka" .FirstPage.CenterHeader.Text = "" .FirstPage.RightHeader.Text = "" .FirstPage.LeftFooter.Text = "" .FirstPage.CenterFooter.Text = "" .FirstPage.RightFooter.Text = "" End With 92. Vložit vlastní text do záhlaví '' Nastavení vlastního textu do záhlaví mujText = InputBox("Zadej nadpis v záhlaví", "Zahlaví") ' Lze nastavit i jiné části než horní záhlaví With ActiveSheet.PageSetup .LeftHeader = "" .CenterHeader = mujText .RightHeader = "" .LeftFooter = "" VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 41 z 51 .CenterFooter = "" .RightFooter = "" End With 93. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 42 z 51 VBA kódy pro design listů 94. Min šířka sloupce ' řádky min výška Cells.Select Cells.EntireRow.AutoFit 95. Min výška řádku ' sloupce "min" šířka Cells.Select Cells.EntireColumn.AutoFit 96. Konkrétní šířka sloupce ' sloupce šířka Cells.Select Cells.EntireColumn.ColumnWidth = 25  Tip: Případně AutoFit nebo UseStandard – Width, Height . 97. Konkrétní výška řádku ' Výška řádku Cells.Select Cells.EntireRow.RowHeight = 25  Tip: Případně AutoFit nebo UseStandard – Width, Height . 98. Standartní výšky a šířka řádku, sloupce ' sloupce šířka a výška standart Cells.Select Cells.Columns.UseStandardWidth = True Cells.Rows.UseStandardHeight = True VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 43 z 51 99. Nastavení šířek sloupců a výšek řádků, smazat formáty ' smazat a úpravy šířky a výšky With Worksheets("List1") .Cells.ClearFormats .Cells.ClearContents .Cells.RowHeight = 15 .Cells.ColumnWidth = 8.43 End With 100. Nastavení formátu sloupců ' Nastavení formátu sloupců Columns(1).NumberFormat = "@" Columns(2).NumberFormat = "General" Columns(3).NumberFormat = "0"  Tip: Viz kapitola kódy pro práci v listu. 101. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 44 z 51 VBA kódy – co se jinam nevešlo 102. Abeceda malá ' Abeceda do sloupce malá písmena Dim i As Integer For i = 97 To 122 ActiveCell.Value = Chr(i) ActiveCell.Offset(1, 0).Select Next i 103. Abeceda velká písmena ' Abeceda do sloupce Dim i As Integer For i = 65 To 90 ActiveCell.Value = Chr(i) ActiveCell.Offset(1, 0).Select Next i 104. 50 odstínu šedi – využití cyklu '' 50 Odstinů šedi do buněk Dim i As Integer For i = 1 To 50 Cells(i, 1).Interior.Color = RGB(i * 5, i * 5, i * 5) Next i 105. Arabské na římské ' Arabské na římské Dim rng As Range For Each rng In Selection If IsNumeric(rng) = True Then ' MsgBox (WorksheetFunction.Roman(rng)) rng.Value = WorksheetFunction.Roman(rng) VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 45 z 51 End If Next rng 106. Hody kostkou – výpis možností co mohou nastat Dim a As Integer Dim b As Integer Dim c As Integer Dim i As Long i = 2 For a = 1 To 6 For b = 1 To 6 For c = 1 To 6 Cells(i, 1).Value = a Cells(i, 2).Value = b Cells(i, 3).Value = c Cells(i, 7).Value = a + b + c i = i + 1 Next c Next b Next a 107. Časovač Dim PauseTime, Start, Finish, TotalTime Dim sek As Integer Dim min As Integer Dim AktualniCas As String Dim Zbyva_cas As String For min = 0 To 0 ' Set minuty 19 For sek = 0 To 10 ' Set sekundy 59 (pokud je více než 1 minuta Start = Timer ' Set Začátek času číslo. PauseTime = 1 AktualniCas = min * 100 + sek Zbyva_cas = 10 - (AktualniCas) VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 46 z 51 ' Zapis do buněk [C4].Value = (Format(AktualniCas, "#00:00")) [C5].Value = (Format(Zbyva_cas, "#00:00")) 'casova smyčka Do While Timer < Start + PauseTime Debug.Print Timer Loop Finish = Timer ' Set konečný čas. TotalTime = Finish - Start ' Calculate celkový time. Next sek Next min MsgBox ("Konec") 108. Otevřít kalkulátor (kalkulačku) ' Otevřít kalkulátor Application.ActivateMicrosoftApp Index:=0 109. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 47 z 51 VBA kódy - speciální převody 110. Hodnota RGB z hodnoty HEX pro barvu hexColor = ActiveCell.Value hexColor = Replace(hexColor, "#", "") ' MsgBox hexColor GetBFromHex = Val("&H" & Mid(hexColor, 5, 2)) GetGFromHex = Val("&H" & Mid(hexColor, 3, 2)) GetRFromHex = Val("&H" & Mid(hexColor, 1, 2)) MsgBox ("R:" & GetRFromHex & " G:" & GetGFromHex & " B:" & GetBFromHex)  Web: https://office.lasakovi.com/excel/vba-listy-bunky/barvy-HEX-RGB-cislo-Excel-VBA/ 111. Hodnota HEX z hodnoty RGB Ruda = Cells(64, 3).Value Zelena = Cells(65, 3).Value Modra = Cells(66, 3).Value ' Čísla složek RGB se načítají z buněk GetHexFromRGB = "#" & Right$("00" & Hex(Ruda), 2) & _ Right$("00" & Hex(Zelena), 2) & Right$("00" & Hex(Modra), 2) MsgBox (GetHexFromRGB) 112. RGB z čísla barvy barva = ActiveCell.Value ' MsgBox (Barva) CisloR = barva And 255 CisloG = barva \ 256 And 255 CisloB = barva \ 65536 And 255 MsgBox ("R: " & CisloR & " ,G: " & CisloG & " ,B: " & CisloB) 113. HEX z čísla barvy barva = ActiveCell.Value VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 48 z 51 ' MsgBox (Barva) CisloR = barva And 255 CisloG = barva \ 256 And 255 CisloB = barva \ 65536 And 255 GetHexFromNumber = "#" & Right$("00" & Hex(CisloR ), 2) & _ Right$("00" & Hex(CisloG ), 2) & Right$("00" & Hex(CisloB), 2) MsgBox (GetHexFromNumber) 114. Číslo barvy z HEX hexColor = ActiveCell.Value hexColor = Replace(hexColor, "#", "") ' MsgBox hexColor GetRFromHex = Val("&H" & Mid(hexColor, 1, 2)) GetGFromHex = Val("&H" & Mid(hexColor, 3, 2)) GetBFromHex = Val("&H" & Mid(hexColor, 5, 2)) Cislo = GetRFromHex + (GetGFromHex *256) + (GetBFromHex *256*256) MsgBOx (Cislo) 115. Číslo barvy z RGB hodnoty Jednoduchý případ, kdy z RGB potřebuji čílo, stačí jen pronásobit ;) Ruda = Cells(127, 3).Value Zelena = Cells(128, 3).Value Modra = Cells(129, 3).Value Cislo = Ruda + (Zelena *256) + (Modra *256*256) MsgBOx (Cislo) 116. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 49 z 51 VBA kódy pro „kontingenčky“ 117. Aktualizace kontingenčních tabulek Dim pt As PivotTable For Each pt In ActiveWorkbook.PivotTables pt.RefreshTable Next pt 118. Pro vaše poznámky VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 50 z 51 Závěrem Děkuji za stáhnutí tohoto e-booku v jeho první verzi.  Něco právních a reklamních záležitostí ;) Odpovědnost Tento dokument je určen pouze pro informační účely. Autor se zříká jakékoliv odpovědnosti za vzniklé situace týkající se užití tohoto dokumentu pro jiné účely. Autor nebude nikdy odpovědný za jakékoliv mimořádné, přímé, nepřímé či vyplývající škody, ať již následkem užití či interpretace tohoto dokumentu či v souvislosti s ním. Microsoft je registrovaná obchodní značka společnosti Microsoft Corp. ve Spojených státech amerických a/nebo v jiných zemích. Jména společností a produktů zde uvedených mohou být obchodní značky jejich příslušných vlastníků. Další mé e-booky e-book: Microsoft Office 2010 Návod jak zvládnout základy práce v Microsoft Office pro 3 nejpoužívanější programy z tohoto balíku. Aneb v deseti krocích zvládnete: • Word • Excel • PowerPoint Kniha je ke stažení zdarma.  Tip: Tento e-book měl 1.5.2020 přes 15.000 stažení. Doporučení Doporučuji pouze originální software. Případně využít možnosti bezplatného stažení zkušební verze ze stránek Microsoftu. Podle aplikace a účelu je možnost testovat až 90 dnů legálně a zdarma.  Pozor: Doporučuji pouze legální SW. VBA – praktické příklady použití http://office.lasakovi.com Ver 2.0 z 01/2021 51 z 51 Reklama Máte-li zájem o umístění vaší reklamy v tomto e-booku, můžete se ozvat s nabídkou na pavel.lasak@gmail.com.