Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Часть 1. Среда программирования VBA





VBA – Visual Basic for Application.

VBA применяет технологию визуального программирования, т.е. конструирование рабочей поверхности приложения и элементов его управления непосредственно на экране, а также запись всей программы или ее частей помощи MacroRecorder. MacroRecorder – транслятор, создающий программу (макрос) на языке VBA действий пользователя.

Объекты и их семейства.

VBA относится к языкам объектно-ориентированного программирования (ООП). ООП можно описать как методику анализа, проектирования и написания приложений с помощью объектов. Что есть объект в ООП?

Объект – это инкапсулированные данные вместе с кодом, предназначенным для их обработки. Все визуальные объекты, такие как рабочий лист (Worksheet), диапазон (Range), диаграмма (Chart), форма (Userform) – являются объектами.

Семейство (объект Collection) представляет собой объект, содержащий несколько других объектов, как правило, одного и того же типа. Например, объект Workbooks (рабочие книги) содержит все открытые объекты Workbook (рабочая книга). Каждый элемент семейства нумеруется и может быть идентифицирован либо по номеру, либо по имени. Например, Worksheets (1) – первый рабочий лист активной книги, Worksheets («Лист 1») – рабочий лист с именем Лист 1.

 

Объекты OLE и ActiveX.

В VBA используется механизм OLE (Object Linkihg And Embedding – связывание и внедрение объектов), который позволяет взаимодействовать с любыми программами, поддерживающими OLE. Примером элементов, которые можно интегрировать при помощи механизма OLE, являются вставляемые объекты OLEObject, создаваемые, например, при помощи программ WordArt, ClipArt и т.п. OLE – объект отличается от обычного тем, что при выборе внедренного объекта активизируется программа, связанная с этим объектом, и меню приложения заменяется меню программы, его создавшей (этот объект).



Теперь можно, не выходя из основного приложения, работать с данным объектом, редактируя и видоизменяя его средствами, создавшей его программы. Кроме того, OLE-технология обладает так называемым свойством Automation, с помощью которого можно устанавливать свойства, применять методы и отрабатывать события внедренных объектов, как обычных объектов приложения. С 1996 г. фирма Microsoft ввела новую технологию и теперь то, что раньше именовалось OLE – объект, называется объектом ActiveX, а OLE-Automation называется ActiveX Automation.

Классы.

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

 

 

Иерархия объектов.

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

Неполный пример модели встроенных объектов VBA:

 
 

 


и т.д.

Полная ссылка на объект состоит из ряда имен вложенных последовательно друг в друга объектов. Разделителями имен объектов в этом ряду являются точки, ряд начинается с объекта Application и заканчивается именем самого объекта. Например, полная ссылка на ячейку А1 рабочего листа Лист 1 рабочей книги с именем Архив имеет вид:

Application. Workbooks («Архив»). Worksheets («Лист1»). Range («А1»).

Приводить полную ссылку на объект не обязательно – достаточно неявной ссылки на него: в неявной ссылке упоминание активных в данный момент объектов не обязательно. Если ссылка на ячейку А1 дана в программе, выполняемой в Excel, то можно привести относительную ссылку:

Workbooks («Архив»). Worksheets («Лист 1»). Range («А1»). Если книга Архив активна, то достаточно: Worksheets («Лист1»). Range («А1»). Если активен рабочий лист Лист 1, то достаточно: Range («А1»).

Методы.

Объект сам по себе не представляет большого значения в программе. Важно то, какие действия можно совершать над объектом, и какими свойствами он обладает. Метод представляет собой действие, выполняемое над объектом.

Синтаксис применения метода:

Объект. Метод.

Application. Quit – метод Quit (закрыть) закрывает приложение Application.

Метод можно применить ко всем объектам семейства.

Worksheets («Лист 1»). ChartObjects. Deletе. – удалить все диаграммы с рабочего листа Лист 1, где ChartObjects – семейство диаграмм.

Свойства.

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

Синтаксис установки значения свойства:

Объект. Свойство = Значение Свойства.

Application. Caption = «Пример» – изменяется заголовок окна Excel посредством задания свойства Caption объекту Application.

Свойство можно изменять сразу у всех объектов семейства:

Worksheets. Visible = False - объекту Visible (видимость) дается значение

False (ложь) и все рабочие листы активной книги (семейство объектов Worksheets) скрываются.

Среди свойств особое место занимают свойства, возвращающие объект:

ActiveWindow – возвращает активное окно Excel.

ActiveWorkbook – возвращает активную рабочую книгу активного окна Excel.

ActiveSheet – возвращает активный лист активной рабочей книги.

ActiveDialog – возвращает активное диалоговое окно активного рабочего листа.

ActiveChart – возвращает активную диаграмму активного рабочего листа.

ActiveCell – возвращает активную ячейку активного рабочего листа.

 
 


ActiveCell

