Pomocí funkce InputBox můžete do maker aplikace Excel 2013 přidat dialogová okna. Když spustíte makro, tato funkce jazyka Visual Basic způsobí, že Excel zobrazí vstupní dialogové okno, kde můžete zadat jakýkoli název, který má smysl pro nový list. Makro pak vloží tento text do aktuální buňky a naformátuje tento text, pokud jste to makro natrénovali dále.
Chcete-li vidět, jak snadné je pomocí funkce InputBox přidat interaktivitu k jinak ustálenému makru, postupujte podle kroků pro převod makra Company_Name, které aktuálně zadává text „Mind Over Media“ na takové, které vás skutečně vyzve k zadání názvu, který chcete. vstoupil. Funkce InputBox používá následující syntaxi:
InputBox(výzva[,název][,výchozí][,xpos][,ypos][,soubor nápovědy,kontext])
V této funkci je vyžadován pouze argument prompt, ostatní argumenty jsou nepovinné. Argument výzvy určuje zprávu, která se zobrazí v dialogovém okně Vstup a vyzve uživatele k zadání nové hodnoty (nebo v tomto případě nového názvu společnosti).
Argument výzvy může mít maximálně 1 024 znaků. Pokud chcete, aby se výzva objevila na různých řádcích v dialogovém okně, zadejte do textu funkce Chr(13) a Chr(10) (pro vložení konce řádku a odřádkování do zprávy).
Volitelný argument title určuje, jaký text se má zobrazit v záhlaví dialogového okna Vstup. Pokud nezadáte argument názvu , Excel zobrazí název aplikace v záhlaví. Volitelný výchozí argument určuje výchozí odpověď, která se automaticky zobrazí v textovém poli v dolní části dialogového okna Vstup.
Pokud neurčíte výchozí argument, bude textové pole v dialogovém okně Vstup prázdné.
Tyto xpos a ypozice volitelné argumenty určit horizontální vzdálenost od levého okraje obrazovky k levému okraji dialogového okna a vertikální vzdálenost od horního okraje obrazovky na horním okraji dialogového okna. Pokud tyto argumenty neurčíte, Excel vycentruje vstupní dialogové okno vodorovně a umístí jej svisle přibližně do jedné třetiny obrazovky.
Soubor nápovědy a volitelné argumenty kontextu určují název vlastního souboru nápovědy, který zpřístupníte uživateli, abyste vysvětlili fungování dialogového okna Vstup a také typ dat, která přijímá.
V rámci procesu vytváření vlastního souboru nápovědy pro použití v systému nápovědy aplikace Excel přiřadíte tématu kontextové číslo odpovídající jeho obsahu, které je pak určeno jako argument kontextu pro funkci InputBox.
Když zadáte soubor nápovědy a kontextový argument pro tuto funkci, aplikace Excel přidá tlačítko Nápověda do vlastního dialogového okna Vstup, na které mohou uživatelé kliknout, aby získali přístup k souboru vlastní nápovědy v okně nápovědy.
Než budete moci přidat řádek kódu do makra pomocí funkce InputBox, musíte v příkazech jazyka Visual Basic najít místo, kam má řádek jít. K zadání textu Mind Over Media do aktivní buňky makro Company_Name používá následující příkaz jazyka Visual Basic:
ActiveCell.FormulaR1C1 = "Mind Over Media"
Chcete-li do makra přidat interaktivitu, musíte vložit funkci InputBox na řádek v okně Kód přímo nad tímto příkazem ActiveCell.FormulaR1C1 takto:
Umístěte textový kurzor v okně Kód na začátek příkazu ActiveCell.FormulaR1C1 a stisknutím klávesy Enter vložte nový řádek.
Nyní, když jste přidali nový řádek, musíte na něj přesunout kurzor.
Stisknutím klávesy se šipkou nahoru umístěte textový kurzor na začátek nového řádku.
Na tomto řádku chcete vytvořit proměnnou, která dodává argument výzvy funkci InputBox. Chcete-li to provést, zadejte název proměnné (v tomto případě InputMsg) následovaný jejím aktuálním záznamem. Nezapomeňte uzavřít text zprávy na pravé straně rovnítka do uzavřených dvojitých uvozovek.
Zadejte následující kód pro vytvoření proměnné InputMsg na řádku 8 a poté stisknutím klávesy Enter začněte nový řádek 9:
InputMsg = "Zadejte název společnosti nebo titul pro tento list do textového pole níže a poté klikněte na OK:"
Dále vytvoříte proměnnou s názvem InputTitle, která poskytuje volitelný argument title pro funkci InputBox. Tato proměnná způsobí, že se text „Název tabulky“ objeví jako nadpis dialogového okna Vstup. Znovu nezapomeňte uvést název záhlaví dialogového okna do uvozovek.
Zadejte následující kód pro vytvoření proměnné InputTitle na řádku 9 a poté stisknutím klávesy Enter vložte nový řádek 10:
InputTitle = "Název tabulky"
Dále vytvoříte název proměnné DefaultText, který dodává volitelný výchozí argument funkci InputBox. Tato proměnná způsobí, že text „Mind Over Media“ se objeví jako výchozí položka v textovém poli v dolní části vlastního dialogového okna Zadání názvu společnosti.
Zadejte následující kód pro vytvoření proměnné DefaultText na řádku 10 a poté stisknutím klávesy Enter vložte nový řádek 11:
DefaultText = "Mind Over Media"
Dále vytvoříte konečnou proměnnou s názvem CompanyName, která specifikuje funkci InputBox jako svůj záznam (pomocí proměnných InputMsg, InputTitle a DefaultText, které jste právě vytvořili) a uloží výsledky této funkce.
Chcete-li vytvořit proměnnou SpreadsheetTitle, která používá funkci InputBox na řádku 11, zadejte následující kód:
SpreadsheetTitle = InputBox (InputMsg, InputTitle, DefaultText)
Nakonec nahradíte hodnotu „Mind Over Media“ ve vlastnosti ActiveCell.FormulaR1C1 proměnnou SpreadsheetTitle (jejíž hodnota je určena tím, co je zadáno do dialogového okna Zadání názvu tabulky), čímž se tato konstanta v makru účinně nahradí prostředky k tomu, aby byl tento vstup skutečně interaktivní.
Vyberte „Mind Over Media“ na řádku 12 a nahraďte jej textem SpreadsheetTitle (bez uvozovek).
Upravené makro uložte kliknutím na tlačítko Uložit na panelu nástrojů jazyka Visual Basic a poté se vraťte do listu kliknutím na tlačítko Zobrazit Microsoft Excel nebo stisknutím Alt+F11. Poté klikněte na tlačítko Skrýt ve skupině Okno na kartě ZOBRAZENÍ.
Nyní jste připraveni otevřít nový sešit a spustit upravené makro stisknutím Ctrl+N.
Obrázek ukazuje okno Kód s upraveným makrem Název_společnosti po přidání příkazů, díky kterým je interaktivní.
Následující obrázek ukazuje dialogové okno Název tabulky v akci v listu. Toto vstupní dialogové okno se nyní automaticky zobrazí a vyzve vás k zadání vždy, když spustíte upravenou a nyní plně interaktivní verzi makra Company_Name.
Chcete-li pokračovat a zadat Mind Over Media do aktuální buňky a poté ji naformátovat pomocí zbývajících makro příkazů, stačí kliknout na OK v tomto vlastním dialogovém okně. Chcete-li zadat a naformátovat název jiné společnosti, jednoduše zadejte název společnosti (který automaticky nahradí Mind Over Media v textovém poli), než kliknete na OK.