Přejít na hlavní obsah

Jak získat cestu ke složce v Excelu pomocí VBA

Microsoft Excel je výkonný nástroj pro práci s daty a lze v něm automatizovat mnoho úkolů pomocí vestavěného programovacího jazyka VBA (Visual Basic for Applications).

Jedním z často se vyskytujících úkolů je získat cestu ke složce, ve které je umístěn aktuální soubor. To může být užitečné například pro uložení výsledků práce do určité složky nebo pro aktualizaci dat z jiných souborů umístěných ve stejné složce.

VBA má několik způsobů, jak získat cestu ke složce. Jedním z nejjednodušších způsobů je použití objektu ThisWorkbook a jeho vlastnosti Path. Tato vlastnost vrací celou cestu k aktuálnímu souboru, ale tento řádek můžeme zpracovat, abychom získali cestu ke složce.

K tomu můžeme použít funkce VBA, jako jsou InStrRev a Left. Funkce Instrurev hledá poslední výskyt daného řádku v jiném řádku a funkce Left vrací uvedený počet znaků ze začátku řetězce. Použití těchto funkcí nám umožňuje extrahovat cestu ke složce z řádku cesty k souboru.

Příklad kódu:
Dim filePath As String


Dim folderPath As String


' Получение полного пути к файлу


filePath = ThisWorkbook.Path


' Извлечение пути к папке из строки пути к файлу