ActiveWindow. ActiveCell

Application. ActiveWindow.ActiveCell

- эти определения эквивалентны.

Событие.

Событие представляет собой действие, распознаваемое объектом (щелчок мыши, нажатие клавиши и т.д.), для которого можно запрограммировать отклик. События возникают в результате действий пользователя или программы, или же они могут быть вызваны системой.

Суть программирования в VBA заключается в этих двух понятиях: событие и отклик на него. Если пользователь производит какое-то воздействие на систему, скажем нажимает кнопку, тогда в качестве отклика выполняется код созданной пользователем процедуры. Таким образом, действие, происходящее в системе, является событием, а отклики на них – процедурами. Этот специальный вид процедур, генерирующих отклик на событие, называется процедурами обработки событий. В целом, программирование на VBA состоит в создании кода программ, которые генерируют прямо или косвенно отклики на события.

Переменная – это такая часть программы, которая имеет имя и значение. Имя переменной уникально и неизменно, а значение может меняться в процессе выполнения алгоритма. Имя переменной – это строка символов, которая идентифицирует (англ.identify – распознавать, устанавливать идентичность) переменную в программе.

Имя переменной – идентификатор.

Допустимые имена:

1. Длина не превосходит 255 символов.

2. Имя не может содержать точек, пробелов и следующих символов: %, @, &, !, #, $.

3. Имя может содержать любую комбинацию букв, цифр, символов, но начинается с буквы.

4. Имя не должно быть ключевым словом VBA.

Ключевое слово языка – зарезервированное (служебное) слово. Хотя регистр букв в имени не играет никакого значения, но предпочтительно выделение смысла переменной:

Процентнаяставка – ПроцентнаяСтавка

Х-назнач – Х-НазНач.

Значение переменной – это данные, которые хранятся и обрабатываются системой VBA. Хранятся и обрабатываются данные по-разному, что зависит от принадлежности данным определенному типу.

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

В языке VBA переменная имеет один из 15 типов:

1. Короткое целое число (Byte) – размер (байт) 1, значение 0-255.

2. Логический (Boolean) – 2 байта, значение True, False.

3. Целое число (Integer) – 2 байта.

4. Длинное целое число (Long) – 4 байта.

5. Десятичное число обычной точности (Single) – 4 байта.

6. Десятичное число двойной точности (Double) – 8 байт.

7. Десятичное протяженное число (Currency-денежный) – 8 байт. Значение этой переменной является число, имеющее до 15 знаков слева от десятичной точки и до 4 знаков справа (обеспечивает точность 1 копейки).

8. Масштабируемое целое число (Decimal) – 14 байт.

9. Дата (Data) – 8 байт (информация о дате).

10. Объект (Object) – 4 байта (любой указатель объекта) ссылка на объект, в частности на элемент управления экранной формы.

11. Строка переменной длины (String) – 10 байт + длина строки.

12. Строка постоянной длины (String) – длина строки

13. Произвольное значение (Variant) – 16 байт – числовыеподтипы: переменная может иметь любой тип.

14. Строковые подтипы (Variant) – 22 байта + длина строки.

15. Тип данных, определяемый пользователем (с помощью ключевого слова Type) – объем определяется элементами.

Форма записи значения с использованием буквы Е:

0.000005 – 5Е-6

47000000 – 4.7Е+7

Символы @ # $ % & ! – используются в качестве суффиксов переменных различных типов.

Объявление типа переменной.

Объявление типа – установление границ значений переменной, которые определяются ее типом. Если тип не объявлять, то он по умолчанию в VBA принимается за Variant.

Способы объявления типа:

1. С помощью суффикса

Integer - % Примеры:

Long - & My-name$

Single - ! J255%

Double - # X!

String -$ M_M_M_#

Currency - @..

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

2. Объявление с помощью оператора описания переменной. В начале текста программного кода пишется строка со следующим синтаксисом:

Dim ИмяПеременной [As ТипПеременной]

Dim, As – ключевые слова VBA, с помощью которых записывается данный оператор описания переменной. Назначение этого оператора – объявить переменную, то есть задать ее имя и ее тип.

ИмяПеременной (без суффикса) – по изложенным правилам.

ТипПеременной – от 12 перечисленных ключевых слов.

Скобки [ ] используют в записи для обрамления конструкций, которые могут отсутствовать. Вместо конструкции «ИмяПеременной As ТипПеременной» после слова Dim можно через запятую записать несколько таких конструкций:Dim X As Single, I255 As Integer, M_M_M As

Double Dim X,Y,Z

Для типа String после этого слова можно указать, какова будет фиксированная длина строки – значение этой переменной:

Dim ИмяПеременной As String * ДлинаСтроки

Dim Telephon As String * 15

«8(095)301-44-37» – номер телефона.

3.Объявление с помощью оператора объявлений типа.

В начале программного кода:

