Přeskočit navigaci | Přeskočit na novinky

Jste zde: Úvodní stránka » excel » vba-soubory » excel-vba-vypis-cesty-k-souboru

Vypis cesty k souboru - VBA Excel

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Soubory a adresáře, jak na ně ve VBA v MS Excelu? Získat jméno, příponu, umístění v adresáři aktuálního sešitu.

Doplněno: 1.11.2015

Úvodem

VBA - Microsoft Excel logo

Při vytváření maker ve VBA, je někdy potřeba číst/zapisovat do jiného Excelovského souboru. Je vhodné použít relativní cesty. Aby námi vytvořené makro fungovalo i na jiném PC (v jiném adresáři). Pro přehlednost je soubor rozdělen na jednotlivé kapitoly:


Cesta

Vypíše cestu ve které se nachází spouštěné makro. Příkaz DIR v MS DOS.


  CestaAdresare = ThisWorkbook.Path

Poznámka: Pro tento příklad můžeme využít i funkce.

Funkce CestaAdresare

Function CestaAdresare()
    CestaAdresare = ThisWorkbook.Path
End Function

V buňce jen zadáme: =CestaAdresare()

Jméno souboru (sešitu) s příponou

Vypíše názej (jméno) aktivního souboru (ze kterého je makro spuštěno).

    JmenoSouboru = ThisWorkbook.Name

Rozdělený název / přípona souboru

Vypíše pouze název (jméno) souboru (bez přípony) a příponu.

Dim NazevSoubor As String, FileName As String, FileType As String NazevSoubor = ThisWorkbook.Name pomucka = Split(NazevSoubor, ".") FileName = pomucka(0) FileType = pomucka(1) MsgBox FileName MsgBox FileType

Cesta včetně názvu souboru

CestaVcetneNazvuSouboru = ThisWorkbook.Fullname

Nebo za využítí předcházejicí VBA maker.

  CestaVcetneNazvuSouboru = CestaAdresare & "\" & JmenoSouboru

Pod adresář(e), složky

Pokud se ve složce, kde máme náš soubor s makrem potřebujeme přesunout do nadřazeného adresáře není problém.


    CestaVcetneSouboruA_PodAdresare = CestaAdresare & "\data\" & JmenoSouboru

Poznámka: Podadresář data.Využívá předcházejicí VBA makra.

Nadřazený adresář

Jsem ve složce C:/VBA/pokus/adresar a potřebuji se dostat do C:/VBA/pokus. Tady již nastává menší problém, ale i ten je řešitelný. Můj postup je nasledující.

  1. O kolik nadřazených složek se potřebujeme dostat nahoru (V příkladu 1)
  2. Zjistíme počet znaků adresaře funkcí LEN, musíme použít anglicky název této funkce. Jelikož český POČET funguje jen v sešitu MS EXcel.
  3. Zjistíme počet lomítek adresáře ve VBA funkcí MID. Česky ČAST.
  4. Vypočteme pořadí zvoleného lomítka
  5. Vypreparujeme požadovaný text pomocí funkce LEFT, Česky ZLEVA.
  6. A máme hotovo.

Poznámka: Můžeme doplníme o kontrolu, pokud někdo chce zobrazit vyšší podsložku než můžeme, případně o dialogová okna k zadání dotazu.

Postřeh: Překlady funkci do češtiny jsou zlo. V sešitu se používá česká při programování maker anglická. Po chvíli je v tom chaos.

Private Sub PozadovanyAdresar()

CestaAdresare = ThisWorkbook.Path
KolikAdresaruNahoru = 1

CestaPocetZnaku = Len(CestaAdresare)

PocetLomitekAdresare = 0
For i = 1 To CestaPocetZnaku
     ZnakLomitko = Mid(CestaAdresare, i, 1)
     If ZnakLomitko = "\" Then
         PocetLomitekAdresare = PocetLomitekAdresare + 1
     End If
Next i

i = 1
PoradiLomitka = 0
For i = 1 To CestaPocetZnaku
     ZnakLomitko = Mid(CestaAdresare, i, 1)
     If ZnakLomitko = "\" Then
         PoradiLomitka = PoradiLomitka + 1
     ElseIf PoradiLomitka = PocetLomitekAdresare - KolikAdresaruNahoru Then
         PozadovaneLomitko = i
     End If
Next i


PozadovanyAdresar = Left(CestaAdresare, PozadovaneLomitko)

MsgBox (PozadovanyAdresar)

End Sub

Poznámka

Toto makro můžeme převést na i funkci :)

Microsoft Excel VBA - stahuj logo

Ke stažení

Soubor VBA soubory adresáře soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra.


Závěr

Využívate ve svých VBA projektech? Máte nějaký zajimavý tip, trik? Můžete se pochlubit v komentářích.

Článek byl aktualizován: 19.09.2020 11:07

Podpora - oceňte web a pozvěte mě na čokoládu

Pomohl vám článek? Vyřešili jste problém? Můžete mě podpořit zakoupení tabulky (samozdřejmě čokoládové), když kafe nepiji ;) Odkaz na zakoupení čokolády. Za veškerou podporu vám děkuji a samozdřejmě jí využiji do zdokonalování a rozšířování webu.

Případně přidejte odkaz na vaši oblíbenou sociální síť, případně využijste hashtag #JakNaExcel .

Poděkování

Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.

Vylepšení

Narazili jste v článku na nejasnost, chybu? Máte tip na vylepšení nebo doplnění článku? Budu rád pokud se zmínite v komentářích.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od dubna roku 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím 8x za sebou). Své vědomosti a zkušenosti dávám k dispozici i on-line ve videích pro SEDUO. Ve firmách školím a konzultuji, učím na MUNI. Tento web již tvořím přes 20 let (o Excel píší přes 25). Zdarma je zde přes 1.500 návodu, tipů a triků, včetně přes 350 různých šablon, sešitů a přes 70 taháků v pdf.

   Pavel Lasák LinkedIn Profil    Pavel Lasák twitter Profil




Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články


Reklama


TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2025 |