Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие по VBA(Курица).docx
Скачиваний:
30
Добавлен:
17.11.2019
Размер:
2.71 Mб
Скачать

Контрольные вопросы

  1. Опишите этапы создания модуля проекта VBA?

  2. Перечислите основные типы модулей в VBA?

  3. Перечислите три типа процедур модуля VBA?

  4. Каким оператором производится объявление переменных в VBA?

  5. В чем отличие объявления переменной с помощью операторов Static от оператора Public?

  6. Какие переменные можно объявить с помощью операторов Public и Private?

  7. Перечислите основные инструкции операторов присваивания в VBA?

  1. Понятие макроса, создание, отладка программы

    1. Понятие макроса. Создание макроса

Макрос - процедура на внутреннем языке приложения, в которой записаны действия пользователя приложения. В приложении MC Excel макрос записывается на VBA [10,11,12].

Чтобы начать запись макроса, необходимо (рис.21.):

  • активизировать приложение;

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

  • выбрать команду Вид\Макрос;

  • выбрать команду Начать запись. Выводится диалоговое окно Запись макроса;

  •  ввести имя записываемого макроса в поле Имя макроса;

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

  • нажать ОК, чтобы начать запись.

Рис.21. Запись макроса

После этого записываются все выполняемые в приложении действия. По завершении выполнения требуемых действий необходимо:

- нажать на панели инструментов Остановка записи кнопку Остановить запись;

- или выбрать команду Вид\Макрос\Остановить запись.

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

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

- выбрать команду Сервис\Макрос\Макросы. Выводится диалоговое окно Макрос.

- выбрать имя требуемого макроса;

- нажать кнопку Выполнить для запуска макроса.

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

- выбрать команду Вид\Макрос\Макросы. Выводится диалоговое окно Макрос;

- выбрать имя требуемого макроса;

- нажать кнопку Изменить. Макрос выводится в окне редактора Visual Basic for Applications.

Пример 1. Создание макроса

- , Параметры Excel, Показывать вкладку «Разработчик»,

- (окно VBA), View / Immediate Window, View / Code,

- ! - безопасность макроса, добавить кнопку, включить все макросы,

- задача: вычислить при x=6.678; y=7.565,

- вывести исходные данные и результаты расчетов, полученные результаты округлить до 2-х знаков после запятой, набрать программу,  (Выполнить).

Код макроса

Комментарий

Option Explicit

Объявление необходимости задания переменной

Public Sub Execute()

Начало процедуры

Dim x As Single, y As Single

DIM - оператор объявления (задания) переменной, Single – тип переменной (с плавающей запятой)

Dim z As Single, d As Single

x = 6.678

Исходные данные

y = 7.565

z = Sqr(x ^ 2 + y ^ 2)

Расчетные формулы

d = z ^ 3

Debug.Print "X="; x; " Y="; y

Вывод результатов

Debug.Print "Z="; Format(z, _ "###0.00"); "D="; Format(d, _ "###0.00")

Вывод результатов с округлением ( - перенос строки)

End Sub

Окончание процедуры

П ример 2. Выполнить вычисления (макрос) по формуле

- данные вводятся с клавиатуры,

- если данные не числа – сообщение об ошибке,

- после вычислений вывести запрос на продолжение.

Код макроса

Комментарий

Option Explicit

Public Sub ExecDialog()

Начало процедуры

Dim a As Single, b As Single

Задание переменных

Dim z As Single

Dim strA As String, strB As String

Dim response

newInput:

Ввод данных в диалог

strA = InputBox("InputA")

strB = InputBox("InputB")

If Not IsNumeric(strA) Or Not _ IsNumeric(strB) Then

Проверка ввода (условие) (если данные не числа - сообщение об ошибке в диалоге с пиктограммой (х))

MsgBox "Error!" & Chr(10) & Chr(13) & "Not _ number data!", vbCritical, ""

Exit Sub

End If

a = CSng(strA): b = CSng(strB)

Преобразование a и b в число с плавающей запятой

z = Sqr(a ^ 2 + b ^ 2)

Формула

MsgBox "Z=" & Format(z, "###0.00") & "A=" & _ a & "B=" & b, vbInformation, ""

Вывод результатов работы в диалог с пиктограммой (!)

response = MsgBox("Input new data", _ vbQuestion + vbYesNo, "")

Запрос на повторный ввод данных в диалоге с пиктограммой (?) и кнопками Да, Нет

If response = vbYes Then GoTo newInput

Если Да, новый ввод данных

End Sub

Окончание процедуры

Пример 3. Разместить в диапазоне ячеек B5 - I5 целые положительные и отрицательные числа. Разработать макрос для определения минимального числа. Окрасить ячейки с минимальным числом в зеленый цвет (рис. 22.).

Рис. 22. Результат программы примера 3.

Пример 4. Разработать макрос для вывода в ячейки B6- I6 целых случайных чисел. Числа выводятся случайным образом. Границы диапазона чисел задаются на рабочем листе. Ячейки с положительными числами окрашиваются в зеленый цвет, а с отрицательными значениями в красный. Отсортировать полученную последовательность чисел по возрастанию и вывести ее в ячейки B8 – I8 (рис. 23.).

Рис. 23. Результат программы примера 4.