Microsoft Excel je jedním z nejoblíbenějších nástrojů pro práci s daty. Ne všichni uživatelé však znají možnosti automatizace úloh v Excelu pomocí programovacího jazyka VBA (Visual Basic for Applications). V tomto článku se podíváme na některé funkce VBA související s prací s cestami a adresáři, které vám umožní efektivněji spravovat soubory v Excelu.
Cesty a adresáře hrají důležitou roli při práci se soubory. Používají se k určení umístění souboru, pohybu mezi složkami, přístupu k souborům a dalším činnostem. VBA poskytuje řadu funkcí pro práci s cestami a adresáři, které vám pomohou automatizovat procesy práce se soubory v Excelu.
Jednou z nejpoužívanějších funkcí VBA je funkce CurDir. Vrátí aktuální adresář, ve kterém je soubor s makry. To je velmi užitečné, například pokud potřebujete vytvořit nový soubor a uložit jej do stejného adresáře jako soubor s makry.
Další užitečnou funkcí je funkce GetOpenFilename. Pomocí ní lze otevřít dialogové okno pro výběr souboru a získat cestu k vybranému souboru. Také pomocí funkce GetSaveAsFilename můžete otevřít dialogové okno pro uložení souboru a získat cestu pro uložení. Tyto funkce umožňují uživateli vybrat soubory a adresáře, aniž by musel ručně zadávat cesty.
Je důležité si uvědomit, že funkce VBA pro práci s cestami a adresáři podporují zpětnou kompatibilitu se souborovým systémem Windows. Při používání funkcí v jiných operačních systémech může být nutné upravit kód.
Práce s cestami v Excelu VBA
Cesty často se používá při práci se soubory v Excelu VBA. Znalost základních způsobů práce s cestami vám umožní efektivně spravovat souborový systém a zpracovávat soubory v makrech.
Absolutní a relativní cesty - to jsou dva hlavní typy cest, které lze použít v VBA. Absolutní cesta označuje úplnou cestu k souboru, počínaje kořenovým adresářem. Relativní cesta označuje cestu k souboru vzhledem k aktuálnímu adresáři.
Pracujeme s absolutními cestami:
Dim filePath As StringfilePath = "C:\Users\UserName\Documents\example.xlsx"
V uvedeném příkladu definujeme proměnnou filePath, která obsahuje absolutní cestu k souboru s příponou XLSX. Tato cesta zůstane nezměněna bez ohledu na aktuální adresář, který obsahuje makro sešit Excel.
Pracujeme s relativními cestami:
Dim filePath As StringDim currentPath As StringcurrentPath = ThisWorkbook.PathfilePath = currentPath & "\example.xlsx"
V tomto příkladu definujeme proměnnou filePath, která obsahuje relativní cestu k souboru s příponou XLSX. Nejprve definujeme proměnnou currentPath, která obsahuje aktuální adresář, který obsahuje knihu Excel s makrem. Poté zkombinujeme současnou cestu s názvem souboru, abychom získali celou cestu.
Konkatinace cest:
Dim folderPath As StringDim fileName As StringDim filePath As StringfolderPath = "C:\Users\UserName\Documents"fileName = "example.xlsx"filePath = folderPath & "\" & fileName
V tomto příkladu definujeme proměnnou folderPath, která obsahuje cestu ke složce, a proměnnou fileName, která obsahuje název souboru. Poté tyto dvě proměnné konkatenujeme a mezi ně přidáme oddělovací znak"\", abychom získali úplnou cestu k souboru.
Znalost základních způsobů práce s cestami vám umožní snadno spravovat souborový systém a provádět různé operace se soubory v Excelu VBA.
Vytváření a změna cest
V programovacím jazyce VBA existují různé metody pro vytváření a úpravy cest souborů a adresářů. To umožňuje programátorům pracovat se souborovým systémem, vytvářet nové soubory a složky a vyhledávat a přesouvat soubory.
K vytvoření a změně cest v Excelu VBA lze použít následující metody a vlastnosti:
| Metoda / Vlastnost | Popis |
|---|---|
| CurDir | Vrátí nebo nastaví aktuální pracovní adresář. |
| ChDir | Mění aktuální pracovní směrnici. |
| MkDir | Vytváří nový adresář. |
| RmDir | Odstraní adresář. |
| Name | Přejmenuje soubor nebo adresář. |
| Dir | Vrátí první soubor, který splňuje zadanou cestu a filtr. |
Pomocí těchto metod a vlastností můžete vytvářet a odstraňovat adresáře, měnit aktuální pracovní adresář, procházet souborovým systémem a další.
Například následující kód vytvoří nové adresář s názvem "Nová složka" v aktuálním pracovním adresáři:
Sub CreateNewFolder()MkDir "Новая папка"End Sub
Tímto způsobem program vytvoří novou složku s názvem "Nová složka" v aktuálním pracovním adresáři.
Jakmile zvládnete práci s cestami a adresáři v Excelu VBA, budete moci flexibilně spravovat souborový systém a provádět různé operace se soubory a složkami.
Informace o cestách a adresářích
Při práci se soubory a adresáři v Excelu VBA je často nutné získat informace o cestách, názvech souborů a adresářích. V jazyce VBA existuje několik způsobů, jak takové informace získat.
Jedním ze způsobů je použití vestavěných funkcí pro práci s cestami. Například funkce CurDir() vrací aktuální pracovní adresář a funkce Dir() a getattr () umožňují získat informace o souboru nebo adresáři.
Dalším způsobem je použití objektů z knihovny Scripting.FileSystemObject . Tyto objekty umožňují získat informace o souborech a adresářích a provádět různé operace s nimi. Například objekt FileSystemObject má metody getfolder () a GetFile (), které umožňují získat informace o adresáři a souboru.
K získání informací o souboru lze také použít různé vlastnosti objektu Workbook. Například vlastnost FullName vrátí plný název souboru s cestou, vlastnost Path vrátí pouze cestu k souboru a vlastnost Name vrátí pouze název souboru bez cesty.
Získané informace o cestách a adresářích lze použít k provádění různých operací, jako je kopírování nebo mazání souborů, nebo k zobrazení cesty k souboru ve vlastní formě.
Je důležité si uvědomit, že při práci s cestami a adresáři je třeba vzít v úvahu funkce operačního systému, na kterém je program spuštěn. Například ve Windows je cesta k souboru obvykle nastavena pomocí reverzních slásní (například "С:\Папка\файл..xlsx") a v macOS pomocí přímých slásní (např. "/složka/soubor.xlsx").
V Excelu VBA tedy existují různé způsoby, jak získat informace o cestách a adresářích, které lze použít při práci se soubory a adresáři. Použití vestavěných funkcí, objektů knihovny Scripting.FileSystemObject a vlastnosti objektu Workbook umožňuje efektivní správu cest a adresářů v programu VBA.
Adresáře v Excelu VBA
V programovacím jazyce VBA pro Excel existuje řada metod a vlastností, které vám umožňují pracovat s adresáři a cestami souborového systému. To je velmi užitečné, protože vám umožňuje automatizovat proces práce se soubory, vyhledávat a filtrovat soubory, kontrolovat soubory a další.
Jedním z hlavních objektů, které reprezentují adresář VBA, je objekt FileSystemObject z knihovny Scripting . Chcete-li pracovat s adresáři, musíte nejprve vytvořit instanci tohoto objektu:
Dim fso As ObjectSet fso = CreateObject("Scripting.FileSystemObject")
Po vytvoření objektu FileSystemObject lze pro práci s adresáři použít jeho metody a vlastnosti:
- fso.Getfolder (path) - získání objektu, který představuje adresář na uvedené cestě.
- fso.Getspecialfolder (FolderType) - získání objektu, který představuje speciální adresář systému. Například fso.Getspecialfolder (0) vrací objekt představující adresář systému Windows.
- fso.CreateFolder (path) - vytvoření nového adresáře na uvedené cestě.
- fso.DeleteFolder(path[, force]- odstranění adresáře na uvedené cestě. Pokud je parametr force True, k odstranění dojde i v případě, že adresář není prázdný.
- fso.GetAbsolutePathName (path) - získání absolutní cesty podle relativního nebo krátkého názvu souboru nebo adresáře.
- fso.Getdrive (path) je získání objektu, který představuje logický disk na zadané cestě.
- fso.Getparentfoldername (path) - získání názvu nadřazeného adresáře pro zadanou cestu.
- fso.GetTempName () je generování jedinečného názvu dočasného souboru.
K obcházení adresářů lze použít metodu fso.GetFolder (path) pro získání objektu adresáře a poté přesměrovat jeho obsah pomocí vlastnosti Folder.Files a Folder.Subfolders . Například:
Dim folderPath As StringfolderPath = "C:\Folder"Dim folder As ObjectSet folder = fso.GetFolder(folderPath)Dim file As ObjectFor Each file In folder.Files'работа с файломNext fileDim subfolder As ObjectFor Each subfolder In folder.Subfolders'работа с поддиректориейNext subfolder
Lze také použít metodu fso.BuildPath (path, name) pro vytvoření cesty k souborům nebo adresářům s automatickým přidáním oddělovače:
Dim folderPath As StringfolderPath = fso.BuildPath("C:\Folder", "Subfolder")Dim filePath As StringfilePath = fso.BuildPath(folderPath, "file.txt")
VBA jsou k dispozici také vlastnosti pro informace o adresářích:
- folder.Path-vrací řádek s cestou do adresáře.
- folder.Name-vrací název adresáře.
- folder.DateCreated-vrací datum vytvoření adresáře.
- folder.DateLastModified-vrací datum poslední změny adresáře.
- folder.Size-vrací velikost adresáře v bajtech.
- folder.Attributes-vrací atributy adresáře.
Práce s cestami a adresáři v Excelu VBA umožňuje výrazně zjednodušit automatizaci zpracování souborů, vyhledávání a filtrování. Pomocí objektu FileSystemObject lze snadno vytvářet, mazat a obcházet adresáře a získávat o nich informace.
Vytváření a mazání adresářů
Pro práci s adresáři v Excelu VBA existují speciální metody, které vám umožňují vytvářet a odstraňovat adresáře v počítači.
Metoda MkDir slouží k vytvoření nového adresáře. Jeho syntaxe je následující:
MkDir "путь_к_директории"
Například následující kód vytvoří v aktuálním adresáři nový adresář:
Sub СоздатьДиректорию()MkDir "Новая Директория"End Sub
K odstranění adresáře se používá metoda RmDir. Jeho syntaxe je následující:
RmDir "путь_к_директории"
Následující kód například odstraní adresář "nové adresáře" v aktuálním adresáři:
Sub УдалитьДиректорию()RmDir "Новая Директория"End Sub
Odstranění adresáře je možné pouze tehdy, je-li prázdný. Pokud adresář obsahuje soubory nebo jiná adresáře, je nutné je před odstraněním odstranit.
Stojí také za zvážení, že vytváření a mazání adresářů může vést ke ztrátě dat, takže při používání těchto metod byste měli být opatrní. Před provedením operací s adresáři se doporučuje přidat další kontroly.