Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
101
Добавлен:
02.04.2015
Размер:
2.05 Mб
Скачать

Минобрнауки России

Государственное образовательное учреждение

высшего профессионального образования

«Санкт-Петербургский государственный

инженерно-экономический университет»

Кафедра вычислительных систем и программирования

УТВЕРЖДАЮ

Проректор

по учебно-методической работе

и качеству образования

д.э.н., профессор

________________ В.И. Малюк

«_01_» __ноября__ 2010 г.

Рег. № __м-1041__

Практикум учебный по информатике

Учебная практика по информатике

ПРОГРАММИРОВАНИЕ В СРЕДЕ MICROSOFT OFFICE

Методические указания к выполнению лабораторных работ

для студентов всех форм обучения

Специальности: все

Санкт-Петербург 2010

Утверждено редакционно-издательским советом СПбГИЭУ в качестве методического издания

Составители

канд. экон. наук, доц. О.Д. Мердина

д-р экон. наук, проф. Е.В. Стельмашонок

канд. экон. наук, доц. С. А. Соколовская

Рецензент канд. физ.-мат. наук, доц. И.Н.Васильева

Подготовлено на кафедре вычислительных систем и программирования

Отпечатано в авторской редакции с оригинал-макета,

представленного составителями.

© СПбГИЭУ, 2010

Содержание:

ЛАБОРАТОРНАЯ РАБОТА №1. 4

Изучение возможностей интегрированной среды разработки VBA-приложений (EXCEL, WORD) 4

ЛАБОРАТОРНАЯ РАБОТА №2. 17

Отладка программ и обработка ошибок в VBA 17

ЛАБОРАТОРНАЯ РАБОТА №3. 23

Использование элементов управления в приложениях VBA 23

ЛАБОРАТОРНАЯ РАБОТА №4. 42

Использование VBA при решении задач в EXCEL 42

ЛАБОРАТОРНАЯ РАБОТА №5. 49

Использование VBA при решении задач в Word 49

ЛАБОРАТОРНАЯ РАБОТА №6. 58

Использование ACCESS VBA при решении задач обработки баз данных 58

СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ 71

Лабораторная работа №1. Изучение возможностей интегрированной среды разработки vba-приложений (excel, word)

Цель лабораторной работы

Познакомиться с особенностями работы в интегрированной среде разработки приложений VBA. Освоить инструментарий редактора VBA.

Основные сведения об интегрированной среде разработки приложений

VBA - версия Visual Basic для приложений, которая имеет собственную специальную интегрированную среду разработки (IDE). VBA IDE - это окно, содержащее меню, другие окна и элементы, которые применяются при создании проектов VBA. Все приложения, поддерживающие VBA (EXCEL, WORD и др.), работают с одним IDE.

Проектом в Office называется набор программных модулей, связанных с основным документом приложения. С каждым документом связан свой проект. В проект входят:

  • модуль с процедурами обработки событий других объектов приложения,

  • стандартные модули с пользовательскими процедурами и макросами,

  • модули классов,

  • модули, связанные с диалоговыми окнами,

  • ссылки на другие проекты, позволяющие использовать их процедуры и данные.

При создании основного объекта EXCEL - рабочей книги - возникает проект VBAProject(<имя книги>), содержащей по умолчанию модули для четырех объектов Excel: самой рабочей книги и трех рабочих листов.

К инструментам редактора, облегчающими разработку и управление приложениями относятся:

  • окно проекта - специальное окно редактора VBA, в котором выводятся все элементы проекта VBA. Элементы отображаются в виде иерархической структуры, включающей все формы, модули кода, объекты основного приложения (рабочие листы). Представление элементов в виде дерева упрощает их просмотр и выбор. Кроме того, используя структуру, можно с легкостью сократить объем отображаемой информации, отключив вывод ветви дерева. В окне проекта можно легко выбрать требуемый объект для его редактирования.

  • окно свойств - используется для просмотра и задания свойств объектов проекта. Окно предназначено для установки свойств и просмотра значений всех компонентов проекта, создаваемых форм и объектов основного приложения. В окне свойств отображаются только свойства текущего объекта. Для некоторых свойств имеется ограниченный набор значений. Если при выборе свойства у правого края столбца значений отображается кнопка со стрелкой, то можно задать другую величину, выбрав из раскрывающегося списка требуемый элемент.

  • окно модуля - используется при написании любой программы VBA, будь это код макроса или подпрограмма, которая входит в библиотеку служебных процедур разрабатываемого проекта. Под строкой заголовка окна расположены два списка. В первом списке выводятся все объекты модуля, а во втором - список процедур, связанных с выбранным объектом. Обычно модуль включает несколько функций или подпрограмм. Количеством одновременно отображаемых в окне модуля процедур можно управлять. Можно вывести либо все процедуры с отделением текста одной от текста другой горизонтальной линией, либо отобразить только одну процедуру модуля, нажав расположенную в нижнем левом углу кнопку "Представление полного модуля" или кнопку "Представление процедуры" соответственно.

