Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA For Excel Часть 01.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.16 Mб
Скачать

4.14 Оператор SendKeys (Эмуляция нажатия на клавиши)

Позволяет эмулировать нажатие на клавиши в активном окне приложения :

SendKeys “Клавиши” [, Wait]

где

“Клавиши” - Специально заданные клавиши в строковом формате (о формате смотрите в Приложение 2 - Программное назначение управляющих клавиш макросам)

Wait – логическое выражение, определяющее режим прерывания работы той процедуры, которая передает коды нажатых клавиш активному окну. Если данный параметр равен False, то работа вызывающей процедуры не прерывается после передачи кодов нажатых клавиш активному окну (выполняется по умолчанию входного параметра). Если указанный параметр имеет значение True, то работа вызывающей процедуры приостанавливается пока коды “нажатых” клавиш не обработались в активном окне.

4.15 Вложенность структур операторов

Структура одного оператора может быть вложена в другую однотипную, или разнотипную ей структуру.

Пример1:

‘Подсчет суммы целых, четных чисел 1-100

S =0

For i =1 to 100

If i mod 2 = 0 then

S =S + i

End if

Next i

Пример2:

‘Вывод в текущий лист Excel таблицы умножения

For i =1 to 9

For j =1 to 9

Cells( i , j ).Value = i & “*” & j & “=” & i*j

Next j

Next i

В Примере1 в оператор IF вложен внутрь оператора цикла For. В Примере2 один оператор цикла For вложен внутрь другого оператора цикла For.

5 Структурированные типы vba

5.1 Введение

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

5.2 Массивы

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

В VBА возможно объявить одномерный динамический массив одновременно с объявлением значений его ячеек через функцию Array. Но в этом случаи ячейки динамического массива могут быть только типа Variant.

5.2.1 Статический массив

Формат объявления статического массива:

DIM Имя_Массива(размерность) [as тип]

Где

Имя_Массива – имя объявляемого массива

Размерность – одна размерность или несколько размерностей разделенных запятыми

as тип – объявление типа ячейки массива, если тип опущен, ячейки массива имеют универсальный тип Variant.

Размерность можно задать двумя способами:

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

Указать диапазон ячеек:

НижняяГраница to ВерхняяГраница

Пример объявления массивов:

Dim A(9), B(1 to 4), C(1 to 4, 1 to 3)

В данном примере объявлен одномерный массив A с ячейками имеющими индексы в диапазоне 0-9, одномерный массив В с ячейками имеющими индексы в диапазоне 1-4 и двумерный массив С, имеющий четыре строки с индексами 1-4, и три столбца с индексами 1-3.

При объявлении размерности массива первым способом его нижняя размерность по умолчанию будет всегда начинаться с 0-ой ячейки, имеется возможность объявить нижнюю размерность массива на 1-ую ячейку или 0-ую следующим оператором:

Option Base 0 / 1

Где

Option Base – оператор перезадающий нижнюю размерность массива по умолчанию.

0 / 1 – число 0 или 1 задающее нижнюю размерность массива по умолчанию.

Оператор Option Base может применяться в модуле только один раз, и только до объявления массивов.

Пример:

Option Base 1

Dim A(9), C(5,3)

В данном примере объявлен одномерный массив A с ячейками имеющими индексы в диапазоне 1-9, и двумерный массив С, имеющий пять строк с индексами 1-5, и три столбца с индексами 1-3.

Обращаются к ячейки массива указывая имя массива, а за ним в скобках индексы ячеек:

A(1) = 10

C(2,3) =5

В примере выше в 1 ячейку массива A занесено число 10. А в ячейку массива С, находящуюся на пересечении второй строки и третьего столбца число 5. В качестве индексов массива могут быть использованы не только неименованные и именованные целочисленные константы, но и переменные целого типа, а так же целочисленные выражения:

Dim C(1 to 4, 1 to 3)

i = 2

j = 3

C( i + 1, j)=5

В данном примере значения 5 присвоено ячейке С( 3 , 3 )

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]