regeda_v_v_regeda_o_n_osnovy_programmirovaniya_na_vba
.pdfМинистерство образования и науки Российской Федерации ПЕНЗЕНСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
В.В. Регеда, О.Н. Регеда
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА VBA
Учебное пособие
Рекомендовано в качестве учебного пособия УМО вузов РФ по образованию в области энергетики для студентов, обучающихся
по специальности 180800 «Электрооборудование автомобилей и тракторов»
Пенза 2004
УДК 001.8 (083.95) А 22
Приводится обзор языков программирования. Изложены основные возможности языков программирования Turbo Basic и VBA для Word и Excel. Рассмотрены примеры создания с помощью VBA приложений с богатыми функциональными возможностями.
Методические указания подготовлены кафедрой «Электротехники и транспортного электрооборудования» и предназначены для лабораторных и индивидуальных занятий студентов специальностей 180800 и 230700 по курсу «Информатика».
Ил. 10, табл. 29, библиогр. 9 назв.
С о с т а в и т е л и: В. В. Регеда, О. Н. Регеда
Р е ц е н з е н т |
А. А. Данилов, зам. директора ФГУ |
|
Пензенского центра |
|
метрологии и стандартизации, |
|
доктор технических наук |
ВВЕДЕНИЕ
Программа – упорядоченная последовательность команд, необходимых для управления компьютером (ПК). Эти команды поступают на процессор как совокупность нулей и единиц, т.е. числами. Последователь-
ность чисел – машинный код.
Алгоритм – это точно определенное описание способа решения задачи в виде конечной последовательности действий. Для представления алгоритма в виде, понятном ПК, служат языки программирования, с помощью которых пишется программа. Затем программа с помощью транслятора либо переводится в машинный код, либо исполняется.
Языки программирования – это искусственные языки с ограниченным числом слов, значения которых понятно транслятору, и очень строгими правилами записи команд (операторов).
При нарушении формы записи программы возникают синтаксические либо логические ошибки. Поиск ошибок – тестирование, процесс устранения ошибок – отладка.
С помощью языков программирования создается текст программы. Чтобы получить работающую программу необходимо либо сразу перевести текст программы в машинный код (откомпилировать), либо сразу выполнять команды языка с помощью интерпретатора, который поочередно анализирует отдельные команды и затем сразу же выполняет их. После того как текущий оператор выполнен, интерпретатор перейдет к следующему. Такие программы работают медленно и не могут выполняться сами, отдельно от интерпретатора.
Компиляторы же полностью обрабатывают текст программы, просматривают его в поисках синтаксических ошибок и автоматически переводят его в машинный код. В результате получается компактная, быстрая «исполняемая» программа. Однако компиляторы неэффективны при работе с данными сложной структуры.
В реальных системах программирования перемещены обе эти технологии.
1. ЯЗЫКИ ПРОГРАММИРОВАНИЯ
1.1. Уровни и поколения языков программирования
Язык программирования низкого уровня – это ассемблер, который просто представляет каждую команду машинного кода, но не в виде чисел, а с помощью символьных, условных обозначений (мнемоник). Конкретной
компьютерной архитектуре соответствует свой язык ассемблера. Чаще всего их используют для написания небольших системных приложений (драйверов устройств).
Языки программирования высокого уровня значительно ближе и по-
нятнее человеку, чем ПК.
В настоящее время можно выделить 5 поколений языков программирования:
1)Начало 50-х годов – язык ассемблер.
2)Конец 50-х годов начало 60-х годов – символический ассемблер, в котором появилось понятие переменной.
3)В 60-х годах – универсальные языки программирования высокого уровня.
4)С начала 70-х годов до настоящего времени – проблемноориентированные языки, оперирующие понятиями узкой предметной области.
5)С середины 90-х годов – системы автоматического создания прикладных программ с помощью визуальных средств разработки без знания программирования. Инструкции вводятся в ПК в максимально наглядном и удобном виде, а затем автоматически формируется текст на универсальных языках программирования.
1.2. Технологии программирования
Различают алгоритмическое, структурное, событийноориентированное и объектно-ориентированное программирование.
Алгоритмические языки программирования представляют алгоритм
ввиде последовательности основных алгоритмических структур:
–линейных;
–ветвлящихся;
–циклических.
Алгоритм на выбранном языке программирования описывается с помощью команд описания данных, вычисления значений и управления последовательностью выполнения программы.
Основные элементы алгоритмического языка программирования:
1)Переменные и константы.
2)Арифметические операции, используемые для создания арифметических выражений.
3)Логические операции и выражения.
4)Указатели. В некоторых языках программирования возможно явное указание адреса физической памяти как в ассемблере.
5)Сложные данные (списки, деревья, …).
6)Массивы.
7)Описания переменных.
8)Операторы присвоения.
9)Комментарии.
10)Условные операторы.
11)Операторы цикла.
12)Операторы ввода-вывода.
Структурное программирование предполагает дополнительное использование подпрограмм, процедур и функций. Наличие подпрограмм позволяет вести проектирование и разработку приложений сверху-вниз – такой подход получил название – нисходящее проектирование. Сначала общая задача разбивается на глобальные подзадачи (модули). Затем каждый модуль разбивается на подпрограммы, которые, в свою очередь, могут содержать другие подпрограммы. Небольшие подпрограммы значительно проще отлаживать, а это повышает общую надежность всей программы. Кроме того, подпрограммы могут повторно использоваться, а это повышает производительность труда программистов.
Развитием идея нисходящего проектирования стало событийноориентированное программирование. Оно возникло в связи с широким распространением визуальных систем типа Windows, идеология которых основана на событиях. Структура программы при событийноориентированном программировании следующая: главная часть программы – один бесконечный цикл, который опрашивает Windows, следя за появлением новых сообщений. При обнаружении сообщения вызывается подпрограмма, отвечающая за обработку соответствующего события, а цикл опроса продолжается до получения сообщения «конец работы».
Применение структурного и событийно-ориентированного программирования существенно повысило производительность труда программистов. Но это уже был предел возможностей человека.
В середине 80-х годов возникло понятие объекта и объектно-
ориентированного программирования (ООП). ООП является развитием технологии структурного программирования, но имеет свои характерные черты.
ООП по сути – это создание приложений из объектов как из «кирпичиков». Одни объекты приходится создавать полностью самостоятельно,
другие – можно позаимствовать в готовом виде из разнообразных библиотек.
Важное место в технологии ООП занимает событие (щелчок клавиши мыши на объекте, нажатие определенной клавиши, открытие документа и т. д.). В качестве реакции на событие может вызываться определенная процедура, которая может изменять свойства объекта, вызывая его мето-
ды.
Внастоящее время в ООП обычно используется графический интерфейс, позволяющий визуализировать процесс программирования. Появилась возможность создавать объекты, задавать им свойства с помощью мыши. Наиболее распространенные системы программирования на ООП –
Visual Basic и Borland Delphi.
Всреде MS Office в качестве объектов выступают: приложения, документы, окна и т.п. Каждый из этих объектов является исполнителем алгоритма. Команды объекту могут давать либо другие объекты, функционирующие в этой системе, либо пользователь персонального компьютера.
Для того чтобы объект мог автоматически выполнять алгоритм в среде MS Office, необходимо записать его на том формальном языке, который этот объект «понимает». Таким языком в MS Office является Visual Basic for Application (VBA), который является ядром ООП языка програм-
мирования Visual Basic.
1.3. Обзор языков программирования высокого уровня
FORTRAN (Фортран) – первый компилируемый язык (50-е годы), не очень удобный, но позволяет получить эффективный исполняемый код. Имеются большие наработки (библиотеки), используемые по сей день.
Cobol (Кобол) – компилируемый язык, используется в экономике (начало 60-х годов). Отличается "многословностью". Реализованы мощные средства работы с большими объемами данных. Используется и сейчас.
Algol (Алгол) – компилируемый язык (60-е годы) с большими возможностями, но у него сложная структура.
Pascal (Паскаль) – (конец 70-х годов) похож на Algol, удобен для создания крупных проектов.
Basic (Бейсик) – и интерпретатор и компилятор самый популярный в мире, прост в изучении.
С (СИ) – планировался для замены ассемблера, чтобы иметь возможность создавать столь же эффективные и компактные программы и при этом не зависеть от конкретного типа процессора. Во многом похож на Pascal и имеет дополнительные средства для работы с памятью в виде ука-
зателей. В 70е годы на нем написано множество прикладных и системных программ.
С++(СИ++) – это объектно-ориентированное применение языка СИ (80-е годы). Требует высокого уровня профессиональной подготовки.
Java (Джава, Ява) – был создан в 90-е годы на основе С++ с целью упрощения. Его особенность: компиляция не в машинный код, а в плат- форменно-независимый байт-код, он может выполняться с помощью виртуальной Java – машины JVM, версии которой созданы сегодня для любых платформ. Этот язык сейчас второй по популярности после Бейсика. Используется в основном для поддержки всевозможных мобимых устройств и микрокомпьютеров, встраиваемых в бытовую технику (технология Jini), а также для создания платформенно-независимых программных модулей, способных работать на серверах в глобальных и локальных сетях.
Языки программирования баз данных предназначены для создания записей, имеющих единообразную структуру, с которыми выполняются однообразные операции. Для эффективной обработки групп записей в базах данных используют структурированный язык запросов SQL. Помимо этого языка системы управления базами банных СУБД имеют еще и свой уникальный язык, ориентированный на особенности этой системы.
Языки программирования для Интернета обладают характерными особенностями: языки являются интерпретаторами, которые распространяются бесплатно, а сами программы распространяются в исходных текстах. Такие языки называются скрипт–языками. Наиболее популярные из них приведены ниже.
HTML – язык для оформления Web-документов. Он очень прост и содержит элементарные команды. Форматирование текста, добавление рисунков, организации ссылок и таблиц.
Perl (80-е годы) – это мощное средство эффективной обработки больших текстовых файлов, генерации текстовых отчетов и для управления задачами. Он превосходит С.
Tcl/Tk – (80-е годы) направлен на автоматизацию рутинных процессов, не зависит от типа системы и позволяет создать программы с графическим интерфейсом.
VRML – (94 год) предназначен для организации виртуальных трехмерных интерфейсов.
Язык графического моделирования UML – позволяет изобразить с помощью мышки таблицы баз данных, объекты программ и взаимосвязи между ними в системе, имеющей генератор исходных текстов программ на основе созданной модели (CASE-системы).
Среди менее распространенных языков программирования отметим еще ряд языков.
PL/1 – (64 год) значительно более мощное средство, чем Pasсаl и С, но его достоинства не сразу были оценены. Например, у него существует уникальная возможность указания точности вычислений. Используется до сих пор
Smalltalk (Смолток) – (80-е годы) отличается тем, что содержит только объекты и сообщения.
LISP (Лисп) – (60-е годы). Интерпретируемый язык программирования. Оперирует структурой данных в виде списка, позволяет организовать эффективную обработку больших объемов текстовой информации.
Системы программирования содержат разнообразные средства создания программ:
–текстовый редактор;
–компилятор;
–редактор связей;
–библиотека функций;
–отладчик программы.
Из универсальных языков программирования сегодня наиболее популярны следующие:
Basic – для освоения требует начальной подготовки (школы); Pascal – для освоения требует специальной подготовки;
С ++ – для освоения требует профессиональной подготовки.
Для каждого из этих зыков сегодня имеется немало систем программирования, ориентированных на разные ПК и операционные системы. Наиболее популярные системы проектирования программ для Windows для языков программирования – это
– Microsoft Visual Basic |
для |
Basic; |
– Borland Delphi |
для |
Pascal$ |
– Borland C++ Bulider |
для |
Cu++$ |
– Symantec Cafе |
для |
Java. |
2. TURBO BASIC
2.1. Основные элементы языка программирования TURBO BASIC
Программа, написанная в среде TURBO BASIC (TB), представляет собой совокупность программных строк, имеющих следующий формат:
[номер строки] оператор [:оператор] ...
[‘комментарий]
или
метка:
или
$метаоператор
Квадратные скобки при описании формата всех команд здесь и далее по тексту описания данных лабораторных работ обозначают, что заключенная в них часть конструкции является необязательной, но если она есть, то присутствует без самих квадратных скобок. Таким образом, нумерация строк в TB не требуется, хотя при необходимости она возможна.
Операторы представляют собой действия, выполняемые программой. В строке может быть один или несколько операторов, разделенных двоеточием. Длина программной строки в TB может быть до 249 символов. Если оператор не помещается в одной экранной строке, то его можно разбить на несколько экранных строк, поставив в конце строки символ подчеркивания ( _ ). При этом следующая строка будет рассматриваться как продолжение предыдущей.
Номер строки − это целое десятичное число от 0 до 65535. Номера – необязательно использовать в программе, но если они есть, то используются для идентификации (распознавания) строк программы. Никаких ограничений, за исключением того, что все строки должны иметь разные номера, на взаимное расположение номеров строк не накладывается.
К любой строке может быть добавлен неисполняемый оператор − комментарий, отделенный от последнего оператора знаком апострофа (‘) или оператором REM. Комментарий может быть как первым, так и не первым в строке.
Метка должна быть в строке без операторов (хотя комментарий в этой строке может быть). Она служит для идентификации оператора, следующего непосредственно за ней. Метка должна начинаться с буквы и может содержать произвольное число букв и цифр. Заглавные и строчные буквы в метке не различаются. За меткой должно следовать двоеточие.