Установка свойств проекта

Для установки свойств используется диалоговое окно VBAProject - свойства проекта, которое выводится по команде Tools\Normal Properties, вызывающее диалоговое окно Normal-Project Properties. На вкладке "Общие" (General) задается имя проекта и его описание. Там же устанавливается файл справки для проекта, идентификатор, указывающий на требуемый раздел справки, а также параметры, необходимые для компиляции проекта. Параметры вкладки "Защита" (Protection) устанавливают способ доступа к проекту из основного приложения.

Импорт и экспорт файлов

Редактор VBA обеспечивает возможность импорта и экспорта компонентов приложения. Это позволяет использовать имеющиеся данные в других приложениях и проектах Visual Basic.

Если имеется компонент объекта VBA, который необходимо включить в текущий проект, то требуется сначала экспортировать компонент из исходного проекта, а затем импортировать его в текущий проект. Кроме того, поскольку компоненты приложения Visual Basic всегда хранятся в отдельных файлах, можно с легкостью загрузить компонент из проекта VB. Для компонентов Visual Basic и VBA используются следующие стандартные расширения: FRM - форма, CLS - модуль класса, BAS - модуль программы.

Параметры редактора VBA

Установка параметров работы редактора VBA производится в диалоговом окне "Параметры" (Options) (Сервис\Параметры или Tools\Options).

Вкладка "Редактор" (Editor) диалогового окна "Параметры" включает следующие параметры:

Проверка синтаксиса (Auto Syntax Check). Определяет, должен ли Visual Basic автоматически проверять правильность синтаксиса после ввода строки программы.

Явное описание переменных (Require Variable Declaration). Определяет необходимость явного описания переменных в модулях.

Список компонентов (Auto List Members). Автоматически отображает список данных, логически завершающих инструкцию, расположенную в месте вставки.

Краткие сведения (Auto Quick Info). Отображает сведения о процедурах (функциях, подпрограммах, свойствах, методах) и их параметрах после ввода имени процедуры.

Подсказки значений данных (Auto Data Tips). Отображает значение переменной, на которой установлен курсор. Эта возможность доступна только в режиме прерывания.

Автоотступ (Auto Indent). Позволяет задать положение табуляции для первой строки - следующие строки будут начинаться с той же позиции.

Интервал табуляции (Tab Width). Устанавливает интервал табуляции в пределах от 1 до 32 пробелов.

Перетаскивание текста (Drag-And-Drop Text Edeting). Позволяет использовать мышь для перетаскивания фрагментов программ в окне модуля.

Просмотр всего модуля (Default to Full Module View). Для вновь открываемых модулей устанавливает режим просмотра всех процедур.

Разделитель процедур (Procedure Separator). Позволяет скрыть и отобразить разделяющую полосу, появляющуюся в конце каждой процедуры в окне модуля.

Каждый элемент кода можно вывести своим цветом, что позволяет быстро найти нужные фрагменты программ. Например, комментарии могут быть красными, описания - синими, а выделенный текст синим на розовом фоне. Цвета задаются во вкладке Формат (Editor Format) диалогового окна "Параметры".

Параметры вкладки "Общие" (General) диалогового окна "Параметры" задают параметры настройки, обработки ошибок и компиляции текущего проекта.

Показать сетку (Show Grid). Определяет, показывать ли сетку в режиме конструктора. Сетка помогает выравнивать элементы управления и изменять их размеры.

Размеры сетки (Grid Units). Отображает используемые для формы единицы сетки. Кроме того, можно задать интервал между точками сетки как по вертикали, так и по горизонтали.

Привязка элементов к сетке (Align Controls to Grid). Автоматически располагает внешние границы элементов управления на линиях сетки.

Всплывающие подсказки (Show ToolTips). Отображает подсказку по кнопкам панели инструментов.

Скрытие окон при сбое (Collapse Proj. Hides Windows). Определяет, должно ли быть автоматически закрыто окно проекта, формы, объекта или модуля при сворачивании проекта в окне проекта.

