Skip to content

Makra nejsou jen viry Traditional Geocache

This cache has been archived.

ValenReviewer: Archivace listingu keše

Protože výzvy k údržbě nebyly naplněny, byla keš v souladu s pravidly archivována. Upozorňuji, že keš, která byla archivována pro zanedbávanou údržbu, již nelze odarchivovat.

Valen Reviewer - Reviewer pro ČR

More
Hidden : 6/22/2017
Difficulty:
1 out of 5
Terrain:
2.5 out of 5

Size: Size:   micro (micro)

Join now to view geocache location details. It's free!

Watch

How Geocaching Works

Please note Use of geocaching.com services is subject to the terms and conditions in our disclaimer.

Geocache Description:

Keš pro ty co mají rádi listingy a stěžují si, že kešky v lese nemají dostatečně dlouhé povídání.

Drive-in keš.

Keš doplňuje nepojmenovanou sérii Šumbarským lesem.

Keška, která se dá odlovit při jarní, letní, podzimní i zimní procházce od hospody k hospodě.

K textu vlastním autorská práva. Kompletní znění je dohledatelné na webu.


Chceme-li hovořit o makrech, jejich tvorbě a následném praktickém využití, musíme si nejprve objasnit pojem makro. Pro většinu uživatelů jakéhokoliv textového editoru je pojem makro pouze jednou z položek menu a mají pramalou představu jak této položky využít.

Makra nejsou v textových editorech (a obecně v jakémkoliv softwaru) ničím novým (podporu maker v sobě obsahoval již textový editor T602!). Tedy co je makro: Makro je sled (posloupnost) akcí (příkazů), které se postupně vykonávají v rámci nějakého programu a které může uživatel spustit najednou.

Z této velmi jednoduché definice vyplývá jejich užití. Makra jsou vhodná tam, kde potřebujeme opakovat určitý sled akcí, tak abychom obdrželi požadovaný výsledek. Je jasné, že pokud se bude jednat o více než 5 akcí v rámci jedné série, bylo by vhodné si těchto pět akcí zapamatovat a posléze jejich vykonání spustit jediným kliknutím myši.

V současné době je však představa maker rozšířena z původně příkazově orientovaného makro jazyka do programovatelného jazyka maker, který v sobě zahrnuje možnost vytvářet struktury ovládacích prvků, pracovat se subrutinami, funkcemi a možnosti přístupu k Windows API.

Současné makro můžeme tedy nazvat aktivním prvkem, protože umožňuje vytvářet složité programové struktury a navíc může komunikovat s uživatelem prostřednictvím grafického uživatelského prostředí.

Demonstrujme si myšlenku maker na praktickém případu číslování vzorců. Každý kdo někdy vytvářel dokument a chtěl v něm číslovat vzorce a na tyto se dále v textu odkazovat mi určitě dá za pravdu, že je to mravenčí a velmi nepříjemná práce, zvláště pokud se rozhodneme změnit pořadí, či přidat některý vzorec. Takový vložený vzorec může vypadat například takto:

S využitím makra se však vytvoření i velmi dlouhého dokumentu obsahujícím desítky vzorců stává velmi jednoduchou záležitostí. Makro totiž umožní vložit číslo vzorce (aniž by se uživatel musel zajímat o hodnotu, program si ji vždy vypočte automaticky podle pozice vzorce v dokumentu), zarovnat jej doprava, vytvořit jeho jméno (aby bylo možno se na něj v textu odkazovat) a nakonec vložit samotný vzorec. Odkaz na daný vzorec pak může vypadat následovně (1). O vložení správného odkazu se také postará makro, které otevře okno se seznamem všech vzorců, uživatel vybere ze seznamu požadovaný vzorec, potvrdí svou volbu a odkaz je automaticky vložen. Rychlé, jednoduché a velmi prosté.

Podobným způsobem můžeme vytvořit makro pro vkládání a popisování obrázků/grafů a odkazování se na ně.

K psaní maker je využíváno tzv. makro jazyků. Makro jazyky prošly vývojem stejně jako jiné programovací jazyky a v současné době jsou to jazyky hybridní, tedy jak procedurálně, tak objektově orientované (přesněji objektově zaměřené). Makro jazyk využívaný v produktech kancelářského balíku má svůj základ v jazyce Visual Basic a nazývá se Visual Basic for Application (VBA).

Současné jazyky pro tvorbu maker poskytují:

• Jazyk založený na funkcích a subrutinách s orientací na objekty;
• Používání standardních programovacích ovládacích struktur (If…Then…Else, Do…Loop, For…Next, Select Case, atd.);
• Možnost zachycování a ošetřování výjimek (On Error…);
• Ošetření událostí (OnClick, OnOpen atd.)
• Plný přístup k příkazům a funkcím hostitelské aplikace (v našem případě Word);
• Vestavěné editory pro psaní a tvorbu kódů (editor jazyka Visual Basic);
• Možnost ladění;
• Vytváření vlastního uživatelského rozhraní – GUI (dialogová okna, nabídky - menu, panely nástrojů, nápověda, atd.);
• Možnost využívat GUI hostitelské aplikace, případně jej měnit a doplňovat.
• Využívání programového rozhraní aplikace (API) Windows, vlastních DLL knihoven.

