Příklady: Obsah | 8 Záznam maker

8.3 Úprava maker, vstup z klávesnice

Makra vytvořená pomocí záznamu ne vždy zcela vyhovují našim představám. Lze je dále upravovat v prostředí editoru jazyka Visual Basic for Applications. Tento příklad demonstruje úpravu makra zadáním informace z klávesnice.

Zadání

Otevřete dokument MakroHledani.docm. V dokumentu se nachází již vytvořené makro Hledání, které nalezne první výskyt slova květináč v dokumentu. Makro upravte následujícím způsobem: Řešení

  1. Makro bude hledat libovolný text. Řešení
  2. Text pro hledání bude po spuštění makra zadán z klávesnice do dialogového okna. Řešení
  3. V dialogovém okně bude text Zadejte text pro hledání:, titulek okna bude Hledání textu.
  4. Upravené makro vyzkoušejte. Řešení
  5. Dokument s upraveným makrem uložte a zavřete jej. Řešení

Řešení

Algoritmus slovně:

  1. Text zadaný z klávesnice uložíme např. do proměnné text, která bude datového typu String (textový řetězec).
  2. Pro vstup z klávesnice se používá dialogové okno vyvolané funkcí InputBox().
  3. Tato funkce má několik parametrů zadávaných do závorek a oddělených čárkou – první údaj se týká zobrazovaného textu v dialogovém okně, druhý údaj je titulek okna, třetí údaj implicitní text, který se v okně zobrazí a uživatel jej může dále přepsat. Další parametry nejsou povinné a pro naše účely nepodstatné.

Provedení:

Před úpravou makra doporučujeme makro nejprve vyzkoušet – karta Vývojář/skupina Kód/příkaz Makra/v dialogovém okně Makra vybrat makro Hledání, příkaz Spustit. Pozn. Pro práci s makry je třeba nejprve nastavit zabezpečení maker (viz příklad 9.1 – Úprava maker, nastavení prostředí – bod 2).

Úprava makra:

  1. karta Vývojář/skupina Kód/příkaz Makra/v dialogovém okně Makra vybrat makro Hledání, příkaz Upravit. Otevře se prostředí editoru Microsoft Visual Basic s již vytvořeným makrem Hledání. Popis prostředí editoru jazyka Visual Basic viz příklad 8.2 – nastavení prostředí – bod 3). Zadání
  2. Umístit kurzor pod text s komentářem (zelená barva, řádek začíná apostrofem), vytvořit nový řádek klávesou Enter, vepsat příkaz pro deklaraci proměnné: Zadání
  3. Dim text As String

  4. Na další řádek vložit příkaz pro načtení textu, které bude makro hledat, z klávesnice: Zadání
  5. Text = InputBox(”Zadejte text pro hledání:”,”Hledání textu”)

  6. Upravit makro tak, aby hledalo zadaný text z klávesnice (a ne původní slovo květináč) – přepsat text „květináč“ v uvozovkách na text (bez uvozovek). Pozn. Pokud v kódu pracujeme s textem, uvádíme jej v uvozovkách. Chceme-li pracovat s hodnotou uloženou v proměnné, uvádíme název proměnné bez uvozovek. V našem případě bude makro pracovat s textem uloženým v proměnné text.
  7. Vyzkoušení makra: přesunout se na okno aktuálního dokumentu, umístit kurzor na začátek dokumentu. Karta Vývojář/skupina Kód/příkaz Makra/v dialogovém okně Makra najít vytvořené makro, tlačítko Spustit. Pozn. Makro lze spustit také v prostředí Editoru jazyka Visual Basic prostřednictvím nabídky Run/Run Macro. Zadání
  8. Karta Soubor/Uložit (nebo tlačítko Uložit na panelu nástrojů Rychlý přístup), zavřít dokument s makrem pomocí tlačítka Zavřít. Zadání

Algoritmus

Sub Hledání()
'
' Hledání Makro
'
'
    Dim text As String	
    text = InputBox("Zadejte text pro hledání:", "Hledání textu")
    
    Selection.Find.ClearFormatting
    With Selection.Find
        .text = text
        .Replacement.text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
End Sub