V předchozím článku jsme napsali první skutečný program, i když velmi jednoduchý. Dnes začneme řešit úlohu, při níž budeme evidovat součet bloku čísel. Tento blok pak budeme moci zápisu součtu smazat pro další použití.
Dejme tomu, že bychom měli připravovat kalkulace materiálu na určité akce, např. stravování. Ze seznamu materiálu potřebujeme někdy ubrat nebo přidat nějaké položky, vypočítá se nový součet a ten si chceme uložit, připojit také datum a čas, kdy byl uložen.
Úloha zní: V sešitě na listu „Data“ budeme mít blok čísel (nějaké ceny za ovoce a zeleninu na plánovanou akci), která na posledním řádku sečteme – vše zatím v Excelu. Některé řádky budou vyplněné, další budou prázdné. Nahoře na listu umístíme tlačítko, po jehož stisku se objeví zpráva “Součet bloku je .... Chceš součet zapsat a výsledek smazat?“ . „Ano = zapsat a smazat, Ne = zapsat a nesmazat, Storno = nedělat žádnou akci.“
Někde dole pod seznamem je řádek se součtem ve sloupci B. Skákání na tento řádek budeme pokládat za nepohodlné. Podobně budeme pokládat za nepohodlné kopírovat ručně z této buňky součet, a zapisovat jej na list „Součty“ – viz dále.
Zapisovat budeme na list „Součty“ a u každého součtu uvedeme okamžik zápisu.
Najděte si soubor ke stažení na konci článku a tento soubor si uložte k sobě na disk, abyste s ním mohli uvedené schopnosti VBA testovat a postupně pochopit. Nezapomeňte po jeho otevření povolit makra. Pokud se vám taková možnost nenabídne, zavřete soubor, vstupte myší do kulatého tlačítka Office v levém horním rohu a zvolte vpravo dole „Možnosti aplikace excel“. Dále v levém menu Centrum zabezpečení a tlačítko „Nastavení centra zabezpečení“ . viz obrázek:
V nastaveních upravte Nastavení maker podle následujícího obrázku:
Budeme postupovat obráceně, než když sami program vyvíjíte. Napřed uvidíte jednoduché makro v akci, a potom si budete zkoušet upravovat různé části tak, abyste si jazyk VBA „osahali“, aniž by makro přestalo být funkční.
V poznámce pod každou subroutinou bude uvedeno, zda jsou vysvětlivky obsaženy v tomto aktuálním článku, nebo v příštích pokračováních, případně u příštích verzí zmínka, že byly vysvětleny v dřívějším článku.
Otevřte si VBE (editor Visual Basicu) např. Alt+<F11> a uvidíte zhruba to, co ukazuje obrázek:
Pokud se Vám nenaskytl tento pohled, najděte si v levém okénku „Project – VBA project“ sešit „Zápis_součtu.xlsm“, zajistěte jeho rozbalení (např. stiskem „+“ vedle názvu souboru), vyhledejte sekci „Modules“, opět zajistěte její rozbalení, zamodřete modul „MD_soucty“ a přes pravé tlačítko zvolte „View code“ viz obrázek.
Modul v okénku Properties zkuste cvičně přejmenovat na MD_soucty1 a povšimněte si, jak se to projeví na názvu okna, až uděláte <Enter>:
Na listu „Data“ je umístěno tlačítko s přiřazeným makrem „Zapisuj_soucty“ – viz obrázek. Vy si zkuste vedle něho vložit podobné tlačítko s názvem „Zapiš součet1“ – podle obrázku:
Přiřaďte si k tomuto tlačítku makro „zapisuj_soucty“ nejsnadněji přes pravé tlačítko myši a „Přiřadit makro…“ (viz předchozí článek)
Text programu (s možnými malými…