Главная страница

Информатика VBA. Учебное пособие по дисциплинам Информатика иИнформационные технологии


Скачать 1.05 Mb.
НазваниеУчебное пособие по дисциплинам Информатика иИнформационные технологии
АнкорИнформатика VBA.pdf
Дата28.01.2017
Размер1.05 Mb.
Формат файлаpdf
Имя файлаИнформатика VBA.pdf
ТипУчебное пособие
#900
страница2 из 11
1   2   3   4   5   6   7   8   9   10   11
2
Основные понятия VBA. Линейные алгоритмы
Программа на алгоритмическом языке представляет собой по- следовательность операторов – команд языка для записи алгоритма поставленной задачи, и комментариев для пояснения смысла про- граммы.
Основные символы алгоритмического языка (образующие его алфавит):
- строчные и прописные латинские буквы (A,B,...,z);
- строчные и прописные буквы русского алфавита (А, Б,...,я));
- цифры (0,1,...,9);
- символ пробел и специальные символы: = + –*/^ () $% >',": ! ;< : #_
В VBA строчные и прописные буквы воспринимаются как оди- наковые символы (в некоторых других языках программирования
(C
++, С#– строчная и прописная буква имеет два различных значе- ния).
Цифры входят в обозначения числовых констант; из букв ла- тинского алфавита составляют ключевые слова языка, определяющие названия операторов и их параметров; буквами (русские и латинские) с цифрами обозначают имена переменных и функций. Специальные символы используют как знаки операций, разделителии в других случаях. Все символы, образующие алфавит языка программирования
VBA
, можно использовать для записи комментариев и, заключая их в двойные кавычки ("), как символьные константы.
На языке VBA операторы программы начинают с любой пози- ции строки. Для продолжения на следующую строку за незакончен- ным оператором надо ставить символы переноса « _» (символ пробе- ла и символ подчеркивания). Если в строке размещают несколько операторов, то их отделяют друг от друга символом «:».
Комментарии для пояснения текста программы могут занимать

17 целую строку и начинаются с ключевого слова REM или символа апостроф («'»). Комментарий, начинающийся с символа «'», может начинаться с любого места строки. Удобно использовать коммента- рий в начале программы для указания её названия и назначения.
Комментарии не имеют переносов.
Пример:
REM
Это комментарий ' Это тоже комментарий
2.1
Элементы языка VBA
При написании программы на языке VВА следует знать некото- рые правила или соглашения, которых следует придерживаться. Пер- вое соглашение — это соглашение по именам. При создании имен переменных, констант, процедур, функций, объектов и т.д., следует выполнять следующие правила:
- длина имени не должна превышать 255 символов;
- имена должны начинаться с буквы и могут содержать комбинацию букв, цифр и символа подчеркивание;
- имена не должны совпадать со стандартными именами Visual
Basic;
- имена не должны включать точек, пробелов, специальных симво- лов и символов арифметических действий. Символ пробела можно заменить символом подчеркивания «_».
Регистр букв в именах не имеет значения, т.е. следующие имена
РRIСЕ, Рriсе и price — эквивалентны. В русифицированных версиях пакета Microsoft Office в именах допустимо использовать символы кириллицы. Однако, помимо не удобства ввода текста программы – необходимость постоянно переключать регистры клавиатуры, это может привести к трудно находимым ошибкам, т.к. некоторые сим-

18 волы латинского и русского алфавитов имеют одинаковое начерта- ние, но разные числовые коды.
Примеры правильной записи имен:
G123, Price, V.
Примеры неправильно записанных имен:
12days – имя начинается с цифры;
Price Sale – имя содержит символ пробела;
Dim – имя совпадает со служебным словом языка.
Ключевые слова — это слова или символы, которые являются элементом языка программирования Visual Basic, это может быть ин- струкция, имя функции, оператор. Например: SUB, DIM, CONST.
У оператора программы на VBA может быть числовая или тек- стовая метка, которая набирается перед первым символом оператора.
Цифровая метка должна отделятся от оператора как минимум одним пробелом, а символьная метка должна заканчиваться двоеточием.
Пример 2.1. Алгоритм вычисления объема (V) конуса, с радиу- сом основания R=3 см и высотой H=5 см в виде блок-схемы может быть записан следующим образом.
R=3
H=5 3
2
R
H
V


=
π
Печать V
Начало
Конец

19
Ниже приводится текст программы на VBA для реализации это- го алгоритма.
Sub Primer 2_1()
REM
Программа вычисления объема конуса
Dim R As Single
, Н As Single ' описание типов
Dim V As Single
' используемых переменных
R=3.0 : H=5.0 '
задание исходных данных
V=H*3.141593*R*R/3.
' вычисление объема конуса
MsgBox
"Объем конуса рамен" & str(V)' вывод результата на экран
End Sub
2.2
Типы данных VBA
Данные в зависимости от их свойств, области значений и опера- ций с ними подразделяются на типы. Тип данных (data type) – указы- вает, что могут хранить данные: целое или вещественное число, стро- ку, дату и т. д. Базовые типы данных VBA приведены в таблице 2.1.
Таблица 2.1 - Типы переменных VBA
Тип переменной
Занимаемый размер памяти
(байт)
Диапазон
1 2
3
Byte
(короткое целое)
1
Целые положительные числа от 0 до 255
Boolean
(логический)
2
True
(истина) или False (ложь)
Integer
(целое)
2
От -32 768 до 32 767
Long
(длинное целое)
4
От -2 147 483 648 до 2 147 483 647
Single
(число с пла- вающей точкой)
4
По абсолютной величине от 1,401298·10
-45
до 3,402823·10
+38

20
Продолжение таблицы 2.1 1
2 3
Date
(дата)
8
От 1 января 100 г. до 31 де- кабря 9999 г.
Array
(массив)
Зависит от размера массива и типа элементов массива
Double
(число с пла- вающей точкой двой- ной точности)
8
По абсолютной величине от
4,94065645841247·10
-324
до 1,79769313486232·10
+308
Object
(объект)
4
Любой определенный объект
String
(строка переменной длины)
10
От 0 до 2х 10 9
+ длина строки
Currency
(денежный)
8
От -922 337 203 685 477,5808 до 922 337 203 685 477,5807
Variant
(вариант)
Зависит от содержимого пе- ременной
VBA имеет шесть различных численных типов данных: Byte, In-
teger, Long, Single, Double
и Currency. Численные типы данных ис- пользуются для хранения чисел в различных форматах, в зависимости от конкретного типа. Типы данных Byte, Integer, Long используются для хранения целых чисел в указанных диапазонах значений. При выходе их этого диапазона интерпретатор VBA генерирует сообще- ние о переполнении. Типы Single, Double предназначены для хране- ния чисел, в которых может быть дробная часть. Главное отличие данных этих типов заключается не в том, что порядок чисел типа
Double существенно больше, а в том, что мантисса числа типа Single
может хранить только 7 цифр, а числа типа Double хранят 15 цифр.

21
Пример.
В числе 123,0=0,123·10
+3
– мантисса числа состоит из 3 цифр
(123), а порядок числа равен «+3). В числе 0,00123=0,123·10
-2
– ман- тисса числа состоит из 3 цифр (123), а порядок числа равен «-2). Если присвоить объекту VBA типа Single число, мантисса которого со- держит в более 7 цифр, то объект сохранит только первые 7 цифр.
Так из числа 123456704,93 сохранится значение 123456700,0, из чис- ла 12345,670493 сохранится значение 12345,67.
Логические значения True и False называют булевыми (Boolean) значениями. Их название связано с именем английского математика
Джорджа Буля (George Boole 1815-1864), разработавшего систему ма- тематической логики. Тип данных Boolean требует для хранения двух байтов памяти, хотя может иметь только одно из двух значений: True
или False. В памяти ЭВМ логические значения хранятся либо в виде единицы, либо в виде нуля.
Любые текстовые данные, сохраняемые в программе VBA, на- зываются строками (strings). Строка может содержать текстовые сим- волы любых типов: буквы алфавита, цифры, знаки пунктуации или различные символы. Существуют две категории строк: строки пере- менной длины, размер которых растет или уменьшается, и строки фиксированной длины, размер которых всегда остается одним и тем же.
VBA использует тип Date, для хранения даты и времени. Тип
Date является типом последовательных дат (serial Dates). Последова- тельные даты сохраняют дату как число дней от заданной стартовой даты. Базовой датой является 30 декабря 1899. Отрицательные числа используются для определения даты ранее 30.12.1899, а положитель- ные – для определения дат после 30.12.1899. Число 0 представляет 30 декабря 1899 года. 1 января 1900 записывается числом 2 (1.1.1990 – это 2 дня после 30.12.1899), а число минус 1 (-1) определяет дату 29

22 января 1899 года (один день до 30.12.1899). Дробная часть числа типа
Date
определяет время суток в секундах.
Тип данных Variant – это особый тип данных, который может содержать данные любого типа, кроме типов, определенных пользо- вателем, строк фиксированной длины и данных типа Object. Тип
Variant
назначаетсядля всех объектов, тип которых не объявлен яв- но. Тип объекта Variant изменяется в зависимости от последнего присвоения. Тип Variant удобен, однако указание конкретного типа позволяет делать функции более быстрыми и надежными.
2.3
Константы VBA
Константами называются объекты, значения которых не могут быть изменены в процессе выполнения программы. Константа имеет тип и значение. Если сама форма записи определяет константу, то она называется литеральной константой (literal constants), потому что ли- теральное значение записывается непосредственно в кодпрограммы.
Константа, определяемая именем, называется именованной.
Целая литеральная константа представляет собой последо- вательность цифр без десятичной точки. Отрицательное число начи- нается со знака минус. Плюс для положительного числа можно опус- тить.
Примеры: 81 +2004 0 225 −13.
Если целая константа укладывается в диапазон от -32768 до
32767, то для ее хранения отводится 2 байта памяти и ей присваива- ется тип Integer. Если значение целой константы выходит за рамки этого диапазона значений, то для ее хранения отводится либо 4 байта памяти (тип Long), либо 8 байт памяти и ей присваивается тип Dou-
ble.

23
Вещественные константы представляются в ячейке памяти
ЭВМ единообразно, в виде мантиссы и порядка и могут принимать одну из двух форм:
- вещественная константа с фиксированной точкой;
- вещественная константа двойной точности.
Вещественная буквальная константа с фиксированной точ-
кой включает знак числа, последовательность цифр и десятичную точку (обязательно), отделяющую целую часть числа от дробной час- ти. Если мантисса заданной константы содержит меньше восьми цифр, то ей присваивается тип Single и для ее хранения отводится 4 байта памяти. Если в мантиссе константы больше семи цифр, то она хранится в 8-ми байтах памяти и ей присваивается тип Double.
Пример:
2,75 записывается 2.75 (тип Single);

0,1 записывается −0.1 или −.1 (тип Single);
13 записывается 13.0 или 13. (тип Single).
Число π можно записать как 3.141592653589793 и для хранения такого числа потребуется 8 байт памяти и тип Double.
Вещественная литерная константа двойной точности должна заканчивается символом решетка («#») и для ее хранения от- водится 8 байт памяти.
Пример. Скорость света 299800000 м/сек = 2,998×10 8
, задается числом 2.998E8, а в программе сохраняется как 299800000#.
Литеральные логические константы принимают одно из двух значений: истина или ложь. Истина записывается как TRUE ; ложь обозначается словом FALSE . Они занимают 2 байта памяти.
Литеральные символьные (текстовые, строковые) константы
включают последовательность символов, заключенную в ограничите- ли – двойные кавычки. Удвоенный ограничитель без промежуточных пробелов воспринимается как одиночный символ константы. Длина

24 константы равна ее количеству символов. Пустая строковая констан- та (называемая нулевой строкой – null string или empty string) обозна- чается двумя двойными кавычками, между которыми ничего нет ("").
Вся текстовая константа должна находиться на одной и той же стро- ке.
Пример.
Последовательность символов
Константа
Длина константы
Университет "Университет "
11
O'GENRY
"O'GENRY"
7
МГТУ "МАМИ"
"МГТУ ""МАМИ""′
11
Литеральные константы типа Date позволяют задать необхо- димую дату и время в привычном для человека виде. Константа типа
Date ограничивается с двух сторон символом решетка (#), внутри ко- торых информация задается в форматах, разрешенных в Excel для дат и времени.
Пример.
Константа #12/31/12# определяет 31 декабря 1912 года.
Константа #February 12, 2012 19:15# определяет 19 часов 15 минут 12 февраля 2012 года, а в программе сохраняется как
#2/12/2012 7:15:00 PM#.
Именованные константы (named constants) имеют собствен- ное уникальное имя, которое создается по правилам, описанным вы- ше. Конкретное значение именованная константа получает в операто- ре Const. Это значение не может быть изменено в процессе выполне- ния программ. Синтаксис оператора Const позволяет определять не только значение именованной константы, но и ее тип.
Пример.
Const pi = 3.141592653589793, text
="Начало"

25
При определении значений именованных констант в операторе
Const такого синтаксиса, тип констант определяется автоматически.
Данный оператор определяет именованную константу pi типа
VariantDouble, т.к. в мантиссе константы содержится 16 цифр, и тек- стовую константу text типа VariantString,содержащую 6 символов.
Синтаксис оператора Const позволяет задавать тип констант яв- но:
Const pi = 3.141592653589793 As Double , text="
Начало" As String
Этот оператор определяет именованные константы с теми же именами, но их типы определены явно – соответственно Double и
String.
Область действия именованных констант - именованные кон- станты можно объявлять в начале процедуры или в области объявле- ний модуля. Константа, объявляемая в процедуре, имеет область дей- ствия процедурного уровня, а константа, объявляемая в области объ- явлений модуля, – область действия модульного уровня и доступна в любой процедуре модуля.
Помимо именованных констант, тип и значение которых опре- деляет программист, VBA имеет несколько внутренних констант
(intrinsic constants
), называемых также предопределенными кон-
стантами (predefined constants). Внутренняя константа – это
именованная константа, которая была определена разработчиками
VBA и значение которой не может быть изменено в программе.
Имена внутренних константы начинаются с букв «vb» для ука- зания того, что они определяются языком Visual Basic for Applications или Visual Basic. За буквами «vb» следует мнемоническое название этой константы. Например, константа vbOKCancel имеет числовое значение, по которому функция MsgBox отображает в диалоговом окне кнопки OK и Cancel. Константа vbLf имеет числовое значение
13 и определяет символ конца строки. Внутренние константы Excel

26 начинаются с букв xl, чтобы было понятно, что они определяются приложением Excel. Описание внутренних констант VBA, исполь- зуемых в функции MsgBox, приведено в приложении Д.
2.4
Переменные VBA
Переменные - это объекты программы, которые могут прини- мать различные значения в процессе выполнения программы. Кроме значения и типа переменные имеют уникальное имя. Типпеременных
можно задать явно оператором DIM, либо переменная будет иметь тип Variant и необходимый тип переменная получит в процессе вы- полнения программы, когда ей присвоят какое либо значение. Следу- ет отметить, что явное определение типа переменной присваивает ей начальное значение «ноль» (либо «пустая строка», если это строковая переменная). Неинициализированная переменная с типом Variant или результат выражения, содержащий неинициализированную пе- ременную типа Variant, имеют неопределенное значение («Empty») и не могут использоваться в программе, пока им не присвоят какое либо значение.
Синтаксис оператора DIM:
DIM
имя_переменной As тип_переменной.
Допустимо в одном операторе присваивать типы нескольким пере- менным, задавая имена переменных и их типы через запятую.
Пример.
DIM X As Single , Y As Single , Kappa As Integer
После выполнения данного оператора переменные x и y полу- чают числовой тип Single и нулевые начальные значения, а перемен- ная с именем Kappa получает тип целого числа Integer и так же нуле- вое значение.
Результат работы следующего оператора
DIM x,y As Single

27 зависит от версии пакета Microsoft Office. В десятом офисе результат будет таким же, как написано выше. В версиях Microsoft Office более ранних версий, переменная x будет иметь тип Variant и неопреде- ленное значение Empty .
По умолчанию строковая или текстовая переменная (String) яв- ляется массивом переменной длины, который содержит символы.
Однако текстовая переменная может быть определена и фиксирован- ной длины. В следующем примере объявляется символьный массив размером в 16 символов:
1   2   3   4   5   6   7   8   9   10   11


написать администратору сайта