Теоретические сведения. Программа, написанная на любом языке программирования
Программа, написанная на любом языке программирования, представляет собой некий набор инструкций (команд), описывающий процесс выполнения алгоритма решения задачи.
Команду можно пометить номером (целым числом: 10, 20, 35 и т.п.) или меткой. Метка – это произвольное обозначение, которое начинается с латинской буквы и заканчивается двоеточием, например: а1:, ВС400:, vivod: - и т.п. С помощью номера или метки можно ссылаться на помеченную команду в других командах. В среде VBA все строки (как в старых версиях) нумеровать необязательно.
Команды записываются в строках текстового файла. Как правило, в одной строке записывают одну команду (такую программу легче читать и проверять), однако в некоторых случаях для экономии места можно в одной строке записать несколько команд. Команды, записываемые в одной строке, отделяются одна от другой двоеточием, например:
А = 5 : В$ = «Символ Т» : rm = 1+exp(5.2)
Любую команду в программе можно снабдить поясняющим текстом – комментарием, который можно записать двумя способами:
1) С помощью оператора REM:
REM произвольный_текст
2) С помощью апострофа’:
’ произвольный_текст
VBA при исполнении программы игнорирует комментарии.
Алфавит (набор символов) языка VBA включает:
- все латинские прописные и строчные буквы;
- арабские цифры (0-9);
- служебные знаки.
Служебные знаки используются в качестве знаков операций (+,-,*,:,= и т.д.), специальных символов (. , : ; ?) и суффиксов.
Данные можно представлять переменными и константами.
Переменная– это величина, которая в процессе выполнения программы может менять свое значение.
Имя переменной – это произвольный набор символов, который может содержать от 1 до 40 символов, причем первый символ должен быть латинской буквой, а остальные – латинскими буквами или цифрами.
Константа(числовая или символьная) – это величина, которая не меняет своего значения в ходе программы. Значения констант записываются явно – числом или строкой символов, или с помощью специального оператора, например:
a% = 1.2 : z$ = “Москва – Париж” или CONST P3 = 60, n% = 12
CONST имя_ константы = значение
Необходимо помнить, что значения символьных констант заключаются в кавычки.
В Visual Basic переменные хранят информацию. При их использовании Visual Basic резервирует область памяти в компьютере. Имена переменных могут достигать 255 символов в длину. Начинаются они с буквы, за которой могут следовать другие буквы, цифры или символы подчёркивания. Регистр символов значения не имеет. В качестве имён новых переменных нельзя использовать зарезервированные слова. Например: Print. Однако такие слова могут присутствовать как часть имени переменной, например PrintIt.
Visual Basic работает с 14-стандартными типами переменных, кроме того программист может определить собственный тип данных. Основными из них являются:
String - строковые переменные хранят символы. Один из способов обозначить данный тип переменной состоит в добавлении символа «$» к концу его имени. Например - АВС$. Такая переменная может содержать до 2 млрд. символов.
Integer - целочисленные переменные могут хранить только относительно небольшие целые числа в диапазоне от – 32768 до + 32767. Для обозначения такого типа используется символ «%».
Например: А%=5.
Long Integer - в таких переменных хранятся целые значения от – 2,15* 109 до +2,15* 109. Обозначается символом «&». Например: В&=1234567
Single Precision- идентификатор для данных чисел является символ «!». Данный тип позволяет хранить дробные числа с точностью до 7 знаков. Это означает, что если получается результат «12345678.97» то часть «8.97» не является точной. Результат может быть равен, к примеру «12345670.01».
Действия выполняются медленнее, чем с целочисленными переменными. Диапазон от -3,4*1038 до -1,4*10-45 для отрицательных чисел и от 1,4*10 –45 до 3,4*1038 для положительных.
Double Precision- переменные такого типа позволяют хранить числа с точностью до 16 цифр и длинной до 300 символов. Идентификатором является символ «#». Скорость вычисления с ними относительно не большая.
Currency - он создан для того чтобы избежать ошибок при преобразовании десятичных чисел в двоичную систему и наоборот. Данный тип может иметь до 4 цифр после запятой и до 15 перед ней. Внутри данного диапазона вычисления будут точными. Идентификатор представляет собой «@».
Date- этот тип данных позволяет хранить значение времени и даты в промежутке от полуночи 1 января 100 года до полуночи 31 декабря 9999 года. Такие значения в тексте программы обозначаются символами «#».
Например - Millenium = # January 1, 2001#
Byte - этот тип предназначен для хранения целых чисел от 0 до 255. Его использование позволяет сильно экономить оперативную память (1 байт) и уменьшить размер массивов.
Boolean - булев тип данных может хранить только два значения: True либо False.
Variant- может содержать данные любого типа. Visual Basic автоматически производит необходимые преобразования данных. Использование такого типа как Variant замедляет работу программы, так как требует время и ресурсы для операций преобразования типов.
Большинство людей предпочитают не использовать идентификаторы для обозначения переменных. Вместо этого они используют оператор Dim, такая операция носит название - объявления. Например:
Dim A As Integer
Объявления переменных можно комбинировать в одной строке.
Dim A As Integer, Name As Integer
Общей ошибкой является использование следующего выражения:
Dim X, Y, Z As Integer
В предположение того, все переменные будут целочисленные. Фактически X и Y будут объявлены как Variant и только Z как Integer. Чтобы избежать этого, необходимо каждый раз использовать идентификатор типа. При присвоении переменной типа Variant, можно использовать оператор - Dim без приставки - AS. Например:
Dim FOO
Одной из наиболее общих ошибок в программе является использование необъявленных переменных. Проблема состоит в том, что Visual Basic позволяет создать переменную, как только она один раз встречается в программе. Если перепутать имя переменной Visual Basic создает новую с похожим именем и присваивает ей значение по умолчанию, что тут же приводит к ошибке. Эту ошибку трудно обнаружить, поскольку имена переменных очень похожи.
Простейший способ избежать подобной ошибки состоит в принудительном объявлении всех переменных. Visual Basic при ошибке в имени выдаёт сообщение. В Visual Basic предусмотрена такая возможность, но по умолчанию она не используется. Оператор, необходимый для этого называется Option Explicit.
Для общей проверки переменных в программе необходимо оператор Option Explicit разместить в раздел General.
Для того чтобы разместить данный оператор в разделе General необходимо:
1) Открыть окно Code
2) Выбрать объект General из списка объектов в окне Object
3) Выбрать Declaration из списка Procedure
4) Ввести Option Explicit.
Программисты применяют термин - область видимости, когда хотят сказать о возможности использования переменной из одной части программы в другой её части. В Visual Basic переменные объявление внутри процедуры является изолированными друг от друга. В терминах программирования это означает, что данные переменные являются локальными.
Кроме того, Visual Basic позволяет объявить переменные, которые будут доступны для всех процедур формы. Такие переменные называют глобальными переменными уровня формы, как и оператор Option Explicit - объявление переменных уровня формы происходит в разделе Declaration