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

Jste zde: Úvodní stránka » excel » vba-soubory » excel-vba-vypsat-soubory-adresare

Vypsat adresáře, soubory ve VBA

Videokurzy Excel

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

... jak pomocí VBA vypsat soubory či adresáře ...

Úvodem

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:

Výpis souborů v adresáři pomocí VBA

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

Výpis souborů v adresáři pomocí VBA

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

Zpět na seznam

Zobrazit co je v ListBox vybráno

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.

Zpět na seznam

Výpis adresáře pomocí VBA

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

Změna disku

Pokud je potřeba změnit disk stačí použít příkaz:

ChDrive "D"

Zpět na seznam

Změna adresáře

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.

Zpět na seznam

Problémy s adresářem

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í adresář

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ář.

Ke stažení

Soubor Ukázka výpis souboru (výber souboru) Excel VBA soubor ve formátu *.xlsm ke stažení zdarma. Soubor využívá makra (nutno povolit).

Závěrem

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

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák - autor webu

Pavel Lasák

Microsoft Office (Word, Excel, Google tabulky, PowerPoint) se věnuji od roku 2000 (od 2004 na této doméně) - V roce 2017 jsem od Microsoft získal prestižní ocenění MVP (zatím jsem jediný z ČR v kategorií Excel). 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 15 let. Zdarma je zde přes 1.000 návodu, tipů a triků, včetně přes 250 různých šablon, sešitů.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil


Komentáře

" ; // echo "kompletni_cesta :" ; // echo $adresar_pro_vkladani ; // echo "
" ; // echo " Tady bude možnost přidání komentáře" ; // echo "
" ; // echo "
" ; $kompletni_cesta = "komentare"; $adresar_pro_vkladani = $kompletni_cesta; ?> \n"; reset($polozky); while (list($key, $val) = each($polozky)) { if ($val != "." && $val != "..") { if (!is_dir($val)) { // echo "$val
\n"; $fp = FOpen ($adresar_pro_vkladani."/".$val, "r"); //otevře soubor book.dat pro čtení $data = FRead ($fp, FileSize($adresar_pro_vkladani."/".$val)); //přečte data ze souboru a uloží do proměnné "data" - kvůli tomu aby se zobrazoval poslední příspěvek nahoře FClose($fp); echo "$data"; } } } ?>




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 - 2020 |