- •1. Макросы и технологии управления запуском пользовательских процедур.
- •2. Основные синтаксические принципы vba. Переменные и константы (область видимости переменных, правила выбора идентификатора)
- •3. Типы данных. Принципы выбора типа данных. Встроенные функции преобразования и проверки типов данных.
- •4. Управляющие конструкции vba. Функции заменители синтаксических конструкций.
- •5. Массивы. Встроенные функции для работы с массивами.
- •Динамические массивы
- •6.Пользовательские функции для массивов рабочего листа Excel.
- •7. Особенности разработки пользовательских функций на vba. Способ передачи параметров.
- •8. Встроенные функции для работы со строковыми и числовыми значениями.
- •9. Встроенные функции для работы с датой и временем.
- •10. Встроенные функции для форматирования данных.
- •11. Классы и объекты на vba.
- •12.Технологии управления приложением и разработка пользовательских событий.
- •13.Технология построения обработчиков событий пользовательских классов. Объявление WithEvents.
- •14. Использование объекта Err и обработка ошибок.
- •15. Разработка шаблона с диалоговым окном для ввода данных. Использование пользовательских форм для управления приложением.
- •16. Использование объектов Range и Selection для управления приложением. Коллекции объектов.
- •17. Word : Объектная модель. Объект Application (свойства, методы)
- •18. Word : коллекция Documents и объект Document
- •19. Объект Bookmark.
- •20. Excel : объектная модель. Объект Application ( свойства, методы ).
- •21. Excel: коллекция WorkBooks и объект WorkSheet
- •22. Коллекция Sheets. Объект WorkSheets (свойства, методы).
- •23. Коллекция QueryTables, объект QueryTable.
- •24. Сводные таблицы.
- •26. Основные этапы разработки приложений в Access
- •27. Access : объектная модель. Объект Application (свойства, методы)
- •28. Объект DoCmd
- •29. Создание пользовательских форм в Access . Свойства, методы, события.
- •30. Отчеты в Access
- •31. Outlook. Объект Application (свойства, методы).
- •32. Outlook. Объект NameSpace.
- •34. Коллeкция Folders.
- •35. Коллекция Items и объекты элементов Outlook
- •36. Система объектов в PowerPoint.
5. Массивы. Встроенные функции для работы с массивами.
Глобальные и локальные переменные, общих (Public) и закрытых (Ptivate), двух уровнях объявления, — относится и к массивам. Появляется только единственное дополнение, связанное с необходимостью указать размерность массива и границы изменения индексов.
-
локальный массив
глобальный массив
Dim <Агг> (размерность) As <type>
Public <Агг> (размерность) As <type>
где <Arr>— имя массива, (размерность)— размерность массива. Например:
-
Размерность массива
Обозначение размерности
Комментарий и примеры
Одномерный
(число)
Dim Ball (5) as Integer — 6 элементов массива, индекс элементов начинается с 0
(число1 То число2)
Dim Basket (45 То 74) as Single — 30 элементов массива
Двухмерный
(число1, число2)
Dim Foot (1, 3) as Long — 8 Элементов массива:
Foot (0, 0) Foot (0, 1 ) Foot (0, 2) Foot (0, 3)
Foot (1, 0) Foot (1, 1) Foot (1, 2) Foot (1, 3)
Динамические массивы
Массив считается динамическим, если при первоначальном объявлении не указывается его размерность, но она может быть определена и переопределена в последующем оператором ReDim. Размерность определяется динамически в той процедуре и в тот момент, когда она становится фактически известной.
Если затем нужно изменить границы или размерность массива, Вы можете снова задать оператор переопределения ReDim и начать новый цикл работы с массивом. И еще одна “приятность” — можно сохранить все ранее полученные элементы и расширить массив, добавив новые элементы. Для этого надо просто задать ключевое слово Preserve при переопределении массива. Рассмотрим пример. На уровне модуля объявим глобальный динамический массив Vector:
Public Vector() As Integer
В момент объявления размерность динамического массива не указывается, соответственно не выделяется память. Все это произойдет позже, в процессе выполнения программы. Вот одна из возможных процедур, работающая с этим массивом Vector. По ходу дела массив расширяется, сохраняя старые значения.
Public Sub DMassiv()
Dim N As Byte, I As Byte
N = InputBox ("Введите фактическую размерность вектора")
ReDim Vector(N)
For I = 1 to N
Vector(I) = 2*I+1
Next I
Динамические массивы с успехом можно применять там, где необходимы динамические структуры данных, например списки, стеки, очереди.
Функции VBA для работы с массивами.
-
Array() — позволяет автоматически создать массив нужного размера и типа и сразу загрузить в него переданные значения:
Dim myArray As Variant myArray = Array(10,20,30) MsgBox(A(2))
-
Filter() — позволяет на основе одного массива получить другой, отфильтровав в исходном массиве нужные нам элементы.
-
LBound() — возвращает информацию о нижней границе массива (то есть номере первого имеющегося в нем значения), а UBound() — о верхней (номер последнего имеющегося значения).
-
Join() — возможность слить множество строк из массива строк в одну строковую переменную. В качестве разделителя по умолчанию используется пробел, можно указать свой разделитель. Обратная функция, создающая массив из одной строки — Split(). Эти функции очень удобны, например, при обработке значений, полученных из базы данных, электронной таблицы, макетного файла и т.п.