Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBA.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
284.64 Кб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

Основные сведения об операторах 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: с помощью команды меню Сервис\Макрос\Редактор Visual Basic.

(Включение вкладки "Разработчик"

1.На вкладке Файл выберите Параметры, чтобы открыть диалоговое окно Параметры.

2.Щелкните Настройка ленты в левой части диалогового окна.

3.В разделе Выбрать команды из, расположенном слева в окне, выберите Популярные команды.

4.В разделе Настройка ленты, который находится справа в диалоговом окне, выберите Основные вкладки в раскрывающемся списке, а затем установите флажок Разработчик.

5.Нажмите кнопку ОК.)

  1. Отобразить окно проекта. Для этого необходимо выбрать команду Вид\Окно проекта (View\Project Explorer) или нажать комбинацию клавиш <Ctrl><R>.

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

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

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

  5. Проделать все перечисленные в пунктах 2-5 операции с окном свойств (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), в диалоговом окне "Экспорт файла" раскройте нужную папку, введите имя файла и нажмите "ОК".

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

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]