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

6 Функции для организации окон ввода и сообщений и их аргументы. Управляющие операторы vba (выбора и цикла).

Окно сообщения

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

 

MsgBox (Prompt [, Buttons]  [, Title]  [, Help file, Context])

Sub DemoMsgBoxO

Dim x As Variant, у As Double

x = InputBox("Введите x")

у = x ^ 2

MsgBox у

MsgBox "x=" & x & vbCr & "y=" & у MsgBox "y=" & y, vblnformation

MsgBox "y=" & y, vbInformation + vbDefaultButton1 + vbYesNo

MsgBox "y=" & y, vbInformation, "Нахождение квадрата”

End Sub

Окно ввода

Функция inputBox выводит на экран диалоговое окно, содержащее сообщение, поле ввода и две кнопки — ОК и Cancel.

При нажатии кнопки Cancel возвращает пустую строку (Empty).

 

InputBox (Prompt [, Title] [, Default] [, Xpos][, Ypos] [,Helpfile][, Context] )

 

Sub DemoInputBoxl() Dim n As String

n = InputBox("Введите ваше имя", "Пример окна ввода")

Debug.Print n

End Sub

Операторы управления

В VBA имеется несколько операторов управления ходом выполнения программы. Функционально они делятся на две группы операторов

  • перехода и выбора (goto, if и Select);

  • повтора (For, For Each, Do Loop и While)

Оператор условного перехода

If Сумма > 1000 Then Скидка = 0.05 Else Скидка = 0

или, что равносильно

If Сумма > 1000 Then Скидка = 0.05

 

Допускается также использование блочной формы :

If Сумма > 1000 Then

Скидка = 0.05

Else

Скидка = 0

End If

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

Sub DemoSelect

Dim х As Integer

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

Select Case х

MsgBox "Число равно 1"

MsgBox "Число равно 2 или 3"

Case 4 То 6

MsgBox "Число от 4 до б"

Case IS >=7

MsgBox "Число не менее 7"

End Select

End Sub

 

Оператор For Next

Sub DemoForl

Dim A As Variant

A = Array(1, 4, 12, 23, 34, 3, 23)

s = 0

For i = LBound(A) To UBound(A)

s = s + A(i)

Next

Msgbox s

End Sub

Оператор For Each

повторяет выполнение группы инструкций для каждого элемента массива или семейства.

 Sub DemoForEach

Dim A As Variant, s As Double

A = Array(1,  4,  12, 23,  34,  3, 23)

s = 0

For Each b In A

s = s + b

Next

Msgbox s

End Sub

 

Оператор While

 While условие

Операторы

Wend

 

Оператор Do

Оператор Do повторяет выполнение набора инструкций, пока условие имеет значение True  (случай While)  ИЛИ пока оно Не примет значение  True (случай until).

Do [{While | Until} condition]

[statements]

[Exit Do]

[statements]

Loop

или

Do

[statements] [Exit Do] [statements]

Loop [{While | Until} condition

В любом месте управляющей структуры Do может быть размещено любое число инструкций Exit Do, обеспечивающих альтернативные возможности выхода из цикла Do.

 

Sub DemoPassword()

Dim ps as String

Do

ps = InputBox("Введите пароль")

Loop Until ps = "Winnie"

End Sub

 

7 Понятие макроса, его проектирование, способы запуска, правила сохранения, передача в другие проекты.

Макрорекордер (MacroRecorder) – это транслятор действий, записывающий действия пользователя при работе вручную и транслирующий их в программу на языке VBA.

Поскольку действия пользователя транслируются в действия над объектами Office, то нетрудно, включив MacroRecorder, записать нужные действия и создать макрос – программу на языке VBA, описывающую действия пользователя в терминах работы с объектами

Термин macro произошел от греческого слова, означающего расширенный или растянутый.

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

Основными преимуществами использования макросов являются: повышение точности и скорости работы, поскольку компьютеры больше приспособлены для выполнения повторяющихся задач, чем человек;

Можно выделить три основные разновидности макросов:

1. Командные макросы – это наиболее распространенные макросы, обычно состоящие из операторов, эквивалентным тем или иным командам меню или параметрам диалоговых окон. Основным предназначением такого макроса является выполнение действий, аналогичных командам меню – т.е. изменение окружения и основных объектов приложения. Например, вставка или форматирование фрагмента текста в Word, изменение рабочего листа в Excel, сохранение или вывод на печать и т.п. В результате выполнения командного макроса вносятся изменения либо в обрабатываемый документ, либо в общую среду приложения.

2.  Пользовательские функции – работают аналогично встроенным функциям Excel. Отличие этих функций от командных макросов состоит в том, что они используют значения передаваемых им аргументов, производят некоторые вычисления и возвращают результат в точку вызова, но не изменяют среды приложения.

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

 

Таким образом, различают 2 способа разработки макроса:

  • использование макрорекордера (MacroRecorder);

  • написание макроса "с нуля", используя язык программирования VBA.