Уведомить о потере состояния (Notify Before State Loss). Флажок определяет, должно ли отображаться сообщение, уведомляющее об изменении режима.

Перехват ошибок (Error Trapping). Останов. Определяет способ обработки ошибок при выполнении программы.

Компиляция (Compile). Флажок "Компиляция по запросу" (Compile On Demand) определяет, должен ли проект перед запуском быть скомпилирован полностью, либо по мере необходимости, что позволяет быстрее запустить приложение. Флажок "В фоновом режиме" (Background Compile) определяет, следует ли использовать времена простоя при работе приложения для завершения компиляции проекта в фоновом режиме, что позволяет увеличить скорость выполнения. Эта возможность недоступна, если сброшен флажок "Компиляция по запросу".

Параметры вкладки "Закрепление" (Docking) диалогового окна "Параметры" определяют, какие окна в редакторе VBA можно закрепить.

Основные сведения о средствах редактора VBA

Редактор VBA включает ряд средств, которые значительно облегчают написание кода. Эти средства выполняют анализ введенного текста и предлагают только допустимые типы данных, встроенные шаблоны процедур, функции-члены и т.п.

VBA помогает при описании переменных и объектов, практически исключая возможность возникновения ошибки при условии использования списка допустимых типов данных и объектов. Этот список отображается только тогда, когда установлен флажок Auto List Members в диалоговом окне Options, вызываемым командой Tools\Options. Если флажок сброшен, то можно вывести список подстановки, используя команды Edit\List Properties/Methods или Edit\Complete Word или аналогичные команды в контекстном меню.

VBA позволяет создать мощные приложения, используя большое число встроенных процедур и функций. Процедуры используются для преобразования типов данных, обеспечения доступа к средствам операционной системы, управления внешними устройствами, взаимодействия с пользователем и др. Однако иногда подпрограммы нелегко использовать, т.к. требуется точно знать порядок задания параметров и тип возвращаемого процедурой значения. Редактор VBA упрощает использование процедур в программе, показывая их синтаксис. При вводе имени стандартной функции или подпрограммы он отображает в нужном порядке все требуемые аргументы, а также их тип. При отображении синтаксиса процедуры имена некоторых параметров выводятся жирным шрифтом, а остальные - заключаются в квадратные скобки. Параметры, выделенные жирным шрифтом, являются обязательными, а другие - дополнительными. Для задания автоматического вывода синтаксиса процедур в окне модуля должен быть установлен флажок Auto Quick Info диалогового окна Options. Если флажок сброшен, то для вывода справки по процедуре нужно выделить ее название, щелкнув правой кнопкой мыши, а затем вызвать команду Edit\Parameter Info или аналогичную команду из контекстного меню.

Основные сведения об операторах VBA

Функция MsgBox

MsgBox(сообщение[, кнопки][, заголовок][, файл справки, контекст])

Выводит на экран диалоговое окно, содержащее сообщение, устанавливает режим ожидания нажатия кнопки пользователем, а затем возвращает значение типа Integer, указывающее, какая кнопка была нажата.

Функция InputBox

InputBox(сообщение[, заголовок][, умолчание][, Xпоз][, Yпоз][,файл справки, контекст])

Выводит на экран диалоговое окно, содержащее сообщение и поле ввода, устанавливает режим ожидания ввода текста пользователем или нажатие кнопки, а затем возвращает значение типа String, содержащее текст, выведенный в окне.

Условный оператор IF

Для проверки одного условия и выполнения оператора или блока операторов используется оператор IF…THEN. Этот оператор можно использовать с разным синтаксисом: однострочным (линейным) и многострочным (блочным).

а) Однострочный:

If <условие> Then <оператор>

б) блочный:

If <условие> Then

<блок операторов>

End If

Для проверки одного условия и выбора одного из двух блоков операторов используется оператор вида If…Then… Else.

If <условие> Then

<блок операторов1>

Else

<блок операторов2>

End If

Для проверки более одного условия и выполнения одного из нескольких блоков операторов используется оператор вида:

If… Then…ElseIf

If <условие 1> Then

<блок операторов 1>

ElseIf <условие 2> Then

<блок операторов 2>

…………….

ElseIf<условие n> Then

<блок операторов n>

Else

<блок операторов Else>

End If

Оператор выбора SELECT CASE

Используется для проверки одного условия и выполнения одного из нескольких блоков операторов.

Формат записи оператора:

Select Case проверяемое выражение

