Что такое окно ввода

Окно ввода очень похоже на окно сообщений, за исключением того, что первое содержит поле для вода текстовой строки. В окне ввода уже установлены две кнопки: ОК и Отмена, и вам не придется беспокоится об определении кнопок.

Здесь, так же, как и в окнах сообщений, вы должны создать функцию, которая будет возвращать вашей переменной всю введенную информацию; кроме того, вы должны указать текст, который сообщает пользователю, какую информацию нужно ввести. Фактически выражение выглядит так:

Переменная = InputBox ("Вопрос пользователю")

Для примера создадим переменную с именем EmployeeName, в которой будет храниться имя пользователя:

EmployeeName = InputBox ("Введите ваше имя")

Эта макрокоманда, используя диалоговое окно (рис. 4.8), поможет узнать имя пользователя.

Рис.4. 8. Окно ввода запрашивает имя пользователя

Как вы уже догадались, одного этого выражения недостаточно; необходимо также указать программе, что же делать дальше. Осталось внести в программу последние небольшие изменения. Посмотрим на то,

что вы уже сделали:

Application.UserName = "Иванов Иван Иванович"

Информация в кавычках называется строковой переменной (string), а это означает, что она может хранить текстовую информацию, которая в дальнейшем будет использоваться для определенных целей. В данном случае, несомненно, эта информация будет помещена во вкладку Пользователь диалогового окна параметры. Строковая переменная может содержать как обычный текст, так и, например, адрес электронной почты, если вы хотите создать макрос для автоматической рассылки сообщений.

Данные, хранимые в строковой переменной "как текст", не могут быть использованы, например, в формуле, даже если они содержат цифры или числа. Однако информацию из строковой переменной можно преобразовать в численное значение, и наоборот. Вы можете написать программу, которая копирует сумму из платежной ведомости и сохраняет ее в виде строковой переменной. Кроме того, можно написать формулы, которые для вычислений используют данные в виде строковой переменной, полученные с помощью окна ввода. Для этого существует функция Val. В следующем примере строка с именем Число преобразуется в числовое значение:

Val(Число)

Кроме того, в другой переменной у вас может храниться числовое значение, которое вы хотите показать в окне сообщений. VBA требует преобразовать его в строку. Это можно сделать с помощью функции Str. В следующем примере переменная с именем Счет, которая имеет числовое значение, преобразуется в строковое значение:

Str(Счет)

Но сейчас вам такая строка совсем даже не нужна. Вместо этого необходимо, чтобы использовалось значение, хранящееся в переменной EmployeeName. В процессе работы программы, как только VBA доходит до этого выражения, EmployeeName уже должна содержать имя пользователя, которое он введет в диалоговом окне. Поэтому приведите выражение к следующему виду:

Application.UserName = EmployeeName

Обратите внимание на то, что теперь вы не используете кавычки. Если бы здесь были кавычки, VBA воспринимала бы переменную просто как строку символов. А сейчас, когда программа достигнет этого выражения, она должна прочитать содержимое переменной EmployeeName и поместить его во вкладку Пользователь диалогового окна Параметры. Окончательный вид программы таков:

Sub AutoExec()

'

' AutoExec Макрос

' Макрос записан 12.11.07 Alex

'

EmployeeName = InputBox ("Введите, пожалуйста, вате имя")

Application.UserName = EmployeeName Application.Userlnitials = ""

Application.UserAddress = ""

End Sub

Вы можете добавить заголовок в окно ввода. Это происходит точно так же, как при использовании сообщений.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: