Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:
... jak pomocí VBA vypsat soubory či adresáře ...
Pro jednu aplikaci jsem potřeboval vypsat adresáře a ve zvoleném adresáři vypsat soubory. Třeba se Vám tyto informace budou hodit. V tomto článku jsou ukázkové kódy pro:
ChDrive "C" 'pokud se přepíná na jiný disk
adresar = "C:\ISO"
ChDir adresar
SouboryKtere = Dir("*.txt")
i = 1
Do While SouboryKtere <> ""
Cells(i, 1) = SouboryKtere
i = i + 1
SouboryKtere = Dir
Loop
Soubory se vypíši do ListBoxu. ListBox1.AddItem můžeme nahradit třeby vypisem do dialogového okna MsgBox.
adresar = "C:\temp\"
ChDir adresar
SouboryKtere = Dir("*.*")
ListBox1.Clear
Do While SouboryKtere <> ""
ListBox1.AddItem SouboryKtere
SouboryKtere = Dir
Loop
Pokud máte již seznam souboru v ListBox, můžete označit položku a přes tlačíko jej vypsat:
'Je vybrano něco
If ListBox1.ListIndex = -1 Then
'Pokud je ListIndex -1 není nic vybráno
MsgBox "Nemáš nic vybráno! Zkus to znovu :)"
Else
'jinak je se do Value uloži položka která je vybrana
MsgBox "Vybrano máš: " & ListBox1.Value
End If
Poznámka: nemusí jít o jeho vypsaní, ale tento soubor můžete otveřít, smaza, přejmenovat, atd.
Adresáře se vypíši do ListBoxu. ListBox1.AddItem můžeme nahradit třeby vypisem do dialogového okna MsgBox.
ZvolenyAdresar = "D:\MujAdresar\"
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(ZvolenyAdresar)
Set fc = f.SubFolders
For Each f1 In fc
polozka = f1.Name
ListBox1.AddItem polozka
Next
Poznámka: za pomoci http://www.codeguru.com/forum/showthread.php?t=368348
Pokud je potřeba změnit disk stačí použít příkaz:
ChDrive "D"
Pokud je potřeba změnit adresář stačí použít příkaz:
ChDir "d:\smaz\"
se změnou adresáře může být problém, jak jej obejít se dozvíte v další kapitole.
Někdy může externí aplikace změnit disk proto doporučuji použít nejprve přiřazení disku a poté přiřazení adresáře
ChDrive "C"
Aktuální (ten na který se VBA v Excel odkazuje) adresář s kterým Excel pracuje může být jiný než aktivní, ve kterém máte skript. Jak jej zjistit?
Set wshell = CreateObject("WScript.Shell")
MsgBox wshell.CurrentDirectory
Toto je chyba, kdy chcete načítate nějaká data (myslíte si, že se použije adresář ve kterém máte soubor se VBA skriptem) a Excel zobrazuje chybovou hlášku, že soubor neexistuje. Je to tím, že se odkazuje (pracuje) na úplně jiný adresář.
Soubor
Ukázka výpis souboru (výber souboru) Excel VBA
ke stažení zdarma. Soubor využívá makra (nutno povolit).
Existují i jiné možnosti, jak vypsat soubory či adresáře, ale výše uvedené příklady se mi osvědčily. Soubor s příklady se bude doplňovat.
Článek byl aktualizován: 19.09.2020 11:07
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 .
Děkuji za váš čas a doufám, že jste nalezli odpověď na svůj problém.
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.
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.
|
Pomohl Vám návod? Sdílejte na Facebooku, G+ |
||
|
LinkedIn... |
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 |