
- •Лабораторная работа №5 Общие приемы программирования на vba
- •Основные конструкции и принципы vba
- •Синтаксические описания
- •Переменные
- •Типы данных в vba
- •Переменные: Dim и Static
- •Арифметические операторы и работа с числовыми переменными
- •Конкатенация
- •Преобразование типов данных
- •Функции проверки типа данных
- •Встроенные математические функции
- •Строковые функции
-
Конкатенация
Несколько ролей и у оператора +.
Во-первых — это арифметический оператор сложения. А во-вторых — оператор конкатенации строк.
Конкатенация — это нечто вроде "склеивания" строк. В качестве оператора конкатенации можно использовать и оператор &. Считается, что & использовать предпочтительнее, так как он в любом случае обрабатывает операнды как строковые данные.
Пример 4
Напишите программу, которая запрашивает имя пользователя и два числа, после чего выводит такой текст в окне сообщения (если имя введено как "Александр", первое число 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, которая выводит окно для ввода данных пользователем.
num_First = InputBox("Введите первое число")
Далее необходимо построить строку вывода, пользуясь следующими правилами
Во-первых — помните, что все, что вы хотите вывести в виде неизменного текста, должно быть включено в кавычки, а имена переменных, наоборот, пишутся без кавычек.
Во-вторых — используйте оператор & при "склеивании" отдельных частей строки или оператор + и функцию Str, которая конвертирует числовые переменные в строки.
Например, пусть в переменной str_UserName хранится имя пользователя "Александр", а переменная str_Result должна содержать результат вывода. Напишем код, помещающий в str_Result строку "Привет, Александр":
str_Result = "Привет, " & str_UserName
Обратите внимание на то, как реагирует система на использование необъявленных переменных при добавленной в модуль команде Option Explicit (рис.3.).
Рис.3. Реакция системы на необъявленную переменную
Здесь вместо str_UserName ошибочно использовали str_UserNane. Но благодаря Option Explicit появление необъявленных переменных воспринимается как ошибка. При попытке запуска программы мы видим сообщение об ошибке: "Variable not defined" - "Переменная не определена".
В итоге у нас получилось следующее:
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)
Обратите внимание на то, что строку сборки строки вывода str_Result мы разбили на несколько частей оператором переноса строки.