|
Несколько ролей и у оператора +. Во-первых — это арифметический оператор сложения. А во-вторых — оператор конкатенации строк. Конкатенация — это нечто вроде "склеивания" строк. В качестве оператора конкатенации можно использовать и оператор &. Считается, что & использовать предпочтительнее так как он в любом случае обрабатывает операнды как строковые данные.
Давайте рассмотрим пример, который охватывает арифметические операции и конкатенацию строк.
Напишем программу, которая запрашивает имя пользователя и два числа, после чего выводит такой текст в окне сообщения (если имя введено как "Александр", первое число 2, второе – 21): "Здравствуйте, Александр. Вы ввели числа 2 и 21, их сумма равняется 23."
Добавим кнопку в документ Microsoft Word, назовем ее cmd_Experiments, надпишем ее как Работа с операторами.
Теперь решим, какие переменные нам нужны.
Для имени пользователя это переменная типа String. Дадим ей имя str_UserName. Для чисел нам понадобится пара переменных одного из числовых типов.
Какие числа введет пользователь? Этого мы не знаем. Конечно, можно ограничить ввод проверками, но это дела будущих примеров. Предполагается, что пользователь может ввести практически любое число — целое или дробное, положительное или отрицательное. Поэтому воспользуемся типом Double. Назовем пару числовых переменных num_First и num_Second.
Создадим отдельную переменную того же типа Double для хранения суммы введенных значений – назовем ее num_Summ.
В условии нашей задачи присутствует требование вывести все введенные данные в строку, скомбинировав с определенными словами. Нам понадобится переменная типа String для хранения этой строки. Назовем ее str_Result.
Также добавим в обработчик нажатия кнопки команду Option Explicit — тогда система запретит использование необъявленных переменных.
Вы уже знакомы с функцией InputBox, которая выводит окно для ввода данных пользователем. Как вы могли убедиться, InputBoxотлично справляется со вводом строковых значений. А как насчет чисел? Можем ли мы написать что-то вроде:
num_First = InputBox("Введите первое число")
Вполне можем.
Пожалуй, сейчас для вас самое сложное — это построить строку вывода, однако пользуйтесь следующими правилами и вы всегда будете правильно и быстро строить подобные строки.
Во-первых — помните, что все, что вы хотите вывести в виде неизменного текста, должно быть включено в кавычки, а имена переменных, наоборот, пишутся без кавычек. Во-вторых — используйте оператор & при "склеивании" отдельных частей строки или оператор + и функцию Str (о ней вы прочтете ниже), которая конвертирует числовые переменные в строки. Так вы будете гарантированы от неожиданностей и ошибок.
Например, пусть в переменной str_UserName хранится имя пользователя "Александр", а переменная str_Result должна содержать результат вывода. Напишем код, помещающий в str_Result строку "Привет, Александр":
str_Result = "Привет, " & str_UserName
Видите? Ничего сложного, правда?
Обратите внимание на то, как реагирует система на использование необъявленных переменных при добавленной в модуль командеOption Explicit (рис. 5.3.).
Рис. 5.3. Реакция системы на необъявленную переменную
Здесь вместо str_UserName мы ошибочно использовали str_UserNane. Но благодаря Option Explicit появление необъявленных переменных воспринимается как ошибка. При попытке запуска программы мы видим сообщение об ошибке: "Variable not defined" - "Переменная не определена".
Однако вернемся к нашей задаче. Мы определились с особенностями работы наиболее сложных ее частей, в итоге у нас получилось следующее (листинг 5.7.):
Dim str_UserName As String
Dim str_Result As String
Dim num_First As Double
Dim num_Second As Double
Dim num_Summ As Double
str_UserName = InputBox("Введите ваше имя")
num_First = InputBox("Введите первое число")
num_Second = InputBox("Введите второе число")
num_Summ = num_First + num_Second
str_Result = "Здравствуйте, " & str_UserName _
& ". Вы ввели числа " & num_First & " и " & num_Second _
& ". Их сумма равняется " & num_Summ
MsgBox (str_Result)
Дата добавления: 2015-07-24; просмотров: 78 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Типы данных в VBA | | | Val — тип String в тип Double |