Výběr složek a souborů ve VBA

Podobné dokumenty
Generátor list nastavení

Slíbená princezna. Univerzální ComboBox

MsgBox, InputBox, FileDialog, Pravomoci vlastních funkcí (UDF) Function TESTOVKA() 'dialog (MsgBox) TESTOVKA = MsgBox("Baf!

Na úvod tip, jak kontrolovat šířku tabulky před a po změně. Chování makra ukazují obrázky. Jak změnit rastr v hotové tabulce Excelu

Odstavení automatického zpracování hypertextových odkazů

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

Jak vložit obrázek do oblasti buněk

Tabulka obsluhovaná kódem VBA

Tematický celek 03 - Cvičné příklady

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Pokud Windows 8 nemáte, můžete si situaci nasimulovat i ve Windows 7 a starších.

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

Různé barvy v grafu pro skutečnost a plán

Kurz Databáze. Obsah. Formuláře. Práce s daty. Doc. Ing. Radim Farana, CSc.

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

'je zobrazen stavový řádek? blnstavovyradekzobrazen = Application.DisplayStatusBar. Excel stavový řádek

MS Excel makra a VBA

V článku Skrytý obsah na listu (1) jsme se zabývali obecnými možnosti skrývání obsahu. Dnes se na dané téma podíváme prakticky.

Excel Board příprava. ProExcel.cz Excel Board výuková a prezentační tabule pro Excel 1

Odstranění řádků (na základě hodnoty)

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

Dialog Vzhled stránky

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

OBSAH Úvod do VBA... 6 K čemu VBA... 6 Když VBA nestačí... 6 Historie Visual Basicu... 7 Objektový model, vlastnosti, metody, události a funkce...

DUM 06 téma: Tvorba makra pomocí VBA

Tabulka jako pozadí na Ploše

kontrola povinnosti údajů kontrola rozsahu čísel kontrola ové adresy, telefonního čísla nutná součást každého software

Obsah. Základy práce s databází 13. Tabulky 43. Obsah. Úvod 9 Poděkování 12

Empty, Null, Nothing, Missing, prázdný řetězec a buňka

Dialog Najít a nahradit

Jako skript se nabízí BAT soubory, VBScript či PowerShell. Zpracovány jsou druhé dva.

8 Makra Příklad 4 Excel 2007

DUM 07 téma: Proměnné, konstanty a pohyb po buňkách ve VBA

Článek je napsán pro českou verzi Excelu 2010, ale věřím, že i v jných verzích si dovedete poradit.

Spojování textových řetězců na listu

Hromadná změna datumu a času v buňkách

MS Excel Základy maker. Operační program Vzdělávání pro konkurenceschopnost. Projekt Zvyšování IT gramotnosti zaměstnanců vybraných fakult MU

Panely pro práci s barvami a ohraničením v Excelu 2003 a 2010

VISUAL BASIC. Práce se soubory

K8055D.DLL v Technická příručka. Úvod. Obecné. Konvence volání. Nastavení adresy karty

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

3MA481 Propojení Accessu a Excelu David Hach

Cvičení 1. Úpravy obrázků programem IrfanView. Zpracoval: Ing. Vladimír Solnický SPŠ stavební, Opava, příspěvková organizace

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

Poslední nenulová číslice faktoriálu

V praxi je běžné, že se ovlivňuje více prvků navzájem. Tady už si s jednou globální proměnnou nevystačíme.

10 Algoritmizace Příklad 2 Word 2007/ VBA

Jak spustit PC Fand na 64bit Windows - VdosPlus instalace

Metoda FollowHyperlink

Pokročilejší programování v MS Visual Basic 2010

Cvičné příklady Hodina 2

Homer. prvky. délka. přední 0 zadní 4. Použití fronty BUS STOP. 3 Lisa. 2 Bart. 4 Maggie. 1 Marge. Grafické znázornění předchozí animace:

V této aplikaci si ukážeme jakým způsobem zobrazovat čas a datum. Pro ovládání zobrazení času a datumu se naučíme využívat nabídku.

Obsah. Část I Začínáme s jazykem AppleScript

Tabulka aneb Seznam čili ListObject

Test z programování v jazyce VBA v rámci předmětu Počítače II Vzorová zadání a vypracování

Visual Basic for Applications

POVRCHOVÝ (OBRYSOVÝ GRAF)

NPRG030 Programování I, 2017/18 1 / :22:16

Visual Basic for Application

Novinky AutoCAD Plant 3D/AutoCAD P&ID 2015

Průvodce programováním AMiNi-E jazykem STL Dipl. Ing. Pavel Votrubec

Uživatelský manuál. Format Convert V3.1

Použití inteligentních značek s informačními službami

Kontingenční tabulky v MS Excel 2010

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

POLE SE SEZNAMEM (OVLÁDACÍ PRVEK FORMULÁŘE)

Tip: Využívejte dialog v plné síle, tedy rozbalený po klepnutí na tlačítko Možnosti!

Parsování HTML. Pro účely testování jsem vytvořil stránku parsovani.html. Zdrojový kód:

Jak na propojení Excelu s Outlookem

ČERV. Hra Červ je psána pomocí příkazů Javascriptu a standardních příkazů HTML.

Skripty základy VB, vestavěné objekty, příklady

ExcelVBAmodul. Podpora pro výměnu dat automatů MICROPEL s aplikací Microsoft Excel

Star Trek Do temnoty (infografika na panelu)

MAXScript výukový kurz

Popis programu: Popis přípon důležitých souborů: *.qpf projektový soubor Quartusu

Obsah Úvodem... 5 Co je to vlastně formulář... 6 Co je to šablona... 6 Jak se šablona uloží... 6 Jak souvisí formulář se šablonou...

Kurz Databáze. Přechod na SQL server. Obsah. Vytvoření databáze. Lektor: Doc. Ing. Radim Farana, CSc.

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Automatická barva písma a výplň bez Bez barvy

DesignCAD Express poznámky k vydání verze z 22/07/2015

VÝŘEZ OBLASTI BUNĚK VZORCEM

OBSAH. Stránka 1 z 11 INSTALACE THINPRINT RDP V POČÍTAČI KLIENTA STAŽENÁ Z WEBU 2

Gymnázium Ostrava Hrabůvka, příspěvková organizace Františka Hajdy 34, Ostrava Hrabůvka

Porovnání dvou seznamů

1.0 Lekce 1: Seznámení s prostøedím. 2.0 Lekce 2: Základní opravy fotografie

Postup při zasílání dokumentů smluvních partnerů České pojišťovny prostřednictvím aplikace externí upload

František Hudek. duben ročník

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Value Adaptér USB -> telefon (RJ11) Katalogové číslo: Typ: EzSKY050

Tvar dat a nástroj přeskupování

Uživatelské příkazy: false - dialog ukončen IDCANCEL. Vytvoří nové okno. title - titulek okna

ZŠ ÚnO, Bratří Čapků 1332

Konfigurace PPPoE připojení v OS Microsoft Windows Vista

Práce se souborem EU peníze středním školám Didaktický učební materiál

Standardní šířka sloupce je průměrná šířka číslic 0-9 standardního písma.

b) červená, zelená, modrá, c) černá, bílá, d) černá, bílá, šedá. 5. PNG je formát: a) textový,

Část 1 - Začínáme. Instalace

Transkript:

V článku Systémové proměnné a složky jsme si povídali o tom, jak se dobrat speciálních složek operačního systému. Dnes se podíváme na to, jak složky a soubory vybírat prostřednictvím dialogů. Excel nabízí jakýsi univerzální objekt FileDialog, který v sobě nese čtyři podtypy dialogů pro výběr složky (Folder Picker), výběr souborů (File Picker), a pro otevření (Open), resp. uložení souboru (SaveAs). Nejprve si ukážeme výběr složky. Sub DialogVyberSlozky() 'víceúčelový dialog, zde pro výběr složky With Application.FileDialog(msoFileDialogFolderPicker) 'titulek, běžně "Procházet".Title = "Výběr složky" 'výchozí styl zobrazení, zde velké ikony 'Windows 7, 64 bit, nefunkční.initialview = msofiledialogviewlargeicons 'vícenásobný výběr složek nelze použít '.AllowMultiSelect = True 'výchozí zobrazená složka, zde Temp.InitialFileName = Environ("Temp") 'popis tlačítka, běžně "OK".ButtonName = "Vybrat".Show 'byla vybrána složka? If.SelectedItems.Count > Then 'výpis do okna Immediate Debug.Print.SelectedItems(1) End With Excelplus.NET 1

