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

4. Операторы Data и Read не используются в vba и при вычислении функций, так как аргументы функций могут быть введены непосредственно в ячейки рабочего листа Excel.

Пример 9: Вычислить значения функции уi2; при заданных значениях xi равными 1, 2,...12.

1. В ячейки А1:А12 рабочего листа введем значения хi равные 1, 2,...,12.

2. На листе модуля наберем текст функции

Function Y(x)

Y=x^2

End Function

3. Выделим ячейку В1 и щелкнем по кнопке мастер функции - fx. Далее - определенные пользователем, Y и ОК.

4. В строку х диалогового окна введем А1 и ОК.

5. Маркер заполнения протащим до В 12.

6. По результатам вычислений, используя мастер диаграмм, построим график.

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

1. Сервис,Макрос, Редактор Visual Basic, чтобы открыть окно редактора Visual Basic.

2. Вставка, Модуль – для создания листа Модуля.

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

4. Набрать на листе Модуля Процедуру.

Для запуска процедур, в отличие от способов запуска функций, рассмотренных в п.3.5.1., используются способы запуска VBA-программ. На этапе создания процедур для их запуска используют один из способов в окне редактора VB- 1. Нажать клавишу F5. 2. Щелкнуть кнопку () Run на панели инструментов. 3. Выполнить команды пунктов меню Запуск\Запуск подпрограммы. В дальнейшем самостоятельно освоить другие способы быстрого запуска программ (л. , с. 72-85).

Рассмотрим пример создания процедуры с использованием оператора For-Each-Next

Пример10. Создание процедуры с использованием оператора For-Each-Next

Для перебора объектов группы подобных объектов, например, ячеек из диапазона или элементов массива, используется оператор цикла For-Each-Next, синтаксис которого приведен на стр ……

Приведенная ниже процедура Знак заменяет все положительные числа диапазона ячеек А1:В2 знаком "+", все отрицательные числа - знаком "-", а нуль оставляет без изменения:

Option Explicit

Sub Знак ()

Dim с(2,2) As Object

For Each с(2,2) In Worksheets ("Лист1").Range("A1:B2")

If IsNumeric(с(2,2).Value)Then

If с(2,2).Value>0 Then с(2,2).Value="+"

End If

If IsNumeric(с(2,2).Value)Then

If с(2,2)c.Value<0 Then с(2,2).Value="-"

End If

If IsNumeric(с(2,2).Value)Then

If с(2,2).Value=0 Then с(2,2).Value=0

End If

Next с(2,2)

End Sub

В процедуре Знак использовалась функция IsNumeric (выражение), которая возвращает True, если выражение может быть описано как числовое, и False - в противном случае.

Задания: 1. Реализовать процедуры примеров 1-10.

2. Индивидуальные задания для самостоятельной разработки функций и процедур.

I. Задания по разветвляющимся алгоритмам

1. Трем переменным a, b, c присвоены некоторые числовые значения. Найти наибольшее значение.

2. Трем переменным a, b, c присвоены некоторые числовые значения. Найти наименьшее значение.

3. Упорядочить числа A,B,C по убыванию.

4. Упорядочить числа А,В,С по возрастанию.

Замечание: в 3-м и 4-м заданиях использовать возможности оператора SWAP A, B, который обменивает местами значения переменных А и В.

5. Вычислить функцию

y=x(x-1)(x-2)/(x-1)(x-2).

Замечание: если х=1 или х=2, функция не определена, иначе значение функции y равно х.

6. Вычислить функцию

x-2, если х<=0

Y = x*x, если х > 0 и х < 3

x+2, если х>=3.

Замечание: использовать логику оператора IF ... THEN... ELSE.

7. Вычислить функцию пункта 6, но использовать логику оператора Select Case.

8. Проверить неравенства существования треугольника (a < b + c, b < a + c, c < a + b). Если неравенства выполняются, выдать на печать "треугольник существует", в противном случае - "треугольник не существует".

9. Вычислить функцию

Z = x^3/y, где y = SIN(NX) + 0.5.

Замечание: y может принимать значения, равные 0.

10. По известным значениям площади круга (Sкр) и площади квадрата (S кв) определить, поместится ли квадрат в круг. Для этого вывести условия вписанного квадрата в круг.

11. При известном значении площади круга (S кр) и площади квадрата (Sкв) определить, поместится ли круг в квадрат. Для этого вывести условия вписанного круга в квадрат.

12. Имеется 6 программ: А, В, С, D, Е и F.

1. Напечатать список программ.

2. Перейти к выполнению нужной программы, используя оператор Select Case.

13. Решить кв. уравнение ax2+bx+c=0.

14. В зависимости от номера месяца выдать сообщение о времени года (зима, весна, лето, осень). Использовать оператор Select Case.

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