Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ППП(4к).docx
Скачиваний:
8
Добавлен:
24.08.2019
Размер:
36 Кб
Скачать
☆

Основные понятия vba

Одномерные массивы

Чтобы создать массив, нужно определить его имя, количество элементов и тип данных. Массивы создаются при помощи оператора Dim.

Dim ИмяМассива (размер) As ТипДанных

Если вместо слово Dim набрать слово Public, будет создан массив, областью видимости которого станет вся программа.

Пример:

Dim Моймассив (3) As integer

Dim МойМассив (1 to 3) As integer

В большинстве программ VBA при создании массива его сразу инициализируют, присвоив каждому элементу нулевое значение или пустую строку (используя цикл for next).

Dim сотрудник (4) As string

Dim i As integer

For i=0 to 4

Сотрудник (i)= “”

Next i

Обычно элементы массива содержат значения, относящиеся к одному типу. Если необходимо создать массив, в котором будут содержаться разные типы данных, используется тип массива object.

Dim MyMassiv (2) As object

MyMassiv (0) = ”Спрут”

MyMassiv (1) = 56

MyMassiv (2) = 3.1415

Двухмерные массивы и более

Порядок создания многомерных массивов такой же, только указывается соответствующая размерность.

Dim ДвухММассив (строки,столбцы) As типДанных

Dim ТрехММассив (X, Y, Z) As типДанных

Динамические массивы

Динамические массивы создаются с помощью оператора dim, private, public, static, причем список размерности опускается. Затем их размер устанавливается с помощью оператора ReDim во время выполнения программы.

ReDim [Preserve] varname (subscripts)[As type] [, varname (subscripts) [As type]]

Необязательное ключевое слово preserve приводит к тому, что VBA сохраняет данные в имеющемся массиве когда изменяется размер массива с помощью ReDim.

Varname – имя существующего массива.

Subscripts – размерность массива.

Примеры использования оператора ReDim:

  1. Dim Month () As string – объявляет динамический массив Month

  2. ReDim Month (1 to 30) – изменяет размер массива до 30 элементов

  3. ReDim Month (31) – изменяет размер массива до 31элемента

  4. ReDim Preserve Month (1 to 31) – изменяет размер массива до 31 элемента, сохраняя содержимое

  5. Dim Table () As Integer – объявляет динамический массив Table

  6. ReDim Table (3, 15) – делает массив двухмерным

  7. ReDim Table (4, 20) – изменяет размер двухмерного массива

  8. ReDim Preserve Table (4, 25) – только изменяет последний размер массива

  9. Dim Mas As Variant – объявляет переменную типа variant

  10. ReDim Mas (20) As Integer – создает массив 20 целых чисел в variant

Можно создать массив поэлементно:

Dim B (1 to 2, 1 to 2) As single

B (1, 1) = 2

B (1, 2) = 5

B (2, 1) =4

B (2, 2) =3

Получаем: 2 5

4 3

При работе с массивами можно использовать следующие функции и процедуры:

  1. Переопределение переменной в типизированный массив

Array (списокАргументов)

Dim День As variant

День = Array (“Пн”, ”Вт”, ”Ср”, …)

  1. VBA имеет две функции, которые отслеживают верхний и нижний индекс предела массива

Lbound (имяМассива [, размерность])

Ubound (имяМассива [, размерность])

  1. Оператор Erase позволяет выполнять одну из двух задач, в зависимости от того, каким будет массив. Для статических массивов Erase очищает все элементы массива указанного массива, переустанавливая массив в первоначальное состояние.

Для динамических массивов Erase полностью удаляет массив из памяти.

Erase array1 [, array2,…]

Типы данных, возвращаемые пользователю

Функции преобразования типов:

Функции

Возвращаемый тип

Asc

Integer

cBool

Boolean

CByte

Byte

CCur

Currency

CDate

Date

CDbl

Double

cDec

Decimal

CInt

Integer

CLng

Long

CSng

Single

CStr

String

CVar

Variant

Chr

Символ

Private Sub CommandButton1_Click()

Dim пер1, пер2, summa As Integer

Пер1 = CInt (textbox1, text)

Пер2 = CInt (textbox2, text)

Summa = пер1+пер2

Label3.caption = CSng (summa)

End sub

Функции работы со строками:

Функции

Пример

Описание

Len (str)

Из a=len(“персонажи”) следует a=9

Определяет длину строки

Left (<строка>,<длина>)

Left(“1234string”,4)=1234

Выбирает из аргумента строка указанное количество символов слева

Right (<строка>,<длина>)

Right(“1234string”,6)=string

Выделяет из аргумента строка указанное количество символов справа

Mid (<строка>,<старт>[,<длина>])

Mid (“12345678,4,3) - 456

Выделяет из аргумента строка под строку с указанным количеством символов, начиная с позиции старт

Mid (<строка>,<старт>)

Mid (“12345678,4,3) - 45678

Выделяется под «строка» с позиции старт до конца

LTrim (<строка>)

LTrim(“ печать”) = “печать”

Удаляет пробелы в начале строки

RTrim (<строка>)

RTrim(“печать ”) = “печать”

Удаляет пробелы в конце строки

Trim (<строка>)

Trim(“ печать ”) = “печать”

Удаляет пробелы с обоих сторон строки

InStr([<старт>,]<строка 1>,<строка 2>[,<сравнение>])

Instr(“C:\temp\fest.mdb”,”test”)=9

Если искомая строка не находится в указанной строке, функция возвращает ноль.

Производит поиск подстроки в строке, возвращает позицию первого вхождения строки (строка 2) в строку (строка 1) (старт – позиция, с которой начинается поиск)

Функции преобразования строк:

  1. LCase (<строка>) – преобразует все символы строки к нижнему регистру

  2. UCase(<строка>) – преобразует все символы строки к верхнему регистру

  3. StrConv(<строка>,<преобразование>) – выполняет несколько типов преобразования строки, в зависимости от второго параметра

  4. Space(<число>) – создает строку, состоящую из указанного числа пробелов

  5. String(<число>,<символ>) – создает строку, состоящую из указанного в первом аргументе числа символов