folderPath = Left(filePath, InStrRev(filePath, "\") - 1)

Po provedení tohoto kódu, proměnná folderPath bude obsahovat cestu ke složce, ve které je umístěn aktuální soubor.

Co je VBA

VBA umožňuje programování maker, která mohou provádět širokou škálu úkolů, jako je manipulace s daty, vytváření uživatelského rozhraní, Správa souborů a složek, interakce s jinými aplikacemi a další.

Výhody používání VBAPříklady použití
Automatizace rutinních úkolůVytváření maker pro rychlé filtrování a třídění dat
Zjednodušení práce s datyAutomatické vyplňování buněk na základě určitých podmínek
Vytváření vlastních funkcíVytváření funkcí, které rozšiřují možnosti aplikace Excel, například pro výpočet složitých vzorců
Integrace s jinými aplikacemiInterakce s databázemi, Outlookem, Word a dalšími aplikacemi

Použití VBA může výrazně zvýšit efektivitu práce s Excelem a pomoci automatizovat mnoho opakujících se operací, což zase ušetří čas a zvýší produktivitu.

Proč získat cestu ke složce v Excelu

Excel často vyžaduje práci se soubory umístěnými v konkrétní složce v počítači. Získání cesty k této složce vám umožní zjednodušit proces práce se soubory a automatizovat některé operace. Zde je několik důvodů, proč může být získání cesty ke složce užitečné:

Import dat: Získání cesty ke složce vám umožní snadno importovat data ze všech souborů v této složce. Tímto způsobem se můžete vyhnout ručnímu otevírání každého souboru a ručnímu kopírování dat. To je zvláště užitečné, pokud jsou soubory pravidelně aktualizovány a je třeba aktualizovat data v tabulkách aplikace Excel.

Export dat: Získání cesty ke složce usnadňuje export dat z Excelu do souborů v této složce. Můžete například automaticky vytvářet zprávy nebo exportovat data do jiných programů nebo systémů.

Manipulace se soubory: získání cesty ke složce vám umožní provádět různé operace se soubory v této složce. Můžete Například přejmenovat soubory, přesouvat je do jiných složek nebo provádět jiné akce pomocí kódu VBA.

Práce s externími daty: získání cesty ke složce vám umožní navázat spojení se soubory v této složce. Můžete například vytvořit spojení s obrázkovým souborem a automaticky aktualizovat obrázek v Excelu, když změníte soubor.

Zjednodušení práce: získání cesty ke složce vám umožní zjednodušit proces práce. Můžete například vytvořit tlačítko v Excelu, které automaticky otevře složku se soubory souvisejícími s aktuální tabulkou nebo pracovním sešitem.

To je jen několik příkladů, jak může být získání cesty ke složce v Excelu užitečné. V konečném důsledku to umožňuje zkrátit čas a úsilí vynaložené na provádění rutinních úkolů a zvýšit efektivitu práce v Excelu.

Způsoby, jak získat cestu ke složce v Excelu pomocí VBA

V Excelu existuje několik způsobů, jak získat cestu ke složce pomocí VBA.

    Použití funkce Environ : Funkce Environ umožňuje získat cestu k aktuální pracovní složce. K tomu lze použít následující kód:

Sub GetFolderPath_Environ()Dim folderPath As StringfolderPath = Environ("USERPROFILE")MsgBox folderPathEnd Sub
Sub GetFolderPath_FileDialog()Dim folderPath As StringWith Application.FileDialog(msoFileDialogFolderPicker)If .Show = -1 ThenfolderPath = .SelectedItems(1)MsgBox folderPathEnd IfEnd WithEnd Sub
Sub GetFolderPath_Shell()Dim folderPath As StringDim objShell As ObjectSet objShell = CreateObject("Shell.Application")folderPath = objShell.Namespace(0).Self.PathMsgBox folderPathEnd Sub

Pomocí těchto způsobů můžete získat cestu ke složce v Excelu a použít ji k různým akcím, jako je ukládání souborů nebo otevírání jiných souborů z této složky.

Použití funkce "CurDir"

V VBA v Excelu můžete použít funkci "CurDir" k získání aktuální pracovní složky. Funkce "CurDir" vrací cestu k aktuální pracovní složce jako řetězec.

Příklad použití funkce "CurDir" je následující:

DimpathAs String
path = CurDir

V tomto příkladu bude proměnná "path" obsahovat cestu k aktuální pracovní složce. Dále lze tuto cestu použít k provádění různých operací se soubory a složkami.

Výslednou cestu lze například použít k otevření souboru v aktuální složce:

DimfileNameAs String
fileName = path & "\example.txt"
Workbooks.Open fileName

V tomto příkladu bude proměnná " fileName "obsahovat celou cestu k souboru" example.txt " v aktuální pracovní složce a tento soubor bude otevřen.

Funkce "CurDir" může také přijmout argument jako relativní cestu ke složce, pokud jde o aktuální pracovní složku. Pokud je například aktuální pracovní složka v kořenovém adresáři disku " C:", následující příklad vrátí cestu ke složce "Documents":

DimpathAs String
path = CurDir("\Documents")

V tomto případě bude proměnná "path" obsahovat cestu "C:\Documents".

Použití funkce "CurDir" umožňuje získat cestu k aktuální pracovní složce v Excelu pomocí VBA a použít ji k provádění různých operací se soubory a složkami.

Použití objektu "FileSystemObject"

Ve Visual Basic for Applications (VBA) můžete použít objekt "FileSystemObject" pro práci se souborovým systémem počítače a získání cesty ke složce v Excelu.

Nejprve je třeba přidat odkaz na objekt "Microsoft Scripting Runtime". Chcete-li to provést, otevřete Editor Visual Basic for Applications (klikněte na "ALT + F11"), poté z hlavní nabídky vyberte "Nástroje" a výběrem "odkazy" otevřete dialogové okno "odkazy". V dialogovém okně odkazy vyhledejte a zkontrolujte " Microsoft Scripting Runtime "a poté klikněte na"OK".

Po přidání odkazu na " Microsoft Scripting Runtime "můžete použít objekt"FileSystemObject". Níže je uveden příklad kódu, který ukazuje, jak získat cestu ke složce pomocí objektu "FileSystemObject" v Excelu:

Kód VBAPopis
Sub GetFolderPath() Dim fso As FileSystemObject Set fso = New FileSystemObject Dim folderPath As String folderPath = fso.GetFolder("C:\Test").Path MsgBox folderPath End Sub V tomto příkladu deklarujeme proměnnou " fso "typu" FileSystemObject "a vytvoříme novou instanci objektu"FileSystemObject".

Poté použijeme metodu "GetFolder" k získání objektu složky na zadané cestě "C:\Test".

Dále použijeme vlastnost "Path" objektu složky k získání cesty k této složce.

Po provedení tohoto kódu se zobrazí cesta ke složce "C:\Test" v okně zprávy.

Objekt "FileSystemObject" také poskytuje mnoho dalších metod a vlastností pro práci se soubory a složkami. Seznam dostupných metod a vlastností najdete v dokumentaci společnosti Microsoft k objektu "FileSystemObject".