Case список выражений 1

операторы 1

Case список выражений 2

операторы 2

Case список выражений 3

операторы 3

……………………………….

Case Else

операторы группы Else

End Select

Проверяемое выражение вычисляется в начале работы оператора Select Case. Это выражение может возвращать значение любого типа (логическое, числовое, строковое).

Список выражений – одно или несколько выражений, разделенных стандартным символом – разделителем(;).

При выполнении оператора проверяется, соответствует ли хотя бы один из элементов этого списка проверяемому выражению. Эти элементы списка выражений могут иметь одну из следующих форм:

  • выражение

  • выражение 1 To выражение 2

  • Is логический оператор (оператор сравнения) выражение

Например, Is >= 10

Оператор цикла For…Next имеет две разновидности:

  1. For счетчик = начало To конец [Step приращение]

операторы

Next [счетчик]

б) For Each <элемент> In <группа>

операторы

Next [элемент]

Оператор цикла WHILE…WEND

Используется для организации циклов с предусловием и имеет следующий формат:

While <условие продолжения цикла>

операторы тела цикла

Wend

Оператор цикла DO…LOOP

Используется для организации циклов с неопределенным числом повторений (с предусловием и с постусловием).

Этот оператор для организации цикла с предусловием может использоваться в двух модификациях:

а) Do While <условие продолжения цикла>

операторы тела цикла

Loop

б)Do Until <условие прекращения цикла>

операторы тела цикла

Loop

Для организации цикла с постусловием этот оператор также может быть использован в двух модификациях:

в) Do

операторы тела цикла

Loop While <условие продолжения цикла>

г)Do

операторы тела цикла

Loop Until <условие прекращения цикла>

Оператор перехода GoTo

Этот оператор позволяет выполнить безусловный переход к заданной строке активной процедуры.

Формат оператора:

GoTo строка

строка – это метка строки в процедуре. Метка строки представляет собой строку программы, в начале которой указывается имя метки и двоеточие. Количество меток не ограничено, но каждая должна быть уникальна.

Оператор With для операций с одним объектом.

Если в одном блоке программы требуется выполнить несколько операций с одним объектом, то это можно явно указать оператором With, а затем не повторять имя этого объекта.

Формат записи оператора:

With объект

[операторы]

End With

Выполнение лабораторной работы

  1. Cоздать проект в редакторе VBA. Для этого запустить редактор VBA: выбрать группу Макросы ленты ВИД или нажать комбинацию клавиш <Alt>< F8>. В диалоговом окне Макрос введите имя проекта – Проект и нажмите Создать, при этом откроется окно проекта.

  2. Скрыть окно проекта. Нажать кнопку "Закрыть" окна проекта или щелкнуть правой кнопкой мыши по окну проекта, а затем выбрать из контекстного меню команду Hide (Скрыть).

  3. Закрепить окно проекта. Для этого щелкнуть правой кнопкой мыши по окну проекта и выбрать из контекстного меню команду Dockable (Закрепить).

  4. Переместить закрепленное окно проекта. Для этого перетащить окно, щелкнув по строке заголовка.

  5. Проделать все перечисленные в пунктах 2-4 операции с окном свойств (Properties Window).

  6. Вывести свойства объекта. Для этого необходимо выбрать объект из списка, расположенного вверху окна свойств, или выбрать объект в окне проекта и, если окно свойств скрыто, вывести его, нажав клавишу <F4>.

  7. Изменить значение свойства. Для этого необходимо выбрать требуемое свойство в левом столбце, а затем задать нужную величину в правом столбце. Например, из списка, расположенного вверху окна свойств, выберите объект Лист1 (Лист1), в левом столбце окна свойств выберите свойство Name и в правом столбце задайте новое значение этого свойства Бюджет.

  8. Добавить модуль в проект. Для этого:

  • в окне проекта необходимо выбрать проект, в который требуется добавить модуль;

  • выбрать в меню редактора VBA команду Insert\Module (Вставка\Модуль), после чего выведется пустое окно модуля;

  • в окне свойств задать имя модуля (например, Обработка)

  1. Отобразить окно модуля. Окно модуля отображается только тогда, когда с выбранным объектом связан код. Для отображения окна модуля можно выполнить одно из указанных действий:

  • дважды щелкните в окне проекта по имени требуемого объекта приложения, который может содержать код (по названию модуля);

  • дважды щелкните по форме или любому элементу управления в форме;

  • выделите требуемый объект проекта, а затем выберите в окне редактора VBA команду View\Code (Вид\Программа).

  1. Добавить процедуру в проект. Для этого:

  • открыть окно модуля, в которое требуется добавить процедуру;

  • выбрать команду Insert\Procedure (Вставка\Процедура);

  • ввести имя процедуры в поле Имя (например, pr);

  • выбрать переключатель. Задающий тип добавляемой процедуры: подпрограмма (Sub), функция (Function) или свойство (Property);

  • задать личную или общую область определения процедуры, выбрав переключатель Public (Общая) или Private (Личная) соответственно;

  • в случае если все локальные переменные являются статическими, установить флажок "Все локальные переменные считать статическими" (All Local variables as Statics);

  • нажать кнопку "ОК". В окне модуля выведется пустая процедура с заданным именем.

  1. Введите текст процедуры, вычисляющей сумму значений элементов одномерного массива:

