Этап. Разработка пользовательского интерфейса 1 страница
АЛГОРИТМИЗАЦИЯ И
ПРОГРАММИРОВАНИЕ
ЛАБОРАТОРНЫЙ ПРАКТИКУМ ПО ИНФОРМАТИКЕ ДЛЯ СТУДЕНТОВ ЭКОНОМИЧЕСКИХ СПЕЦИАЛЬНОСТЕЙ
Рекомендовано Ученым советом государственного образовательного учреждения высшего профессионального образования “Оренбургский государственный университет” в качестве учебного пособия для студентов, обучающихся по программам высшего профессионального образования экономического профиля
Оренбург 2006
УДК 004.42(075.8)
ББК 32.973-018я73
Т51
Рецензент
заведующий кафедрой «Информационные технологии в экономике» ОГАУ, кандидат технических наук, доцент И.В.Матвейкин
Токарева М.А.
Т51 Алгоритмизация и программирование. Лабораторный практикум по информатике для студентов экономических специальностей: учебное пособие. /М.А.Токарева, М.А.Корякина. – Оренбург: ГОУ ОГУ, 2006. – 160 c.
Учебное пособие предназначено для прохождения лабораторного практикума по дисциплине “Информатика” (раздел «Алгоритмизация и программирование») студентами экономических специальностей
Т240401000 ББК 32.973-018я73
© Токарева М.А., 2006
Корякина М.А.
© ГОУ ОГУ, 2006
Содержание
Введение. 5
1 Пользовательский интерфейс VBA.. 7
1.1 Особенности среды программирования. 7
1.2 Запуск VBA.. 8
1.3 Структура редактора Visual Basic. 9
1.3.1 Окно проекта Project-VBAProject 9
1.3.2 Окно редактирования кода. 11
1.3.3 Окно редактирования форм. 14
1.3.4 Окно свойств “Properties”. 16
1.3.5 Окно панели элементов управления (Toolbox) 17
2 Разработка программного кода. 17
2.1 Структура проекта VBA.. 17
2.2 Пользовательские подпрограммы-функции. 18
2.3 Пользовательские подпрограммы-процедуры.. 20
2.4 Данные и их описание. 20
2.4.1 Алфавит и лексемы языка. 20
2.4.2 Переменные и константы.. 21
2.4.3 Объявление переменных. 22
2.4.4 Объявление констант. 23
2.4.5 Строковые переменные. 24
2.4.6 Области видимости переменных и констант. 24
2.4.7 Типы данных. 25
2.5 Функции в VBA.. 27
2.5.1 Математические встроенные функции. 27
2.5.2 Математические функции, не представленные в VBA.. 28
2.5.3 Функция форматирования данных. 28
2.5.4 Функции преобразования типов. 30
2.6 Операторы, выражения и операции. 30
2.6.1 Операция присваивания. 32
2.6.2 Математические операции. 32
2.6.3 Операции отношения. 33
2.6.4 Логические операции. 34
2.6.5 Строковые операции. 35
2.7 Отладка программ и обработка ошибочных ситуаций. 35
2.7.1 Отладка. 37
2.7.2 Точки останова (контрольные точки) 38
2.7.3 Наблюдение за данными с помощью просматриваемых значений. 39
2.7.4 Пошаговое выполнение программы.. 41
2.7.5 Обработка ошибок. 42
2.8 Условный оператор. 49
2.9 Оператор выбора (переключатель) 61
2.10 Операторы цикла. 64
2.10.1 Циклы с параметром For … Next 64
2.10.2 Циклы с условием (итерационные) 65
2.11 Табулирование функции. 73
2.11.1 Табулирование функции одной переменной. 73
2.11.2 Табулирование функции двух переменных (вложенные циклы) 74
2.12 Массивы.. 79
2.12.1 Объявление массива. 80
2.12.2 Динамические массивы.. 81
2.12.3 Действия над массивами. 82
2.12.4 Действия над элементами массива. 83
2.12.5 Формирование массива. 83
2.12.6 Одномерные массивы.. 85
2.12.7 Двумерные массивы. Вложенные циклы. 87
3 Объектно-ориентированное программирование на VBA.. 94
3.1 Разработка программы создания приложения с помощью Форм. 94
3.2 Встроенные диалоговые окна в VBA.. 107
3.2.1 Окна сообщений (MsgBox) 107
3.2.2 Окна ввода. 110
3.3 Объекты формы в VBA: Кнопки-переключатели, Контрольные индикаторы,
Рамки. 117
3.4 Объекты формы в VBA: Полоса прокрутки и Счетчик. 126
3.5 Объекты формы в VBA: Список и Поле со списком. 133
3.5.1 Заполнение списка и удаление его элементов. 135
3.5.2 Список с несколькими столбцами. 136
3.5.3 Многоэлементный выбор из списка. 139
3.5.4 Добавление и удаление данных. 142
3.6 Объект формы в VBA: Рисунок. 144
3.6.1 Добавление растровых изображений в форму. 145
3.6.2 Вставка изображений в форму. 146
3.7 Интеграция приложений: MS Excel и MS Word. 149
3.7.1 Открытие документа MS Word функцией CreateObject 149
3.7.2 Открытие документа MS Word функцией GetObject 150
4 Литература, рекомендуемая для изучения. 160
Введение
Современный учебный план для специалистов экономического профиля построен таким образом, что предусматривает непрерывность и преемственность изучения дисциплин экономико-математического инструментария и эконометрики, образующих единый комплекс.
В настоящее время без использования информационных технологий невозможно представить изучение такого комплекса дисциплин. Дисциплина «Информатика» включена в учебные планы экономических специальностей как естественно-научная дисциплина Государственного образовательного стандарта, который содержит обязательный раздел для изучения алгоритмизации и программирования.
Изучая информатику, студенты должны осознавать, что компьютер является рабочим инструментом для решения профессиональных задач. Любой специалист в своей области должен знать, какие профессиональные задачи можно решать, используя компьютер, и уметь это делать. Таким образом, информатика является предметом не только общеобразовательным, но и профессиональным, в котором очень важна система межпредметных связей, поэтому, по мнению авторов, методическое обеспечение дисциплины «Информатика» при изучении различных разделов курса должно ориентироваться на задачи из предметной области.
Особое внимание при обучении информатике студентов-экономистов уделяется изучению возможностей работы с объектами MS Office, в частности, табличному процессору, позволяющему автоматизировать проведение типовых вычислений. Современная версия Excel 2000/XP представляет собой открытую структуру, которая может быть использована в качестве базовой компоненты программного обеспечения cпециалиста-экономиста.
Вместе с тем, многообразие экономической деятельности обусловило появление различных специфических задач, средства решения которых отсутствуют в табличных процессорах или не соответствуют их трудоемкости и сложности. В этой связи необходимо рассмотреть варианты создания дополнительных модулей и надстроек. Решать подобные задачи, а также расширять возможности стандартных приложений MS Office позволяет алгоритмический язык высокого уровня Visual Basic for Application (VBA), который предлагается авторами в качестве базового для изучения раздела алгоритмизации и программирования студентами экономического профиля.
VBA – система визуального программирования, которая эффективно применяется для автоматизации деятельности, связанной с обработкой экономических данных: выполнения расчетов, составления сводных отчетов, решения задач анализа и прогнозирования, экономико-математического моделирования. Основы для возможности решения подобных задач закладываются при выработке навыков алгоритмического мышления и овладении постановкой задач на ЭВМ.
Пользователь может создавать видимую часть приложения. Программный интерфейс разрабатывается на современных принципах объектно-ориентированного подхода, реализованного в VBA применительно к приложениям, выполняемым под управлением Windows. Основные принципы структурного программирования и объектно-ориентированный подход целесообразно преподавать в курсе информатики, ориентируясь на дальнейшие возможности быстрого и квалифицированного освоения студентами профессиональных пакетов прикладных программ.
В учебном пособии в доступной форме рассмотрены основные средства и возможности языка VBA для повышения гибкости и расширения функциональности офисного приложения Excel. Описан синтаксис языка, даны практические рекомендации по объектно-ориентированному программированию, показано конструирование пользовательского интерфейса, как на этапе дизайна, так и во время выполнения приложения. Рассмотрен вопрос взаимодействия офисных приложений между собой, представлены материалы для самостоятельной работы по офисному программированию.
По мнению авторов, экономическая направленность заданий для выполнения лабораторных работ повысит мотивацию студентов к изучению возможностей языка VBA, развитию алгоритмического мышления на примерах простых задач, связанных с будущей профессиональной деятельностью.
Основной целью учебного пособия авторы видят в стремлении использовать программное обеспечение в учебном процессе для создания уникальной среды, в которой экономическая обработка данных становится не рутинным занятием, а увлекательным исследованием, позволяющим получать многовариантные решения с использованием компьютерных технологий и современных методов алгоритмизации и программирования.
1 Пользовательский интерфейс VBA
1.1 Особенности среды программирования
Цель: знакомство с интегрированной средой программирования VBA.
По сравнению с предыдущими поколениями Бейсик-систем MS Visual Basic for Applications (VBA) имеет ряд принципиальных отличий. VBA - мощная система программирования, позволяющая быстро и эффективно создавать многофункциональные интегрированные офисные приложения для MS Windows 95/98-‘XP. Язык VBA – это подмножество Visual Basic (VB), которое включает почти все его средства создания приложений, структуры данных и управляющие структуры, возможность создания пользовательских типов данных.
VBA отличается от VB и прочих языков программирования в следующем:
- предоставляет возможность непосредственной работы с объектами MS Office. Это позволяет эффективно его использовать для автоматизации деятельности, связанной с обработкой различных типов документов.
- VBA позволяет существенно расширить вычислительные средства MS Office;
- с помощью VBA можно легко и быстро создавать различные приложения, даже не являясь программистом;
- VBA имеет графическую инструментальную среду, обеспечивающую конструирование экранных форм и управляющих элементов;
- с помощью VBA можно программировать собственные пользовательские функции, разрабатывать макросы, создавать пользовательские меню и многое другое;
- VBA позволяет с легкостью решать задачи, которые средствами обычных офисных приложений практически решить невозможно;
- VBA реализует концепцию визуального программирования, управляемого событиями. Этот язык помогает интегрировать офисные проекты в единое целое.
- VBA тесно связан с VB – компоненты, сконструированные на VB, легко используются в офисных приложениях, а VB-приложения посредством технологии Automation имеют доступ ко всем возможностям и средствам офисных приложений.
Поскольку система является «визуальной», программист (пользователь) может создавать видимую часть приложения Windows. Эта часть является основой интерфейса «программа-пользователь», с помощью которого осуществляется взаимодействие пользователя с программой. Разработка программного интерфейса осуществляется на принципах объектно-ориентированного подхода, реализованного в VBA применительно к приложениям, выполняемым под управлением Windows.
Для таких приложений характерным является существование на экране в любой момент времени множества объектов: окон, кнопок, меню, текстовых и диалоговых окон, линеек прокрутки и т.п. Пользователь имеет определенную свободу выбора в части использования этих объектов.
Для каждого объекта на экране существует ряд возможных событий. Одни из них производятся пользователем: щелчок по кнопке мыши, перетаскивание объекта, нажатие клавиши клавиатуры, ввод текста в окно и т.п.
Каждое событие проявляется в определенных действиях (откликах, реакции, поведении) программы. Эти действия можно разделить на две группы.
Первая является следствием свойств объекта. Эти свойства устанавливаются программистом из некоторого стандартного перечня свойств, заданного системой программирования VBA и самой системой Windows. Примером таких действий является свертывание окна после щелчка по кнопке <Свернуть>.
Вторая группа действий (отклика) на события полностью определяется программистом. Это обеспечивается возможностью задания процедуры VBA для каждого возможного для объекта события. Теоретически можно создать процедуру для любого события, но на практике программист заполняет кодом процедуры только для тех событий, которые в данной программе представляют интерес.
Таким образом, VBA предоставляет пользователю объектно-ориентированную среду программирования, основанную на событиях. Процесс разработки программы в этой среде сводится к выбору набора объектов и их свойств, заданию событий и процедур их обработки, которые в совокупности обеспечивают решение поставленной задачи.
1.2 Запуск VBA
Запуск интегрированной среды разработки приложений IDE (Integrated Development Environment – интегрированная среда разработки) редактора VBA осуществляется через запуск Windows-приложения MS Excel следующими способами:
1) выбрать последовательность команд Сервис→Макрос→Редактор Visual Basic;
2) нажать комбинации клавиш <Alt> + <F11>;
3) нажать кнопку Редактор Visual Basic панели инструментов Visual Basic MS Excel.
После запуска программы на экран будет выведено окно редактора VBA, показанного на рисунке 1.
Возвратиться из редактора Visual Basic в рабочую книгу можно:
1) выбрать команды View (Вид)→MS Excel;
2) нажать кнопку View MS Excel панели инструментов Standard.
Главное окно содержит все стандартные элементы, которыми обладает любое Windows-приложение: строку заголовка, строку управляющего меню, строку панелей инструментов, два окна Project-VBAProject и Properties.
Строка заголовка содержит название проекта Microsoft Visual Basic–Книга1.
Строка управляющего меню обеспечивает доступ к большинству команд, управляющих средой программирования. Меню и команды работают в соответствии со стандартными соглашениями, общими для всех Windows-приложений.
Под строкой управляющего меню расположена строка панели инструментов (Standard), представляющая собой набор кнопок, являющихся ярлыками для команд, с помощью которых осуществляется работа в среде VBA.
Рисунок 1 – Вид окна редактора VBA
1.3 Структура редактора Visual Basic
Пользовательский интерфейс редактора Visual Basic включает следующие основные компоненты:
- окно проекта Project-VBAProject;
- окно редактирования кода;
- окно редактирования форм;
- окно свойств;
- панель элементов управления.
1.3.1 Окно проекта Project-VBAProject
Окно проекта Project-VBAProjectв редакторе Visual Basic активизируется выбором команды View→Project Explorer (Вид→Окно проекта) или нажатием кнопки Project Explorer панели инструментов Standard.
В окне проекта Project-VBAProject, изображенного на рисунке 2, представлена иерархическая структура файлов форм и модулей текущего проекта.
В нем перечисляются все файлы проекта, доступ к которым осуществляется при помощи двух кнопок:
- <View code> (Просмотр кода);
- <View object> (Просмотр объекта).
Файл проекта имеет расширение *.xls и содержит список всех файлов проекта. В окне отображается его структура в виде дерева, которое похоже на структуру папок в окне Explorer Windows.
Рисунок 2 – Окно проекта Project-VBAProject
В проекте автоматически создаются модули для каждого рабочего листа и для всей книги. Модуль – это лист (не путать с рабочим листом), в котором набирается код. Кроме того, модули формируются для каждой пользовательской формы, макросов и классов.
По своему предназначению модули делятся на два типа: стандартные модули и модули объектов
К стандартным модулям относятся записываемые макросы. Такие модули добавляются в проект выбором команды Insert→Module (Вставка→Модуль).
К модулям объектов относятся модули рабочих книг, рабочих листов, форм и классов.
Двойным щелчком на значке модуля в окне проекта Project-VBAProject можно открыть соответствующий модуль. Значок активного модуля в окне проаекта Project-VBAProject выделяется серым цветом.
Формы создаются выбором команды Insert→UserForm (Вставка→Пользовательская форма), а модули класса - Insert→Class Module (Вставка→Модуль класса). По мере создания, добавления и удаления файлов из проекта эти изменения отображаются в окне проекта.
Удаление файла из окна проекта производится выделением значка файла с последующим выбором команды File→Remove ‘имя_модуля’ (Файл→Удалить), где ‘имя_модуля’ – имя выбранного модуля.
В окне проекта выводится список проектов всех открытых рабочих книг. Это позволяет легко копировать формы, модули из одного проекта в другой при помощи простой буксировки значка файла (для копирования файла – при нажатой клавише <Ctrl>).
1.3.2 Окно редактирования кода
Окно редактирования кода служит для ввода и изменения кода процедур и функций приложения.
Окно редактора кода для соответствующего модуля открывается двойным щелчком на значке файла в окне проекта.
Открыть модуль в редакторе кода для соответствующего объекта (например, рабочего листа) можно с помощью выделения значка этого объекта в окне проекта с последующим выбором команды View→Code (Вид→Код), представленного на рисунке 3. Код внутри модуля организован в отдельные разделы для каждого объекта, программируемого в модуле.
Рисунок 3 – Окно редактора кода
В верхней части окна кода помещены два раскрывающихся списка, облегчающих ориентацию в процедурах. Левый раскрывающийся список <Object> позволяет выбрать управляющий объект (элемент или форму), а правый <Procedure> – событие, допустимое для указанного в левом списке объекта, показанного на рисунке 4.
Рисунок 4 – Список компонентов правого раскрывающегося списка
В окне редактирования кода доступны два режима представления кода: просмотр кода отдельной процедуры и просмотр всего модуля. Переключение между режимами работы окна редактирования кода осуществляется следующими способами:
1) выбрать одну из двух кнопок в нижнем левом углу окна редактирования кода (левой <Procedure View>– отдельная процедура, правой <Full Module View> – все процедуры модуля);
2) установить или снять флажок Default to Full Module View (Просмотр всего модуля) вкладки Editor (Редактор) диалогового окна Options (Параметры), отображаемого на экране командой Tools→Options (Сервис→Параметры).
Для автоматического отображения списка компонентов, сведений о процедурах, функциях, свойствах и методах, а также для проверки синтаксиса нужно установить флажки, показанными на рисунке 5:
Auto List Members (Список компонентов), Auto Quick Info (Краткие сведения), Auto Syntax Check (Проверка синтаксиса) в диалоговом окне Options (Параметры)→вкладка Editor (Редактор).
Если установлен режим просмотра всех процедур модуля, то процедуры можно отображать с разделителями (горизонтальной чертой, разделяющей две соседние процедуры) или без них. Отображение или скрытие разделителей управляет флажок Procedure Separator (Разделитель процедур) диалогового окна Options (Параметры).
Рисунок 5 – Окно Options (Параметры)
Интеллектуальные возможности редактора кода
Написание программ существенно облегчается за счет способности редактора кода автоматически завершать написание операторов, свойств и параметров. При вводе кода редактор сам предлагает пользователю список компонентов, логически завершающих вводимую пользователем инструкцию.
Например, набирая код
Range ("A1") .
после ввода точки на экране отобразится список компонентов на рисунке 6, которые логически завершают данную инструкцию. Двойной щелчок на выбранном элементе из этого списка или нажатие клавиши <Tab> вставляет выбранное имя в код программы.
Рисунок 6 – Список компонентов
Автоматическое отображение списка компонентов происходит только при установленном флажке Auto List Members вкладки Editor диалогового окна Options, отображаемого на экране выбором команды Tools→Options.
Список компонентов отображается только для существующих в форме или на рабочем листе элементов управлений. Поэтому, если в проект входят элементы управления, сначала нужно создать их, а потом набирать код.
К интеллектуальным ресурсам редактора кода относится также автоматическое отображение на экране сведений о процедурах, функциях, свойствах и методах после набора их имени, показанным на рисунке 7.
Рисунок 7 – Отображаемые сведения о вводимой процедуре
Автоматическое отображение на экране сведений о процедурах, функциях, свойствах и методах после ввода их имени происходит только при установленном флажке Auto Data Tips вкладки Editor диалогового окна Options, отображаемого на экране выбором команды Tools→Options.
В процессе ввода исходного кода VBA автоматически отслеживает опечатки. Всякий раз, когда нажимается клавиша <Enter>, VBA просматривает введенную строку, переводит в верхний регистр начальные буквы зарезервированных слов, а остальные их буквы – в нижний регистр (если, все было введено корректно). Кроме того, зарезервированные слова редактор VBA отображает синим цветом, добавляет пробелы вокруг знаков арифметических операций, а также операций сравнения. Если после нажатия клавиши <Enter> VBA ничего не отредактировал, то, скорее всего, он чего-то не понял в этой строке и поэтому придется искать ошибку самостоятельно.
Редактор кода также производит автоматическую проверку синтаксиса набранной строки кода сразу после нажатия клавиши <Enter>. Если после набора и нажатия клавиши <Enter> строка выделяется красным цветом, то это как раз и указывает на наличие синтаксической ошибке во введенной строке. Эту ошибку необходимо найти и исправить. Кроме того, если установлен флажок Auto Syntax Check вкладки Editor диалогового окна Options, помимо выделения красным цветом фрагмента кода с синтаксической ошибкой, на экране отображается диалоговое окно, поясняющее, какая именно ошибка возникла.
1.3.3 Окно редактирования форм
Редактор форм является основным инструментом визуального программирования. VBA представляет разработчику проектов не только возможность использования уже существующих встроенных диалоговых окон, но и средства для разработки своих собственных форм. Пользовательские окна обеспечивают уникальный интерфейс, наилучшим образом приспособленный для решения конкретных задач, стоящих перед пользователем.
По своей сути форма (или пользовательская форма) представляет собой диалоговое окно, в котором можно размещать элементы управления (меню, кнопки, окна списков, полосы прокрутки и др.элементы). Формы позволяют реализовать интерфейс, к которому пользователь привык, работая с программными продуктами операционной системы Windows.
С точки зрения VBA форма представляет собой объект UserForm, со стандартной сеткой (группа регулярно расположенных точек). Сетка служит для удобства размещения элементов пользовательского интерфейса. Шаг сетки можно изменить, выполнив команду Tools→Options (Сервис→Параметры) (вкладка General (Общие)).
Как и любой объект, форма имеет свои свойства, методы и события.
Для того чтобы добавить форму в проект необходимо выполнить последовательность команд:
1) перейти в редактор Visual Basic;
2) выбрать команду Insert→UserForm.
В проекте появится пустое окно редактирования форм и Панель элементов управления, изображенных на рисунке 8.
Рисунок 8 – Окно Формы
1.3.4 Окно свойств “Properties”
Каждый объект (форма или элемент управления) имеет набор свойств. Они определяют внешний вид формы или элемента управления и его поведение. Окно свойств, изображенное на рисунке 9, позволяет просматривать свойства и изменять характеристики (установки) объектов. Оно содержит список всех объектов, использующихся в конкретном пользовательском интерфейсе, и предназначено для установки свойств каждого объекта.
Для того чтобы просмотреть свойства выбранного объекта, надо выполнить следующее:
- выполнить команду меню View→Properties Window (Вид→Окно свойств);
- щелкнуть по кнопке Properties Window в панели инструментов Standard.
Окно свойств состоит из двух частей: верхней и рабочей.
В верхней части расположен раскрывающийся список, пользуясь которым можно выбрать элемент управления текущей формы или саму форму.
Рабочая часть имеет две вкладки: Alphabetic (по алфавиту) и Categorized (по категориям), отображающие набор свойств выбранного объекта по алфавиту или по категориям.
Значения свойств можно изменять либо путем их ввода с клавиатуры, либо используя раскрывающиеся списки.
Рисунок 9 – Окно Свойства
1.3.5 Окно панели элементов управления (Toolbox)
Инструменты и средства управления на панели элементов управления служат для того, чтобы создавать новые элементы пользовательского интерфейса. Любое окно этого интерфейса содержит различные объекты: командные кнопки, текстовые окна, ярлыки (этикетки), переключатели и т.д. Все они называются Controls (элементами управления). Эти элементы добавляются в формы путем перетаскивания их с панели элементов управления в поле формы, указанных на рисунке 10.
Рисунок 10 – Окно инструментов
После того, как элементы управления внесены в форму, они становятся объектами или программируемыми элементами пользовательского интерфейса.
Имеется возможность расширения средств управления, представленных на панели управления. Для этого нужно выбрать команду Tools→Additional Controls (Сервис→Дополнительные элементы) и в появившемся диалоговом окне выбрать нужное средство управления.
Процесс выравнивания элементов управления в форме можно облегчить, используя команды меню Format (Формат).