ОператорОбъявленияТипа СписокИнтерваловИмен.

ОператорОбъявленияТипа: - одно из 11 ключевых слов:

Тип переменнойОператор объявлений типа

Integer % DefInt

Long & DefLng

Single ! DefSng

Double # DefDbl

Currency @ DefCur

String $ DefStr

Byte DefByte

Boolean DefBool

Date DefDate

Object DefObj

Variant DefVar

СписокИнтерваловИмен – это один или несколько интервалов имен – пар букв вида: Буква1 – Буква 2. Все переменные, имена которых начинаются с буквы, находящейся в данном интервале, будут иметь объявляемый тип.

DefInt A-F, i-j, P-S/

Таким образом: abba, Car, j255, Squa_12 – тип Integer.

Присвоение переменной значения.

[Let] ИмяПеременной = ЗначениеПеременной.

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

Две категории операторов:

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

Функциональные операторы – встроенные в язык программы функции и процедуры, с помощью которых производятся важные и распространенные действия, например: ввод и вывод данных, математические функции и т.п.

Синтаксис (синтаксическое правило) для оператора присваивания:

[Let] ИмяПеременной = ЗначениеПеременной.

Var1% = 32000

Var2& = -2000000000

Var3! = 9E-30

Var4# = Var3!

 

Var4# = 9e-30 – Верно

Var1% = 33000 – ошибка

Var2& = -3000000000 – ошибка

Var3! = Var4# - ошибка.

 

Вычисление выражений.

Чаще всего в операторе присваивания присутствуют так называемые арифметические выражения. Арифметическое выражение – это последовательность чисел, констант, переменных, функций и арифметических выражений, заключенных в круглые скобки, которые соединены между собой знаками арифметических операций (их 8 штук):

Операция Описание операции

А^В Возведение А в степень В

-А Отрицание А

А*В А умножается на В

А/В Деление А на В

А\В Целая часть от деления А на В

А Mod В Остаток от деления А на В

А+В Сложение А с В

А-В Вычитание В из А

Переменные, входящие в выражение, должны иметь численные значения.

Функции, входящие в выражение, также должны иметь численные значения.

Говорят, что функции возвращают определенные значения.

Константы – это величины, значение которых не могут меняться: синтаксис константы – Const ИмяКонстанты = ЗначениеКонстанты.

Кроме объявленных констант можно использовать системные, встроенные константы – например, номера цветов в графических методах – vbRed – номер красного цвета, vbWhite – номер белого цвета, их номера – ключевые слова в VBA.

Функции.

Функция одного аргумента – это правило, которое ставит в соответствие одному аргументу из оьласти его допустимых значений ровно одно значение функции. ИмяФункции (АргументФункции).

Функция неполных аргументов: ИмяФункции (СписокАргументовФункции) через запятую.

Встроенные функции.

1. Математические функции:

Abs(x) - êxú.

Cint (x) – целое, ближайшее к х.

Fix (x) – целое, ближайшее к числу х без дробной части.

Int (x) – наибольшее целое, не превышающее х.

Sqr (x)

Sin (x)

Cos (x)

Tan (x)

Ath (x).

2. Системные функции – InputBox, MsgBox.

MsgBox (message, i, title)

I 0 OK OK

1 OK, Cancel OK, отмена

2 Abort,Retry,Ignore Стоп,Повтор,Пропустить

3 Yes,No,Cancel Да,Нет,Отмена

4 Yes,No Да,Нет

5 Retry,Cancel Повтор,Отмена.

 

I=Msg i=1 OK OK

2 Cancel Отмена

3 Abort Стоп

4 Retry Повтор

5 Ignore Пропустить

6 Yes Да

7 No Нет

 

Синтаксис:

InputBox (Применение [,Заголовок][,НачальноеЗначение]

Fam$=InputBox(«Введите оператор фам.», «Ввод списка студентов», «Сидоров»).

I=MsgBox (Текст[,Опция][,Заголовок]) – возвращает i.

Или MsgBox Текст[,Опция][,Заголовок]).

Текст – до 1024 символов – можно разбить на «порции», вставляя символы переноса строки и ВК. Например:

Строка1$&Chr(13)&Chr(10)&Строка2&.

13 и 10 – коды ASCII символов переноса строки и ВК.

Окно сообщения содержит и дополнительную информацию , если [Опция] – аргумент ОР=Ор1+Ор2. Ор1 определяет вид пиктограммы, которая помещается в Окно Сообщения:

Критическое сообщение Ор1

вопрос 32

предупреждение 48

информация 64.

Ор2 определяет набор кнопок в Окне Сообщений:

Ор2 Набор кнопок

0 ОК

1 ОК Отмена

2 Стоп Повтор Пропустить

3 Да Нет Отмена

4 Да Нет

5 Повтор Отмена









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2018 zdamsam.ru Размещенные материалы защищены законодательством РФ.