Při práci s VBA Excel může být někdy nutné vytvořit složku, pokud ještě neexistuje. To může být nutné pro organizaci struktury a ukládání souborů a pro automatizaci procesů v Excelu. V tomto článku se podíváme na několik způsobů, jak vytvořit složku pomocí VBA kódu.
Jedním ze způsobů, jak vytvořit složku v aplikaci VBA Excel, je použití funkce MkDir. Tato funkce vám umožňuje vytvořit novou složku v zadané cestě. Chcete-li použít funkci MkDir, musíte zadat cestu ke složce jako řetězec. Například:
Dim folderPath As String
folderPath = "С:\Новая složka"
MkDir folderPath
V tomto příkladu vytvoříme novou složku s názvem "Nová složka" v kořenovém adresáři disku C.Pokud již uvedená složka existuje nebo je zadaná cesta nesprávná, funkce MkDir vydá chybu, proto se doporučuje použít konstrukci On Error Resume Next ke zpracování možných chyb.
Dalším způsobem, jak vytvořit složku v aplikaci VBA Excel, je použití metody CreateFolder objektu FileSystemObject. Chcete-li použít tuto metodu, musíte vytvořit instanci objektu FileSystemObject a vyvolat metodu CreateFolder tím, že mu předáte cestu k nové složce jako řádku. Například:
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateFolder "C:"Nová složka"
V tomto příkladu vytvoříme novou složku s názvem "Nová složka" v kořenovém adresáři disku C pomocí objektu FileSystemObject a jeho metody CreateFolder. Pokud již daná složka existuje nebo je zadaná cesta nesprávná, metoda CreateFolder chybu nevydá a jednoduše se nic nestane, proto je vhodné před vytvořením zkontrolovat existenci složky.
Jak vytvořit složku VBA Excel
VBA (Visual Basic for Applications) Aplikace Excel umožňuje vytvářet, přejmenovávat a odstraňovat složky pomocí speciálních funkcí. Pokud potřebujete vytvořit složku, ale nevíte, zda již existuje, můžete použít následující kód:
Příklad kódu:
Sub CreateFolder() Dim folderPath As String folderPath = "C:\Nová složka ''zkontrolujte, zda existuje složka If Dir (folderPath, vbDirectory) = """Then' Vytvoříme novou složku MkDir folderPath End If End Sub
V tomto příkladu složka "С:\Новая složka" bude vytvořena pouze tehdy, pokud ještě neexistuje. Funkce Dir () se používá ke kontrole existence cesty ke složce a vrátí prázdný řádek, pokud složka neexistuje. Funkce MkDir () se poté použije k vytvoření nové složky.
Upozorňujeme, že kód se může lišit v závislosti na vašem operačním systému. Například místo " C:\Nová složka" můžete použít cestu ke složce v počítači.
Nyní víte, jak vytvořit složku v aplikaci VBA Excel a zkontrolovat existenci složky před jejím vytvořením.
Krok 1: Otevřete Visual Basic Editor
Chcete-li vytvořit složku v aplikaci VBA Excel, musíte otevřít speciální editor nazvaný Visual Basic Editor (VBE). Umožňuje vám pracovat s makry a vytvářet vlastní kód:
| 1. | Otevřete tabulku aplikace Excel, ve které chcete složku vytvořit. |
| 2. | Stiskněte klávesy Alt + F11 na klávesnici. Tím se otevře okno VBE. |
Po provedení těchto akcí uvidíte Visual Basic Editor, ve kterém můžete vytvářet a upravovat kódy VBA.
Krok 2: Vyberte požadovaný modul
Na kartě Vývojář vyhledejte skupinu kód a kliknutím na tlačítko vizuální Basic otevřete Editor VBA.
V editoru VBA Excel vyberte modul, do kterého chcete kód přidat. Pokud modul ještě nemáte, vytvořte jej kliknutím pravým tlačítkem myši na projekt v okně Průzkumník projektu a výběrem Vložit - > Modul.
Jakmile vyberete požadovaný modul, můžete začít psát kód pro vytvoření složky VBA Excel.
Krok 3: Přidat kód pro vytvoření složky
Po určení cesty ke složce v počítači je nutné přidat kód VBA, který vytvoří složku, pokud chybí. K tomu lze použít funkci MkDir, která vám umožní vytvořit novou složku na zadané cestě.
Zde je příklad kódu, který lze přidat do postupu pro vytvoření složky:
Sub CreateFolderIfNotExists()Dim folderPath As StringfolderPath = "C:\Путь\к\папке"If Dir(folderPath, vbDirectory) = "" ThenMkDir folderPathMsgBox "Папка успешно создана!"ElseMsgBox "Папка уже существует!"End IfEnd Sub
V tomto příkladu nejprve definujeme proměnnou folderPath, do které zapisujeme cestu ke složce v počítači. Poté pomocí funkce Dir, zkontrolujte, zda složka existuje na uvedené cestě. Pokud funkce vrátí prázdný řádek ( " ), znamená to, že složka chybí a můžeme funkci použít MkDir k jejímu vytvoření. V opačném případě, pokud funkce Dir vrátí něco jiného než prázdný řádek, to znamená, že složka již existuje a my zobrazíme odpovídající chybovou zprávu.
Po přidání tohoto kódu do postupu se při spuštění makra vytvoří Zadaná složka, pokud v počítači chybí.
Krok 4: Spusťte makro
Jakmile vytvoříte makro, musíte jej spustit a vytvořit složku, pokud chybí. Chcete-li spustit makro, postupujte takto:
| 1. | Otevřete soubor Excel, který obsahuje makro. |
| 2. | Otevřete list, na kterém chcete složku vytvořit. |
| 3. | Stiskněte kombinaci kláves Alt + F8. Otevře se dialogové okno Makro. |
| 4. | Vyberte makro, které jste vytvořili (například"CreateFolder"). |
| 5. | Klikněte na tlačítko Spustit. |
| 6. | Makro se provede a složka bude vytvořena, pokud chybí. |
Nyní víte, jak spustit makro v Excelu a vytvořit složku, pokud chybí.
Krok 5: Zkontrolujte vytvoření složky
Abychom se ujistili, že složka byla úspěšně vytvořena, můžeme použít funkci Dir . Tato funkce vrací řádek, který představuje název prvního souboru nebo složky, které odpovídají zadanému názvu a parametrům. Pokud funkce Dir nemůže najít příslušnou položku, vrátí prázdný řádek.
Můžeme použít funkci Dir ke kontrole, zda existuje složka, kterou chceme vytvořit. Pokud funkce Dir vrátí prázdný řádek, znamená to, že složka nebyla vytvořena. V takovém případě můžeme uživateli zobrazit chybovou zprávu, jinak můžeme pokračovat v provádění kódu.
Níže je uveden příklad kódu, který kontroluje vytvoření složky:
Sub CheckFolderCreation()Dim folderPath As StringfolderPath = "C:\Users\Username\Documents\TestFolder"If Dir(folderPath, vbDirectory) = "" ThenMsgBox "Не удалось создать папку!"ElseMsgBox "Папка успешно создана!"End IfEnd Sub
V tomto příkladu jsme vytvořili proměnnou folderPath, která obsahuje cestu ke složce, kterou chceme vytvořit. Poté použijeme funkci Dir s možností vbdirectory ke kontrole, zda složka existuje. Pokud funkce Dir vrátí prázdný řádek, zobrazí se chybová zpráva. V opačném případě zobrazíme zprávu, že složka byla úspěšně vytvořena.
Nyní můžeme tento kód přidat do našeho postupu vytváření složky a upozornit uživatele na výsledek operace.