Арифметические операции
Основы программирования на VBA
Visual Basic For Application (VBA – Visual Basic для приложений) реализован в четырех важнейших компонентах пакета Microsoft Office 97/2000. VBA представляет собой полностью унифицированный язык программирования и почти полностью унифицированную среду разработки.
VBA включает в себя основные конструкции языка Visual Basic для Windows, встроен в MS Office и приложения Office. VВА является общим для всех приложений MS Office. В VBA применяется объектно - ориентированный подход к разработке приложений. Каждое приложение – Word, Excel, Access, PowerPoint и др.- дополняет средства VBA новыми функциональными возможностями с помощью объектов, свойств и методов, присущих этому приложению. Как объектно – ориентированный язык программирования VBA использует следующие основные понятия: объект, свойство, метод, событие, класс и семейство объектов. Введем определения.
Объект – это объединение данных с кодом, предназначенным для их обработки. Объекты применяются в программировании, потому что они представляют предметы, о внутренней организации которых и о том, как они сделаны, программисту не обязательно даже знать, но он может ими пользоваться и управлять.
Свойства – это параметры объекта, которые ему присущи. Они характеризуют объект. Все свойства объекта имеют свои имена. Различные объекты характеризуются различными свойствами, например, объект «линия» характеризуется длиной и цветом, а объект «окружность» радиусом и цветом. Синтаксис задания свойства объекту имеет вид
ОБЪЕКТ. СВОЙСТВО = ЗначениеСвойства.
Например,
……………………………………….
‘изменить имя текущего листа
ActiveSheets . Name = “Январь”
………………………………………..
Метод – это программа, которая воздействует на объекты и их параметры. С помощью методов можно, например, закрыть объект, удалить его, или показать на экране. Синтаксис записи такой:
ОБЪЕКТ.МЕТОД
Например,
………………………………………
‘удалить лист
WorkSheets(“Обзор”) . Delete
………………………………………
Событие – это действие, распознаваемое объектом, для которого можно запрограммировать отклик (например, щелчок мышью по строке меню или нажатие клавиши). При наступлении события происходит активизация метода, т.е. начинают выполняться связанные с объектом программы и функции.
Класс – это шаблон, на основе которого во время выполнения программы создается объект. Класс определяет свойства и методы объекта. Если взять пример из жизни, то в качестве класса объектов можно принять школьный класс, где объекты – это учащиеся, каждый со своими , присущими только ему свойствами. Также каждому объекту в классе присущи одно или несколько одинаковых свойств, например – возраст, по которому и определяется принадлежность объекта к классу. Объект, который создается на основе класса, называют экземпляром класса.
Итак, все приложения Microsoft Office имеют макроязык и средство записи макросов. Все макрокоманды VBAвключаются в проекты, которые могут принадлежать различным документам. При создании проекта используется один из трех методов:
запись макроса при помощи макрорекодера, с последующим его редак- тированием,
создание макроса в редакторе VВА,
создание проекта в редакторе VВА.
Код VВА
Код VВА хранится в проектах. Проекты содержат модули, а модули включают процедуры и функции. Процедуры и функции содержат описания и инструкции на языке VBA.
Каждое приложение MS Office хранит проекты по своему:
Word сохраняет проекты в шаблонах документа (DOT) и в документах (DOC).
Excel сохраняет проекты в рабочих книгах (XLS).
Access сохраняет проекты в файлах базы данных (MDB).
PowerPoint сохраняет проекты в презентациях (PPT).
Для программирования на VBA нет необходимости в обязательном порядке устанавливать какую-либо версию транслятора VB (Visual Basic). Вполне достаточно, если на компьютере будет установлен Microsoft Office 97 и выше. Для создания программы, которая называется макросом, необходимо загрузить Microsoft Word или Microsoft Excel. Далее: -Сервис-Макрос-Редактор Visual Basic. В окне проекта первой строкой записывается оператор объявления процедуры (программы )
Sub имя()
Это стандартный заголовок макроса. Завершающей строкой процедуры является строка
End Sub
Для запуска программы из редактора - клавиша F5. Для запуска программы из документа — alt+F8.
Элементы языка VBA
При написании кода VВА следует знать некоторые правила или соглашения, которых следует придерживаться, чтобы избежать ошибок выполнения кода. Первое соглашение — это соглашение по именам. Именовать нам придется переменные, константы, процедуры, функции, объекты и т.д., поэтому определим правила, которым будем следовать:
Длина имен не должна превышать 255 символов.
Имена должны начинаться с буквы и могут содержать комбинацию букв, цифр и символов.
Имена не должны совпадать со стандартными именами Visual Basic.
Имена не должны включать точек, пробелов и следующих символов:! @ # $ %. Символ пробела можно заменить символом подчеркивания _.
Регистр букв в именах не имеет значения, т.е. следующие имена РRIСЕ, Рriсе и price — эквивалентны.
Примеры правильной записи имен:
Н123, Price, Sale
Неправильно записанные имена:
21days начинается с цифры;
Price Sale содержит символ пробела;
Dim совпадает со служебным словом языка.
Дадим также несколько определений элементам VBA.
^ Ключевые слова — это слово или символ, которые являются элементом языка программирования Visual Basic, это может быть инструкция, имя функции, оператор. Например: SUB, DIM, CONST.
Выражение — это комбинация ключевых слов, операций, констант. Резуль- татом выражения может быть строка, логическое значение или число. Примеры выражений: Х+3; Z<>0; 11.
Операторы используются для объединения простых выражений в более слож- ные. Операторы VBA выполняют арифметические, логические операции, а также операции сравнения и конкатенации (сцепления строк).
Лекция 2.Типы данных языка VBA
Visual Basic имеет 11 встроенных типов данных:
Тип данных | Размер в байтах | Разрядность цифр | Диапазон значений | |
Boolean | 2 | 1 | логический | True или False (да - нет, включен - отключен) |
Integer | 2 | 5 | целое | От (-32768) до 32768 |
Long | 4 | 10 | длинное целое | От (-2147483648) до 2147483647 |
Single | 4 | 7 | действительное одинарной точности | От (–3.402823Е+38) до (–1.401298Е-45) и от 1.401298Е-45 до 3.402823Е+38 |
Double | 8 | 15 | действительное двойной точности | От ± 1.79769313486232Е+308 до ± 4.94065645841247Е-324 |
Currency | 8 | 19 | денежный | От (–922337203685477.5808) до 922337203685477.5807 |
Date | 8 | - | для дат и времени | От 01.01.100 до 31.12.9999 |
String | 1 | +1 | символьный | на любой символ - От 0 до 65535 символов |
Object | 4 | - | Любой объект | |
Array | Определяется количеством и размером элементов | - | массивы | - |
Variant | Определяется записанными данными | - | Любой из встроенных типов данных |
Тип данных определяет, каким образом задаваемая величина хранится в памяти компьютера; сколько разрядов может содержать присваиваемое ей значение; насколько оно может быть велико и может ли иметь дробную часть.
Boolean использует для хранения значения 2 байта памяти – как и тип Integer, хотя может принимать значения либо 0 (ложь - False), либо (True – правда). Для хранения этой информации достаточно 1 бита, а занимается 16 бит.
Integer предназначен для хранения смещенного целого числа, т.е. с указанием знака числа “+” или “-”. Из 16 бит 1 используется для хранения знака, а остальные – для значащих цифр.
Long используется для хранения смещенного целого числа с двойным разрешением по сравнению с Integer и, соответственно, занимает в два раза больше памяти. Из 32, занимаемых в памяти бит, 1 предназначается для хранения знака, 31 – для хранения самого числа.
^ Double– предназначен для хранения действительного числа с плавающей точкой двойной точности по отношению к Single. Для хранения требует вдвое больше памяти, но и диапазон значений расширяется в 8 раз.
Currency предназначен для хранения действительного числа с фиксированной точкой, которая всегда располагается между 4 и 5 цифрами справа.
ПРИМЕР: 0.0021 46.7280 Этот тип специально предназначен для получения минимальных ошибок округления и чаще всего используется в бухгалтерских расчетах.
Dateпредназначен для хранения дат и времени с точностью до секунды.
Машиной даты записываются следующим образом: целая часть – количество дней, прошедших от начала отсчета 01.01.1900, а дробная часть – время.
Пример: 05.03.1994 18.00 запишется как 34398.75. При работе с Excel следует помнить, что в нем диапазон используемых дат – от 01.01.1900 до 31.12.2078. Сам VBA позволяет оперировать датами в диапазоне 01.01.100 – 31.12.9999
String используется для хранения текста по одному байту на символ, добавляя к этому количеству еще один – для обозначения конца строки.
Object предназначен для ссылок на любой объект VBA
^ Arrayопределяет индексный список величин одного и других типов - массив.
Variant используется по умолчанию. Он задается VBA, если вы сами не укажете этот тип. При этом производится проверка значения, вводимого в память и его идентификация, поэтому резко возрастает и время выполнения программы, и объем памяти.
Переменные
Переменная — это область памяти, предназначенная для временного хранения данных, и которой присвоено имя. Содержимое переменной может быть изменено в процессе выполнения программы. Данные, хранимые в переменных, могут быть различного типа: числовые данные, строковые, логические и т.д. Тип данных определяет тип переменной.
^ Область определения переменной определяет, где можно использовать переменную. В VВА есть три уровня определения переменных.
Уровень процедуры. Переменные используются только в процедуре, в которой они описаны. Переменная описывается с помощью инструкции DIM, размещенной в теле процедуры.
Например:
Dim x As Single ‘переменная x описана как действительная одинарной точности
Dim I As Integer ‘переменная I описан как целая
^ Уровень модуля. Переменные используются только в процедурах модуля, в которых они описаны, но не в других модулях проекта. Переменная описывается с помощью инструкции DIM, размещенной в разделе описаний модуля.
^ Общие переменные.Переменные используются во всех модулях и процедурах проекта. Переменная описывается с помощью инструкции PUBLIC, размещенной в разделе описаний модуля.
Переменные уровня процедуры сохраняют свое значение лишь при выполнении процедуры, при выходе из процедуры значение переменной теряется. Если процедура вызывает другие процедуры, переменная сохраняет свое значение, пока не закончится выполнение и этих процедур. Если переменная уровня процедуры описана с помощью ключевого слова Static, она сохраняет свое значение до тех пор, пока программа выполняется в каком-либо модуле. По завершении работы всей программы переменная теряет свою область определения и свое значение. Ее время жизни совпадает с временем жизни переменной уровня модуля.
Если переменная не описана, то ей присваивается тип Variant при вводе имени переменной.
Константы
Константа—это именованная область памяти для хранения данных, изменение которых во время работы программы не допускается. Константа может иметь числовой, логический или строковый тип.
Константа описывается ключевым словом CONST, и при описании константы требуется присвоить ей значение. Попытка изменить в ходе выполнения программы значение константы вызывает ошибку.
Примеры описания констант:
Const Pi as Double = 3.1415926 ‘описана константа Pi
Const Name = "Visual Basic" ‘описана константа строкового типа.
Операции
Операции производятся над выражениями, переменными, константами, литералами.
Арифметические операции
В качестве арифметических операций в языке Visual Basic применяются операции, описанные в таблице в порядке убывания приоритета.
Математические и строковые операции VBA в порядке убывания приоритета Операция | Выполняемое действие |
^ | Возведение в степень |
- | Отрицание |
? | Умножение |
/ | Деление 1 |
\ | Целочисленное деление |
Mod | Определение остатка от деления |
+ | Сложение |
- | Вычитание |
& | Объединение (конкатенация) строк |
Правила записи арифметических выражений в языке Бейсик.
а) Все арифметические операции записываются в одну строку. Если в числителе или знаменателе дроби стоит многочлен, его следует заключить в скобки.
b) При записи десятичных дробей для отделения целой части от дробной используется десятичная точка.
с) Знаки арифметических операций опускать нельзя.
d) Если в десятичной дроби нет целой части, то ноль перед десятичной точкой можно опустить.
Арифметические операции выполняются слева направо в порядке приоритета. Для изменения естественного приоритета операций применяются скобки (так же, как в арифметике). В Бейсике существуют стандартные функции, при применении которых не требуется никаких дополнительных библиотек или определений.
Дата добавления: 2016-04-02; просмотров: 1725;