Можете да използвате функцията InputBox, за да добавите диалогови прозорци към вашите макроси на Excel 2013. Когато стартирате макроса, тази функция на Visual Basic кара Excel да покаже диалогов прозорец за въвеждане, където можете да въведете каквото заглавие има смисъл за новия работен лист. След това макросът поставя този текст в текущата клетка и форматира този текст, ако това е, което сте обучили вашия макрос да прави след това.
За да видите колко лесно е да използвате функцията InputBox за добавяне на интерактивност към иначе стабилен макрос, следвайте стъпките за преобразуване на макроса Company_Name, който в момента въвежда текста „Mind Over Media“ в такъв, който всъщност ви подканва за името, което искате влезе. Функцията InputBox използва следния синтаксис:
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
В тази функция се изисква само аргументът prompt, а останалите аргументи са незадължителни. Аргументът prompt указва съобщението, което се появява в диалоговия прозорец за въвеждане, подканвайки потребителя да въведе нова стойност (или в този случай ново име на фирма).
Аргументът на prompt може да бъде до максимум 1024 знака. Ако искате съобщението с подкана да се показва на различни редове в диалоговия прозорец, въведете функциите Chr(13) и Chr(10) в текста (за да вмъкнете съответно връщане на карета и преместване на ред в съобщението).
Незадължителният аргумент за заглавие указва какъв текст да се показва в заглавната лента на диалоговия прозорец за въвеждане. Ако не посочите аргумент за заглавие , Excel показва името на приложението в заглавната лента. Незадължителният аргумент по подразбиране указва отговора по подразбиране, който автоматично се появява в текстовото поле в долната част на диалоговия прозорец за въвеждане.
Ако не посочите аргумент по подразбиране, текстовото поле е празно в диалоговия прозорец за въвеждане.
На xpos и ypos избираеми аргументи определят хоризонталното разстояние от левия край на екрана, към левия край на диалоговия прозорец и вертикално разстояние от горния край на екрана до горния край на диалоговия прозорец. Ако не посочите тези аргументи, Excel центрира диалоговия прозорец за въвеждане хоризонтално и го позиционира приблизително на една трета от пътя надолу по екрана вертикално.
На helpfile и контекстни допълнителни аргументи да посочват името на файла по поръчка Помощ, която предоставя на потребителя, за да обясни работата на диалоговия прозорец за въвеждане, както и вида на данните, че приема.
Като част от процеса на създаване на персонализиран помощен файл за използване в системата за помощ на Excel, вие присвоявате на темата номер на контекст, подходящ за нейното съдържание, който след това се посочва като контекстен аргумент за функцията InputBox.
Когато зададете помощен файл и контекстен аргумент за тази функция, Excel добавя бутон Помощ към потребителския диалогов прозорец за въвеждане, върху който потребителите могат да щракнат, за да получат достъп до персонализирания помощен файл в прозореца за помощ.
Преди да можете да добавите реда от код към макроса с функцията InputBox, трябва да намерите мястото в командите на Visual Basic, където трябва да отиде реда. За да въведете текста Mind Over Media в активната клетка, макросът Company_Name използва следната команда на Visual Basic:
ActiveCell.FormulaR1C1 = "Разум над медиите"
За да добавите интерактивност към макроса, трябва да вмъкнете функцията InputBox на ред в прозореца на кода точно над този оператор ActiveCell.FormulaR1C1, както следва:
Позиционирайте точката на вмъкване в прозореца Code в началото на оператора ActiveCell.FormulaR1C1 и натиснете Enter, за да вмъкнете нов ред.
След като сте добавили нов ред, трябва да преместите точката на вмъкване нагоре до него.
Натиснете клавиша със стрелка нагоре, за да позиционирате точката на вмъкване в началото на новия ред.
На този ред искате да създадете променлива, която доставя аргумента prompt на функцията InputBox. За да направите това, трябва да посочите името на променливата (в този случай InputMsg), последвано от текущия й запис. Не забравяйте да поставите текста на съобщението от дясната страна на знака за равенство в затворена двойка двойни кавички.
Въведете следния код, за да създадете променлива InputMsg на ред 8 и след това натиснете клавиша Enter, за да започнете нов ред 9:
InputMsg = "Въведете името на компанията или заглавието за този работен лист в текстовото поле по-долу и след това щракнете върху OK:"
След това създавате променлива с име InputTitle, която предоставя незадължителния аргумент заглавие за функцията InputBox. Тази променлива прави текста „Заглавие на електронна таблица“ да се показва като заглавие на диалоговия прозорец за въвеждане. Отново, не забравяйте да поставите името на заглавната лента на диалоговия прозорец в кавички.
Въведете следния код, за да създадете променлива InputTitle на ред 9 и след това натиснете Enter, за да вмъкнете нов ред 10:
InputTitle = "Заглавие на електронна таблица"
След това създавате име на променлива DefaultText, която предоставя незадължителния аргумент по подразбиране на функцията InputBox. Тази променлива прави текста „Mind Over Media“ да се показва като запис по подразбиране в текстовото поле в долната част на потребителския диалогов прозорец за въвеждане на име на фирма.
Въведете следния код, за да създадете променливата DefaultText на ред 10 и след това натиснете Enter, за да вмъкнете нов ред 11:
DefaultText = "Разум над медиите"
След това създавате крайна променлива с име CompanyName, която определя функцията InputBox като свой запис (използвайки променливите InputMsg, InputTitle и DefaultText, които току-що създадохте) и съхранява резултатите от тази функция.
Въведете следния код, за да създадете променливата SpreadsheetTitle, която използва функцията InputBox на ред 11:
Заглавие на електронна таблица = InputBox(InputMsg, InputTitle, DefaultText)
Накрая заменяте стойността „Mind Over Media“ в свойството ActiveCell.FormulaR1C1 с променливата SpreadsheetTitle (чиято стойност се определя от всичко, което е въведено в диалоговия прозорец „Вход на заглавие на електронна таблица“, като по този начин ефективно замените тази константа в макроса с средствата за превръщането на този вход в наистина интерактивен.
Изберете „Mind Over Media“ на ред 12 и го заменете с SpreadsheetTitle (без кавички).
Запазете редактирания макрос, като щракнете върху бутона Запиши в лентата с инструменти на Visual Basic и след това се върнете към работния лист, като щракнете върху бутона Преглед на Microsoft Excel или натиснете Alt+F11. След това щракнете върху бутона Скриване в групата Прозорец на раздела ПРЕГЛЕД.
Сега сте готови да отворите нова работна книга и да стартирате редактирания макрос, като натиснете Ctrl+N.
Фигурата показва прозореца Code с редактирания макрос Company_Name след добавяне на изразите, които го правят интерактивен.
Следващата фигура показва диалоговия прозорец Заглавие на електронна таблица в действие в работния лист. Този диалогов прозорец за въвеждане вече автоматично се появява и ви подканва за въвеждане всеки път, когато стартирате редактираната и вече напълно интерактивна версия на макроса Company_Name.
За да продължите напред и да въведете Mind Over Media в текущата клетка и след това да я форматирате с помощта на останалите макрокоманди, просто щракнете върху OK в този персонализиран диалогов прозорец. За да въведете и форматирате името на друга компания, просто въведете името на компанията (което автоматично замества Mind Over Media в текстовото поле), преди да щракнете върху OK.