2. Строковые данные
Функция inputBoxпринимает как минимум один аргумент, например запрос "Введите ваше имя". Аналогично, функцияMsgBoxпринимает как минимум один аргумент, например, сообщение"Спасибо, что ввели имя". Такие значения аргументов называются строками (string). Строка представлена текстовыми данными, заключенным в двойные кавычки. Иногда строки используются в качестве аргументов функций MsgBox, InputBox, а также некоторых других функций. Строки имеют и другое применение вVBA.
Часто строковые данные — это в буквальном понимании строка текста, например, "Имя пользователя: Коля Иванов". (Еще раз стоит напомнить, чтодвойные кавычки являются частью текста и их нельзя опускать.) Часто возникают ситуации, когда строку невозможно записать буквально, а необходимо составить из нескольких частей. Такая операция называется конкатенацией строк (string concate-notion). В качестве примера можно привести использование функции InputBox для получения названия товара.
Product = InputBox("Введите название товара")
Пользователь вводит название товара в текстовом поле, и это название сохраняется в виде строки (например, " LaserJet 1100"). Строка сохраняется в переменной Product. Теперь предположим, что вам необходимо вывести окно сообщения с текстом"Название товара: LaserJet 1100.". Каким должен быть первый аргумент функцииMsgBox? Это не может быть строка вида"Название товара:LaserJet 1100.", так как заранее не известно, какое название введет пользователь. Таким образом, строку сообщения необходимо составить из трех строк: строки "Название товара: ", строковой переменнойProductи точки".". Для объединения строк используется символ конкатенации, амперсанд (&), заключенный в пробелы. (Можно использовать более одного пробела, но как минимум один пробел должен присутствовать с каждой стороны.) В результате функция MsgBox будет вызываться следующим образом.
MsgBox "Название товара: " & Product & "."
Обратите внимание, что амперсанд используется дважды для разделения переменной информации и текстовых строк. Конкатенация строк — объединение постоянной и переменной части строки — особенно важна и используется практически во всех программах.
Завершенная процедура, получающая от пользователя название товара и выводящая окно сообщения с этим названием, показана ниже. Результат запуска этой процедуры представлен на рис.1-2.
Sub GetProductName
Product = InputBox("Введите название товара.")
MsgBox "Название товара: " & Product & ".", vbinformation
End Sub
Рис. 1 Рис. 2
Интересная особенность оператора конкатенации проявляется при попытке использования символа подчеркивания для разделения строки на две части. Можно подумать, что следующая конструкция вполне работоспособна.
MsgBox "Это длинная строка, поэтому она будет разбита _
на две строки."
Но представленный оператор приведет к появлению сообщения об ошибке. Если строка разбивается на две, она должна объединяться с помощью оператора конкатенации.
MsgBox "Это длинная строка, поэтому она будет разбита " & _
"на две строки."
(Обратите внимание, что после слова разбита введен пробел, поэтому слова разбита и на не будут представлены одним словом. Кроме того, пробелы будут добавлены до и после амперсанда, что является обязательным требованием в VBA.) С другой стороны, амперсанд можно разместить во второй строке.
MsgBox "Это длинная строка, поэтому она будет разбита " _
& "на две строки."
Смысл заключается в том, чтобы при разбиении строк не забыть ввести амперсанд (в первой или второй строке — это уже неважно).
Упражнение 2. Вывод сообщения
Вернемся к упражнению 1, в котором была получена цена единицы товара и количество проданных единиц. Для этого использовались окна ввода данных. На основе полученных значений вычислялась общая прибыль и выводилось сообщение"Этот продукт принес прибыль, равную $380". Теперьвам должно быть понятно, что последняя часть сообщения (значение прибыли) требует выполнения конкатенации строк. Постарайтесь немного расширить программу (а полученный результат сохранить в файле Ех4_02.xls). Начните с использования окна ввода данных для получения названия товара. После этого вы получите розничную цену единицы товара и объем продаж, но при этом не забудьте включить название товара в сообщение окон ввода данных. Например, сообщение может выглядеть так: "Введите стоимость LaserJet 1100". Подсчитайте прибыль. Наконец,выведите сообщение, которое содержит всю полученную информацию, например, "Товар LaserJet 1100 с ценой $500 продан в количестве 25 единиц; прибыль составила $12 500".Постарайтесь максимальную часть работывыполнить самостоятельно. Если потребуется помощь, то обратитесь к листингу.
Замечание по форматированию окон сообщений. Если прибыль равна 12500, как добиться ее отображения в формате $12 500? Для этого используется функция VBA Format. Она принимает два аргумента: форматируемое число и строку, которая описывает числовой формат значения. Для отображения 12500 в денежном формате (с символом доллара и разделением запятой) можно воспользоваться оператором Format (12500, "$# ##0"). Если размер прибыли хранится в переменной Revenue, то необходимо воспользоваться операторомFormat (Revenue, " $# ##0"). Функция Format сложна в использовании. Вместо того чтобы запоминать различные коды числового форматирования, обратитесь к справочному руководству по функции Format. В нем приведено несколько примеров использования этой функции.
- Курсовое проектирование 1- 10
- Практическое занятие № 1
- План практического занятия
- Указания по проведению практического занятия
- Организационно-методические указания по проведению практического занятия
- 1). Опрос по лекции 1,2.
- 2). Знакомство с vba в Excel
- Практическое занятие № 2
- План практического занятия
- Указания по проведению практического занятия
- 1). Опрос по теме предыдущего занятия по контрольным вопросам.
- 2). Первая программа.
- 5. Введите код. Введите код между строками Sub и End Sub.
- Практическое занятие № 3
- План практического занятия
- Указания по проведению практического занятия
- 1). Опрос по теме предыдущего занятия по контрольным вопросам.
- 2). Изучение нового материала. Выполнение упражнение.
- 1. Комментарии
- 2. Строковые данные
- 3. Функции управления строковыми данными
- 4. Определение объектов, свойств и методов
- Практическое занятие № 4
- План практического занятия
- Указания по проведению практического занятия
- Практическая часть
- Упражнения по программированию по теме «Запись макросов»
- Практическое занятие № 5
- План практического занятия
- Указания по проведению практического занятия
- Практическая часть упражнения по программированию по теме «Условные операторы и циклы»
- Практическое занятие №6
- План практического занятия
- Указания по проведению практического занятия
- Решение задач оптимизации с помощью процедуры «Поиск решения»
- 1. . Применение процедуры Поиск решения.
- Упражнения по программированию по теме «Работа с надстройкой Поиск решения»
- Упражнения по программированию по теме «Массивы»
- Подбор параметра – имитационное моделирование в Excel.
- Практическое занятие №7
- План практического занятия
- Указания по проведению практического занятия
- Практическая часть
- 1. Введение
- 2. Упражнение
- 3. Отладка
- 4. Обработка ошибок
- 5. Резюме
- Практическое занятие №8
- План практического занятия
- Указания по проведению практического занятия
- Упражнения по программированию
- Практическое занятие № 9
- План практического занятия
- Указания по проведению практического занятия
- Практическая часть.