Excel je jedním z nejoblíbenějších tabulkových nástrojů. Nabízí širokou škálu funkcí a funkcí, které usnadňují úpravy a analýzu dat. Jednou z těchto možností je použití programovacího jazyka VBA (Visual Basic for Applications).
Pomocí VBA můžete přidávat a odstraňovat listy v Excelu, což je užitečná funkce při práci s velkým množstvím dat. Odstranění listu může být nutné, pokud se stal zbytečným nebo obsahuje zastaralé informace. V této jednoduché příručce se podíváme na to, jak odstranit list v Excelu pomocí VBA.
Než začnete, musíte v Excelu otevřít Editor VBA. Chcete-li to provést, stiskněte na klávesnici "Alt" + "F11". V okně editoru, které se otevře, vyberte v horní nabídce "Vložit" a poté vyberte "modul". V okně, které se otevře, zadejte následující kód:
Sub DeleteSheet()
'Zadejte název listu, který chcete odstranit
Dim SheetName As String
SheetName = "Jméno"
On Error Resume Next
'Vypněte výstup chyb
Application.DisplayAlerts = False
Sheets(SheetName).Delete
'Odstraníme list
Application.DisplayAlerts = True
'Zahrňte závěr chyb
End Sub
Po zadání kódu uložte soubor a zavřete Editor VBA. Poté se vraťte do Excelu a postupujte podle následujících kroků:
. pokračuj v tom článku.
Proč použít VBA k odstranění listů v Excelu
VBA (Visual Basic for Applications) poskytuje jednoduchý a efektivní způsob, jak odstranit listy v Excelu. Místo ručního mazání listů můžete na VBA napsat malé makro, které automaticky odstraní vybrané listy. Zde je několik důvodů, proč pro tento úkol použít VBA:
- Časová úspora: Ruční odstranění listů může být docela pracný úkol, zvláště pokud potřebujete odstranit mnoho listů. Použití VBA vám umožňuje tento proces automatizovat a ušetřit spoustu času.
- Pružnost: Pomocí VBA můžete nakonfigurovat odstranění listů v Excelu podle vašich konkrétních požadavků. Můžete odstranit všechny listy počínaje konkrétním indexem, odstranit listy s určitým názvem nebo provést další kroky podle vašeho uvážení.
- Automatizace: Pomocí VBA můžete vytvořit makro, které automaticky odstraní listy při každém otevření souboru nebo při provádění určitých akcí. To je zvláště užitečné, pokud často musíte pracovat se soubory obsahujícími mnoho listů a chcete pokaždé automaticky odstranit určité listy.
Nakonec použití VBA k odstranění listů v Excelu poskytuje jednoduchý, flexibilní a efektivní způsob automatizace tohoto úkolu, který vám ušetří čas a usnadní práci s velkými sadami dat.
Příprava
Než začnete odstraňovat listy v Excelu pomocí VBA, musíte provést některé přípravné kroky:
- Otevřete soubor Excel a přejděte do režimu vývojáře. Chcete-li aktivovat režim vývojáře, klikněte pravým tlačítkem na pásku a vyberte "Přizpůsobit zdroj". Poté zaškrtněte "vývojář" a klikněte na "OK".
- Otevřete Visual Basic Editor (VBE) stisknutím klávesové zkratky Alt + F11. VBE budete moci psát a upravovat svůj VBA kód.
- V VBE vyberte kartu Vložit a vyberte modul. Tím se vytvoří nový modul, do kterého bude možné zapsat náš VBA kód.
- Do modulu VBA napište následující kód a vytvořte postup, který odstraní listy:
Sub УдалитьЛисты()' Ваш код для удаления листов будет здесьEnd Sub
Nyní jste připraveni začít psát kód pro odstranění listů v Excelu pomocí VBA. Přejděte do další části a zjistěte, jak na to.
Spuštění editoru VBA v Excelu
Vizuální Editor aplikací (VBA) v Excelu vám umožňuje vytvářet a upravovat makra, která automatizují duplicitní akce v tabulkách. Chcete-li spustit editor VBA v Excelu, postupujte podle následujících kroků:
- Otevřete aplikaci Excel.
- V horní liště nabídky vyberte kartu Vývojář. Pokud se karta Vývojář nezobrazí, použijte k její aktivaci následující pokyny.
- Klikněte pravým tlačítkem na panelu nabídek a vyberte "Nastavení pásu karet".
- V okně Možnosti aplikace Excel vyberte kartu panel nástrojů Rychlý přístup.
- V rozevíracím seznamu "vybrat příkazy z "Vyberte" příkazy, které se často používají".
- V seznamu příkazů vyhledejte "vývojář" a vyberte jej.
- Klikněte na tlačítko Přidat > > pro přidání karty vývojář do panelu nástrojů Rychlý přístup.
- Klepnutím na tlačítko OK použijete změny.
Po aktivaci karty vývojář proveďte následující kroky k otevření editoru VBA:
- Na kartě Vývojář vyberte Editor VBA.
- Otevře se okno Editor VBA, ve kterém můžete vytvářet, upravovat a odstraňovat makra.
Editor VBA je integrované vývojové prostředí se všemi potřebnými nástroji pro vytváření a správu Maker v Excelu. Použijte jej k vytvoření Maker, která usnadní a automatizují vaše úkoly v tabulkách Excelu.
Otevření požadovaného souboru Excel v editoru VBA
Chcete-li otevřít požadovaný soubor Excel v editoru VBA, musíte použít metodu Workbooks.Open. Tato metoda vám umožňuje otevřít soubor aplikace Excel ze zadané cesty.
Zde je jednoduchý příklad kódu, který otevírá soubor " data.xlsx " na ploše:
Sub OpenExcelFile()Dim wb As WorkbookDim filePath As StringfilePath = "C:\Users\Username\Desktop\data.xlsx"Set wb = Workbooks.Open(filePath)' Ваш код для работы с открытым файлом ExcelEnd Sub
V tomto příkladu vytvoříme proměnnou WB typu Workbook, která bude představovat otevřený soubor Excel. Poté zadáme cestu k souboru v proměnné filePath a použijeme metodu Workbooks.Otevřete soubor aplikace Excel na zadané cestě. Poté můžete provádět jakoukoli práci s otevřeným souborem aplikace Excel pomocí proměnné wb.
Všimněte si, že možná budete muset změnit cestu k souboru podle jeho umístění v počítači.
Při práci se soubory aplikace Excel v editoru VBA mějte na paměti, že je nutné soubory po dokončení zavírat, abyste se vyhnuli možným problémům a únikům prostředků. K uzavření souboru použijte metodu Close:
wb.Close
Toto je jednoduchý návod, který vám pomůže otevřít požadovaný soubor aplikace Excel v editoru VBA a začít s ním.
Odstranění listu
Chcete-li odstranit list v Excelu pomocí VBA, musíte použít metodu Delete objektu Worksheet . Tato metoda vám umožňuje odstranit list z pracovní knihy.
Příklad kódu pro odstranění listu List1:
Sub УдалитьЛист()Sheets("Лист1").DeleteEnd Sub
Pokud chcete list odstranit podle jeho indexu, použijte vlastnost Worksheets pro přístup k listu podle jeho indexu:
Sub УдалитьЛистПоИндексу()Worksheets(1).DeleteEnd Sub
Oba příklady umožňují odstranit list z aktivní pracovní knihy. Pokud chcete odstranit list z jiné pracovní knihy, zadejte příslušný objekt Workbook .
Výběr požadovaného listu k odstranění
Chcete-li odstranit konkrétní list v Excelu pomocí VBA, musíte nejprve určit, který list bude odstraněn. V programování VBA má každý list svůj vlastní index, který lze spravovat. Indexy listů začínají na 1 (ne na 0).
Pokud je znám název listu, můžete jej použít k odstranění. Pokud je například název listu "Sheet1", můžete použít následující kód:
Sub DeleteSheetByName()Application.DisplayAlerts = False 'Отключение предупрежденийSheets("Sheet1").Delete 'Удаление листаApplication.DisplayAlerts = True 'Включение предупрежденийEnd Sub
Pokud je znám index listu, můžete použít následující kód:
Sub DeleteSheetByIndex()Application.DisplayAlerts = False 'Отключение предупрежденийSheets(1).Delete 'Удаление листаApplication.DisplayAlerts = True 'Включение предупрежденийEnd Sub
Proměnné lze také použít k určení názvu nebo indexu listu. Chcete-li například odstranit list, jehož název je uložen v proměnné "sheetName", můžete použít následující kód:
Sub DeleteSheetByVariable()Dim sheetName As StringsheetName = "Sheet1"Application.DisplayAlerts = False 'Отключение предупрежденийSheets(sheetName).Delete 'Удаление листаApplication.DisplayAlerts = True 'Включение предупрежденийEnd Sub
Výběr požadovaného listu k odstranění lze tedy provést pomocí názvu listu nebo jeho indexu v programování VBA.
Kód VBA pro odstranění listu
K odstranění listu v Excelu pomocí programovacího jazyka VBA (Visual Basic for Applications) lze použít následující kód:
| Kód | Popis |
|---|---|
| Sheets ("Jméno").Delete | Odstraňuje list se zadaným názvem Z knihy. |
| Sheets (index).Delete | Odstraní list se zadaným indexem z knihy. Index je číselná hodnota, která odpovídá pořadovému číslu listu v knize (například první list má index 1, druhý 2 atd.). |
Chcete-li použít kód, musíte otevřít Editor VBA kliknutím na tlačítko vývojář na kartě Domů na pásu karet Excel a poté vybrat Editor Visual Basic. V editoru můžete vytvořit nový modul nebo otevřít stávající, do kterého můžete napsat požadovaný kód.
Před přechodem na odstranění listu se doporučuje uložit všechna důležitá data, protože odstranění listu je nevratná operace.
Uvedený kód jednoduše odstraní list bez dalších kontrol nebo potvrzení. Pokud chcete požádat o potvrzení uživatele před odstraněním listu, můžete použít další příkazy jazyka VBA.
Před odstraněním lze například použít následující kód k vyžádání potvrzení:
Sub УдалитьЛист()Dim Подтверждение As Variant' Отобразить сообщение с запросом подтвержденияПодтверждение = MsgBox("Вы уверены, что хотите удалить данный лист?", vbYesNo, "Подтверждение удаления")' Проверить результат подтвержденияIf Подтверждение = vbYes Then' Удалить листSheets("Имя_листа").DeleteEnd IfEnd Sub
Tento kód zobrazí zprávu s žádostí o potvrzení odstranění listu. Pokud uživatel stiskne tlačítko "Ano", list bude odstraněn, jinak se nic nestane.
Tímto způsobem lze pomocí jazyka VBA snadno a pohodlně odstranit list v Excelu podle daných požadavků a podmínek.
Kontrola úspěšného odstranění
K tomu lze využít vlastnosti Sheets objektu Workbook . Vlastnost Sheets vrací sbírku všech listů v knize.
Sub CheckDeletion()Dim ws As WorksheetDim wsName As StringwsName = "Лист1" ' Имя удаленного листа' Перебор всех листовFor Each ws In ThisWorkbook.Sheets' Проверка имени листаIf ws.Name = wsName ThenMsgBox "Лист не был удален"Exit SubEnd IfNext wsMsgBox "Лист успешно удален"End Sub
V tomto příkladu dojde k přeskupení všech listů v knize a když se název vzdáleného listu shoduje s názvem aktuálního listu, zobrazí se Zpráva "list nebyl odstraněn". Pokud nejsou nalezeny žádné shody, zobrazí se Zpráva "List byl úspěšně odstraněn". Tímto způsobem tento postup usnadňuje kontrolu úspěšnosti odstranění listu v Excelu pomocí VBA.
Příklady použití
Zde je několik příkladů, jak použít VBA k odstranění listu v Excelu:
Příklad 1:
Sub УдалитьЛист1()Application.DisplayAlerts = FalseSheets("Лист1").DeleteApplication.DisplayAlerts = TrueEnd Sub
Tento příklad ukazuje, jak odstranit list s názvem List1. Funkce Delete se používá k odstranění listu. Přítomný řádek aplikace.DisplayAlerts = False deaktivuje zobrazení výstražné zprávy aplikace Excel, že se chystáte odstranit list. Po odstranění listu, funkce aplikace.DisplayAlerts = True opět obsahuje varovné zprávy.
Příklad 2:
Sub УдалитьТекущийЛист()Application.DisplayAlerts = FalseActiveSheet.DeleteApplication.DisplayAlerts = TrueEnd Sub
Tento příklad ukazuje, jak odstranit aktuální list. Funkce Delete se vztahuje na objekt ActiveSheet, který představuje aktuální aktivní list. Zde se také používají řádky aplikace.DisplayAlerts = False a Application.DisplayAlerts = True pro vypnutí a zapnutí varovných zpráv.
Příklad 3:
Sub УдалитьЛистПоПозиции()Application.DisplayAlerts = FalseSheets(2).DeleteApplication.DisplayAlerts = TrueEnd Sub
Tento příklad ukazuje, jak odstranit list z jeho pozice. Zde se používá funkce Delete aplikovaná na objekt Sheets(2), což znamená odstranění druhého listu v knize. Stejně jako v předchozích příkladech, řádky aplikace.DisplayAlerts = False a Application.DisplayAlerts = True deaktivují a podle toho zapnou varovné zprávy.
To jsou jen některé příklady toho, jak lze odstranit list v Excelu pomocí VBA. Je důležité postupovat opatrně, protože odstranění listu je nevratná operace a data na tomto listu budou ztracena, aniž by bylo možné obnovit.