Sub pr()

Dim b(10) As Integer

Dim s As Integer

s = 0

For i = 1 To 10

b(i) = InputBox("Введите число")

s = s + Val(b(i))

Next

MsgBox s

End Sub

Написание кода включает в себя описание переменных и объектов, использование процедур. Если VBA определяет, что описывается переменная или объект, то отображается специальное окно, в котором можно выбрать допустимый объект или тип. Например, после ввода: Dim s As редактор отображает список всех известных объектов и типов данных. После вывода списка нужно выбрать требуемый тип (Integer) и нажать клавишу <Enter>. VBA подставляет выделенный элемент в выражение Dim. Аналогичным образом введите еще две следующие процедуры:

Sub pr1()

Dim a As Single

Dim k As String

Dim y As Single

a = InputBox("Введите число")

x = Val(a)

If Val(a) <> 0 Then

y = 150 / x

k = MsgBox(y)

Else

MsgBox ("Деление на ноль")

End If

End Sub

Sub pr2()

Dim a(10) As Single, s As Single, b As Single, n As Boolean

For i = 1 To 10

a(i) = Val(InputBox("Введите число"))

Next

Do

n = False

For i = 1 To 9

If a(i) > a(i + 1) Then

b = a(i): a(i) = a(i + 1): a(i + 1) = b: n = True

End If

Next

Loop While n = True

s = a(1) + a(10)

MsgBox s

End Sub

  1. Осуществить поиск процедур в окне модуля. Для этого:

  • Чтобы быстро найти процедуру, которая находится в текущем модуле, необходимо выбрать в списке, расположенном в верхнем левом углу окна модуля, элемент (Общая область), а затем выделить название требуемой процедуры в списке, находящемся в правом верхнем углу.

  • Чтобы быстро найти процедуру обработки события или метод текущего объекта, необходимо выбрать имя объекта в списке, расположенном в левом верхнем углу окна модуля, а затем выделить название события или метода в списке, находящемся в верхнем правом углу.

  • Чтобы быстро найти описание процедуры, нужно щелкнуть правой кнопкой мыши по имени требуемой процедуры в любом месте кода и выбрать команду Object Browser (Описание).

  • Чтобы возвратиться в позицию последней правки, нужно щелкнуть правой кнопкой мыши по окну модуля и выбрать из контекстного меню команду Last Position (Вернуться к последней позиции).

  1. Задать цвет вывода для отдельных частей программы, для этого:

  • Раскрыть вкладку Editor Format (Формат) диалогового окна Options (Параметры).

  • Задать тип текста в списке Code Colors (Цветовые коды).

  • Выбрать цвет текста и фона в списках Foreground (Текст) и Background (Фон) соответственно. Если требуется использовать индикатор полей, например, для точки останова, выберите индикатор в списке Indicator (Индикатор). Задать шрифт текста и его размер в списках Font (Шрифт) и Size (Размер) соответственно.

  • Для сохранения заданного типа текста нажать "ОК".

  1. Экспортировать файл, для этого:

  • Выбрать экспортируемый компонент в окне проекта (например, Модуль1).

  • Выбрать команду File\Export File (Файл/Экспорт файла), в диалоговом окне Export File раскройте нужную папку, введите имя файла и нажмите "ОК".

  1. Импортировать файл, для этого:

  • Активизировать другое приложение MS Office (например, WORD).

  • Выбрать в окне редактора VBA команду File\Import File (Файл/Импорт файла), в диалоговом окне Import File найдите требуемый файл, выделите его, а затем нажмите кнопку "ОК".

  1. Выполнить VBA-процедуры из импортированного модуля.