Výběr složky Na chvilku si odskočíme pro výběr složky do API a tak trochu se vrátíme k tématu systémových složek, abychom si nastavili výchozí složku v dialogu. Private Type BROWSEINFO howner As Long pidlroot As Long pszdisplayname As String lpsztitle As String ulflags As Long lpfn As Long lparam As Long iimage As Long End Type Private Const CSIDL_PERSONAL As Long = &H5 Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias _ "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszpath As String) As Long Excelplus.NET 2

Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias _ "SHBrowseForFolderA" (lpbrowseinfo As BROWSEINFO) As Long Sub TestSlozkaVyber() Dim strslozka As String strslozka = GetDirectory() Function GetDirectory(Optional Msg) As String Dim binfo As BROWSEINFO Dim path As String Dim r As Long, x As Long, pos As Integer 'výchozí složka 'http://www.garybeene.com/code/visual%20basic252.htm 'zde moje složka Dokumenty binfo.pidlroot = CSIDL_PERSONAL 'popisek dialogu If IsMissing(Msg) Then binfo.lpsztitle = "Výběr složky" Else binfo.lpsztitle = Msg 'typ složky binfo.ulflags = &H1 x = SHBrowseForFolder(bInfo) 'parsování path = Space$(512) r = SHGetPathFromIDList(ByVal x, ByVal path) If r Then pos = InStr(path, Chr$()) GetDirectory = Left(path, pos - 1) Else GetDirectory = "" End Function Excelplus.NET 3

Výběr složky přes API funkce Ale teď už zpět k objektu FileDialog a možnosti výběru souborů. Sub DialogVyberSouboru() Dim i As Integer 'víceúčelový dialog, zde pro výběr souborů With Application.FileDialog(msoFileDialogFilePicker) 'vícenásobný výběr souborů.allowmultiselect = True 'výchozí zobrazená složka, zde Temp.InitialFileName = Environ("Temp").Show 'byl vybrán nějaký soubor? If.SelectedItems.Count > Then 'pro každou vybranou položku For i = 1 To.SelectedItems.Count 'výpis do okna Immediate Debug.Print.SelectedItems(i) Excelplus.NET 4

Next i End With Určitě vás bude zajímat také možnost filtrování složky podle přípony souborů. Sub DialogVyberSouboruFiltr() Dim i As Integer 'víceúčelový dialog, zde pro výběr souborů With Application.FileDialog(msoFileDialogFilePicker) 'vícenásobný výběr souborů.allowmultiselect = True 'výchozí zobrazená složka, zde složka tohoto souboru.initialfilename = ThisWorkbook.path 'přidání dvou filtrů.filters.add "Vybrané typy obrázků", _ "*.gif; *.jpg; *.jpeg; *.bmp; *.png", 1.Filters.Add "Soubory aplikace Excel", "*.xl*", 2 'výchozí druhý filtr.filterindex = 2.Show 'byl vybrán nějaký soubor? If.SelectedItems.Count > Then 'alternativně If.Show = -1 then 'pro každou vybranou položku For i = 1 To.SelectedItems.Count 'výpis do okna Immediate Debug.Print.SelectedItems(i) Next i Excelplus.NET 5

End With Výběr souborů Ještě se podíváme na třetí podtyp objektu FileDialog. Zatímco předchozí dialogy pouze vracely seznam vybraných položek, tento je otevírá prostřednictvím metody Execute. Sub DialogSouborOtevrit() Dim i As Integer 'víceúčelový dialog 'zde pro výběr a otevření souborů 'a to pouze takových, které jsou přidružené 'hostitelské aplikaci, tj. Microsoft Excel! With Application.FileDialog(msoFileDialogOpen) Excelplus.NET 6

'vícenásobný výběr souborů.allowmultiselect = False 'výchozí zobrazená složka, zde Temp.InitialFileName = ThisWorkbook.path.Show 'byl vybrán nějaký soubor? If.SelectedItems.Count > Then 'spuštění (lépe řečeno otevření souboru).execute End With Jak už napovídá komentář v kódu, není bohužel možné si kupříkladu nastavit filtr na obrázky a čekat, že je metoda Execute spustí v přidruženém grafickém programu. Ostatně podívejte se na filtry tohoto dialogu. Excelplus.NET 7

Výběr souborů k otevření I zde je cítit ze strany Microsoftu schizofrenie, vždyť už dávno existuje jiný způsob Sub DialogSouborOtevritAlternativa() Dim varfname As Variant Dim i As Integer 'metoda GetOpenFilename varfname = _ Application.GetOpenFilename( _ FileFilter:="Soubory aplikace Excel (*.xl*), *.xl*", _ MultiSelect:=True) If IsArray(varFName) Then Excelplus.NET 8

For i = LBound(varFName) To UBound(varFName) 'otevření sešitů Workbooks.Open (varfname(i)) Next Různorodost a změny v dialozích typu Otevřít/Uložit jsou leckdy přínosné (tipy si ukážeme jindy), ale nezřídka i pitomé a neergonomické (viz Excel 2013 a trotlovské proklikávání se k dialogu). Peklo s nimi zažívám ve smyslu kompatibility starších programů, které jednoduše spadnou, i když by jinak fungovali naprosto normálně. Obzvláště se to týká portable aplikací. Excelplus.NET 9