Шрифт:
• ? – любой символ (один);
• #– одна цифра (0–9);
• [<список>] – символ, совпадающий с одним из символов списка;
• [!<список>] – символ, не совпадающий ни с одним из символов списка.
Следующие три функции позволяют работать с массивом строк.
Split (<строка> [,<разделитель>]) – преобразует строку в массив подстрок. По умолчанию в качестве разделителя используется пробел. Данную функцию удобно использовать для разбиения предложения на слова. Однако можно указать в этой функции любой другой разделитель.
Например, Split(3, «Этo тестовое предложение») возвращает массив из трех строковых значений: «Это», «тестовое», «предложение».
Join (<массивСтрок> [,<разделитель>]) – преобразует массив строк в одну строку с указанным разделителем.
Filter(<массивСтрок>,<строкаПоиск>[,<включение>] [,<сравнение>]) – просматривает массив строковых значений и ищет в нем все подстроки, совпадающие с заданной строкой.
Эта функция имеет четыре аргумента:
<строкаПоиск> – искомая строка;
<включение> – параметр (булевское значение), который указывает, будут ли возвращаемые строки включать искомую подстроку или, наоборот, возвращаться будут только те строки массива, которые не содержат искомой строки в качестве подстроки;
<сравнение> – параметр, определяющий метод сравнения строк.
Еще три функции обеспечивают преобразование строк:
LCase(<строка>) – преобразует все символы строки к нижнему регистру, например функция LCase(«ПОЧTA») возвращает строку «почта»;
UCase(<строка>) – преобразует все символы строки к верхнему регистру;
StrConv(<строка>,<преобразование>) – выполняет несколько типов преобразований строки в зависимости от второго параметра. Этот параметр описывается встроенными константами, например функция StrConv(«poccия»,VbProperCase) возвращает значение «Россия».
И последние две функции генерируют строки символов:
Space(<число>) – создает строку, состоящую из указанного числа пробелов;
String(<число>,<символ>) – создает строку, состоящую из указанного в первом аргументе числа символов. Сам символ указывается во втором аргументе.
Пример 13. Создать программу, работающую со строковыми переменными. Для этого создать форму, в метки которой выходят следующие сообщения:
1 метка: сообщается длина строки, введенной в первое текстовое поле (1 строка);
2 метка: преобразует все символы третьего текстового поля (3 строка) в заглавные буквы;
3 метка: выводит вместе содержание первого и второго текстовых полей (1 и 2 строки).
Технология выполнения
1. Откройте приложение Word, сохраните документ и перейдите в редактор VBA.
2. Создайте форму аналогично приведенному рис. 29.
3. Пропишите обработчик события кнопки ОК.
Рис. 29. Форма примера 13 в режиме конструктора и в рабочем состоянии
Private Sub CommandButton1_Click
Dim a As String
Dim b As String
Dim c As String
Dim k As String
Dim d As String
Dim n As Integer
a = TextBox1.Text
n = Len(a)
Label7.Caption = «длина первой строки равна» & n & « символам»
c = TextBox3.Text
k = Ucase(с)
Label8.Caption = k
b = TextBox2.Text
d = a + " " + b
Label9.Caption = d
End Sub
4. Откомпилируйте программу.
5. Запустите форму на выполнение.
3.3. Процедуры и функции VBA
Процедуры VBA бывают двух типов:
• процедуры обработки событий;
• общие процедуры.
Имя процедуры обработки события, связанного с элементом управления, состоит из имени элемента управления, символа подчеркивания и имени события, например Закрытъ_ click – процедура обработки нажатия кнопки Закрыть в форме.
Общие процедуры VBA могут храниться в любом типе модулей VBA, так как они не связаны с конкретным объектом. Они выполняются только тогда, когда явно вызываются другими процедурами. Обычно эти процедуры реализуют какие-то общие действия, которые могут вызываться разными процедурами обработки событий.
Процедуры, как и переменные, должны быть объявлены до того, как они могут быть вызваны. Объявления общих процедур помещаются в разделе General (Общая область) модуля. Процедуры обработки событий хранятся в разделах модуля формы или отчета, соответствующих связанным с этими процедурами объектам.