Z uvedeného seznamu je patrné, že makro jazyk poskytuje dostatečné nástroje, aby s jeho pomocí vznikly aplikace usnadňující každodenní používání programů. Připočteme li navíc možnost propojení všech produktů Office a přístup k datům v databázích, dostáváme do ruky velmi silný nástroj pro tvorbu komplexních kancelářských aplikací.

Ačkoliv aplikace založené na Office, nemohou nikdy v oblasti programování nahradit „plnohodnotné“ programovací jazyky (C++, SmallTalk, Delphi, Java) jsou tyto aplikace výhodné zejména z těchto důvodů:

• Umožňují vytvářet aplikace „na míru“ pouhým přizpůsobením již hotové hostitelské aplikace (Poznámka: Zkuste číslovat vzorce standardními nástroji Word pomocí titulků - zcela nepoužitelné. Na druhé straně výše zmíněné makro také využívá standardní funkce a je velmi dobře použitelné.)
• Pracují rychle, protože mohou využívat standardních funkcí hostitelské aplikace;
• Umožňují uživatelům zůstat ve známém pracovním prostředí;
• Umožňují vytvářet vlastní aplikace i zkušeným uživatelům s minimální znalostí programování.

Následující příklad ukazuje konkrétní příklad makra využitého v šabloně hlavičkového papíru. Makro vyžaduje, aby v dokumentu byly přítomny záložky „Nazev“, „Jmeno“ (další názvy viz kód) na místech kam má být vložen příslušný text z textového pole formuláře. Formulář musí obsahovat prvky textových polí s názvy „TextBox_Název“, „TextBox_Jméno“ (další názvy viz kód) a dvě tlačítka s názvy „Button_OK“ a „Button_Cancel“.

REM Kód ošetřující události okna
REM Deklarace proměnných je explicitně vyžadována
Option Explicit
REM Ošetření události tlačítka Storno
Private Sub Button_Cancel_Click()
REM Skrytí okna
Me.hide
REM Zobrazení hlášení uživateli
MsgBox "Vyplňování přerušeno, nyní musíš vše vyplnit sám.", vbInformation,"Přerušení"
REM Nastavení vlastnosti dokumentu na „nezměněn“, to umožní uživateli zavřít
REM dokument bez hlášení „Dokument není uložen. Uložit?“ ActiveDocument.Saved = True
End Sub
REM Ošetření dvojkliku na formuláři
Private Sub UserForm_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
REM Volání další subrutiny
Call Ošabloně
End Sub
REM Ošetření události Inicializace formuláře
Private Sub UserForm_Initialize()
REM Předvyplnění textového pole datum formuláře
Me.TextBox_Datum.Value = Date
REM Text ve stavovém řádku aplikace
StatusBar = "Doplň požadované informace, které se zobrazí v hlavičce
hlavičkového papíru tak jak je uvedeno"
End SubPrivate
REM Ošetření události tlačítka OK
Sub Button_OK_Click()
REM Skrytí okna
Me.hide
REM Přechod na záložku v dokumentu a vložení textu z textového pole okna
Selection.GoTo What:=wdGoToBookmark, Name:="Nazev"
Selection.TypeText Text:=Trim(Me.TextBox_Název)
Selection.GoTo What:=wdGoToBookmark, Name:="Jmeno"
Selection.TypeText Text:=Trim(Me.TextBox_Jméno)
Selection.GoTo What:=wdGoToBookmark, Name:="Poznamka"
Selection.TypeText Text:=Trim(Me.TextBox_Poznámka)
Selection.GoTo What:=wdGoToBookmark, Name:="Sidlo"
Selection.TypeText Text:=Trim(Me.TextBox_Sídlo)
Selection.GoTo What:=wdGoToBookmark, Name:="PSC"
Selection.TypeText Text:=Trim(Me.TextBox_PSČ)
Selection.GoTo What:=wdGoToBookmark, Name:="Mesto"
Selection.TypeText Text:=Trim(Me.TextBox_Město)
Selection.GoTo What:=wdGoToBookmark, Name:="VaseZnacka"
Selection.TypeText Text:=Trim(Me.TextBox_VášDopis)
Selection.GoTo What:=wdGoToBookmark, Name:="NaseZnacka"
Selection.TypeText Text:=Trim(Me.TextBox_NašeZnačka)
Selection.GoTo What:=wdGoToBookmark, Name:="Vyrizuje"
Selection.TypeText Text:=Trim(Me.TextBox_VyřizujeLinka)
Selection.GoTo What:=wdGoToBookmark, Name:="MistoOdeslani"
Selection.TypeText Text:=Trim(Me.TextBox_MístoOdeslání)
Selection.GoTo What:=wdGoToBookmark, Name:="Datum"
Selection.TypeText Text:=Trim(Me.TextBox_Datum)
REM Přechod na záložku začátku dokumentu
Selection.GoTo What:=wdGoToBookmark, Name:="ZačátekDokumentu"
End Sub

Additional Hints (Decrypt)

7.05381 FGBC, avp ceb cepxl, FGBC

Decryption Key

A|B|C|D|E|F|G|H|I|J|K|L|M
-------------------------
N|O|P|Q|R|S|T|U|V|W|X|Y|Z

(letter above equals below, and vice versa)