
- •Лабораторная работа №5 Общие приемы программирования на vba
- •Основные конструкции и принципы vba
- •Синтаксические описания
- •Переменные
- •Типы данных в vba
- •Переменные: Dim и Static
- •Арифметические операторы и работа с числовыми переменными
- •Конкатенация
- •Преобразование типов данных
- •Функции проверки типа данных
- •Встроенные математические функции
- •Строковые функции
-
Строковые функции
Таблица 4 - Строковые функции
Функция |
Описание |
Len(string) |
Возвращает длину строки. Например, длина строки "Добрый день" составляет 11 символов - учитывая пробел. Выходное значение имеет тип Long |
LCase(string) |
Возвращает строку, все символы которой записаны в нижнем регистре. Например, строка "Привет" превратится в "привет" |
UCase(string) |
Возвращает строку, все символы которой записаны в верхнем регистре. Например, для "Привет" мы получим "ПРИВЕТ" |
String(number, character) |
Возвращает строку, состоящую из number символов character |
Left(string, length) |
Возвращает length символов, начиная с первого левого символа строки string |
Right(string, length) |
Возвращает length символов, начиная с самого правого символа строки string |
LTrim(string) |
Возвращает строку, в которой вырезаны все пробелы слева |
RTrim(string) |
Вырезает из строки все пробелы справа |
Trim(string) |
Вырезает из строки все пробелы слева и справа |
Mid(string, start[, length]) |
Вырезает из строки string с позиции start length символов |
Asc(string) |
Возвращает ASCII-код первого символа строки |
Chr(charcode) |
Возвращает символ, соответствующий коду символа |
Пример 7.
Создайте документ Microsoft Word и добавьте следующие кнопки табл. 5.
Таблица 5. Кнопки на листе
Имя кнопки |
Надпись |
Номер листинга |
cmd_Len |
Длина строки |
листинг 1. |
cmd_Conv |
Конверсия |
листинг 2. |
cmd_Mid |
Вырезание |
листинг 3. |
Обработчик нажатия кнопки cmd_Len (листинг 1.) будет содержать решение следующей задачи: сообщить пользователю длину введенного текста. Очевидно, для решения этой задачи нам понадобится функция Len.
Листинг 1. Пример использования функции Len.
'Переменная для хранения входной строки
Dim str_InpStr As String
'Переменная для хранения найденной длины строки
Dim lng_StrLen As Long
str_InpStr = InputBox("Введите строку")
'Вычисляем длину строки
lng_StrLen = Len(str_InpStr)
MsgBox ("Длина введенной строки: _" + _
str_InpStr + "_ равняется " + Str(lng_StrLen) + _
" символам")
Листинг 2. Конверсия символов - Пример использования функций LCase и UCase
'Переменная для хранения входной строки
Dim str_InpStr As String
'Переменная для хранения измененной строки
Dim str_NewStr As String
str_InpStr = InputBox("Введите текст")
'В str_NewStr окажется введеная строка
'в которой все прописные буквы заменены строчными
str_NewStr = LCase(str_InpStr)
MsgBox ("Измененная строка: " + str_NewStr)
'Теперь в str_NewStr будет та же строка
'в которой все буквы стали прописными
str_NewStr = UCase(str_InpStr)
MsgBox ("Измененная строка: " + str_NewStr)
Вырезание символов выполняется функциями Mid, LTrim, Rtrim, Left, Right. Среди этих функций наиболее мощной является Mid .
Листинг 3. Пример использования функций для вырезания символов
'Переменная для хранения входной строки
Dim str_InpStr As String
'Переменная для хранения вырезанных символов
Dim str_NewStr As String
'Зададим строку, с которой удобно будет работать
str_InpStr = " Здравствуйте, Александр "
'Функции удаления пробелов
'При выводе строки ставим перед ее началом
'и концом символ "_" для того чтобы
'лучше было видно наличие
'или отсутствие пробелов
MsgBox ("Мы работаем с такой строкой: " + _
"_" + str_InpStr + "_")
'LTrim - присваиваем результаты работы
'переменной и выводим информацию в MsgBox
str_NewStr = LTrim(str_InpStr)
MsgBox ("Результат работы LTrim: " + _
"_" + str_NewStr + "_")
'RTrim
MsgBox ("Результат работы RTrim: " + _
"_" + RTrim(str_InpStr) + "_")
'Trim
MsgBox ("Результат работы Trim: " + _
"_" + Trim(str_InpStr) + "_")
'Left - вырезаем из строки str_InpStr 12
'символов предварительно очистив ее
'от начальных пробелов
str_NewStr = Left(LTrim(str_InpStr), 12)
MsgBox ("Первые 12 символов слева: " + _
str_NewStr)
'Right - аналогично Вырезаем 9 символов справа
str_NewStr = Right(RTrim(str_InpStr), 9)
MsgBox ("Первые 9 символов справа: " + _
str_NewStr)
'Функция Mid - для начала выведем по одному символу
'со второй и пятнадцатой позиции строки
'преварительно очищенной от лишних пробелов
'в начале и в конце
str_NewStr = Mid(Trim(str_InpStr), 2, 1)
MsgBox ("Второй символ введенной строки: " + _
str_NewStr)
str_NewStr = Mid(Trim(str_InpStr), 15, 1)
MsgBox ("Пятнадцатый символ введенной строки: " + _
str_NewStr)
'Выведем 5 символов, начиная с 15 символа
str_NewStr = Mid(Trim(str_InpStr), 15, 5)
MsgBox ("Пять символов строки с 15-й позиции: " + _
str_NewStr)
Реализация примера 7.