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

Методичні рекомендації до виконання завдання № 1

Тема: Створення процедур і функцій користувача

Ціль: Одержати практичні навички створення функцій користувача в середовищі VBA для додатка MS Exсel

  1. В середовищі VBA розробити функцію:

    1. Створити в VBA модуль користувача.

    2. В середовищі VBA розробити функцію відповідно до завдання.

    3. Перейти на листок «Функції».

    4. Перевірити роботу функції:

      1. Викликати Мастер функции.

      2. В діалоговому вікні Мастера функций (Шаг 1) в полі Категория вибрати категорію Определенные пользователем.

      3. У списку Выберите функцию вибрати ім'я розробленої функції. Натиснути ОК.

      4. В діалоговому вікні Аргументы функции ввести аргументи функції. Натиснути ОК.

Варіанти завдань приведені в таблиці 1.5.

Таблиця 1.5

Завдання

№ вар.

Завдання

№ вар.

Завдання

№ вар.

Завдання

№ вар.

Завдання

1

F= x+y3

7

F=a + c*x2

13

F= a*cos x

19

F=xy

2

F=(x+y)3

8

F=a*sin x

14

F=a3+3

20

F= xyz

3

F=a +b*x

9

F=3,5 + 7*x

15

F=

21

F= x3+1

4

F=

10

F=3,5 – 2*x2

16

F=y +

22

F=1 +

5

F=x +

11

F=(x-1)*x

17

F= a3 _

2

F= -2

6

F=

12

F= x2 + 1

18

F= x2 +

24

F= - y

Використання інструкцій vba

Під конструкціями управління звичайно розуміють оператори (інструкції) і убудовані функції мови, за допомогою яких здійснюється управління ходом виконання програми. У VBA використовуються такі основні структури управління:

If…Then…Else

Select Case

For…Next

Do…Loop...

Нижче будуть наведені приклади синтаксису цих структур.

Увага! Квадратні дужки означають необов'язковість використання цих елементів, тобто вони можуть бути відсутні.

  1. Умовний оператор Іf...Then...Else.

Умовне виконання групи операторів у залежності від значення вираження. Синтаксис:

    1. Проста лінійна форма:

If умова Then [оператор_1] [Else оператор_2]

Оператор_1 виконується, якщо умова істина, у противному випадку виконується оператор_2.

Умова це вираження логічного типу. Вираження може бути простим і складним. У першому випадку використовуються логічні відносини, перелік яких приведений у таблиці 1.6. Складні логічні вираження виходять із простих за допомогою використання логічних операцій, перелік яких приведений у таблиці 1.7 і, при необхідності, круглих дужок.

    1. Блочна форма:

If умова1 Then

[блок_ операторів1]

[ElseIf умова_2 Then

[блок_ операторів2]

[ElseIf умова_3 Then

[блок_ операторів_3]

...

[Else

[блок_ операторів]]

End If

Блок операторів_i виконується, якщо умова_ І є істиною, у противному випадку виконується блок_ операторів.

Оператори Else і Elseіf є необов'язковими. Можна використовувати стільки операторів Elseіf скільки потрібно в блоці Іf, але вони ніколи не можуть знаходитися після оператора Else. Блоки операторів Іf можуть бути вкладеними, тобто містити в собі інші Іf блоки.

Таблиця 1.6

Логічні відносини

Операція

Найменування

Вираження

Результат

=

дорівнює

A=B

True, якщо A дорівнює B

<>

не дорівнює

A<>B

True якщо A не дорівнює B

>

більше

A>B

True якщо A більше B

<

меньше

A<B

True якщо A менше B

>=

більше або дорівнює

A>=B

True якщо A більше або дорівнює B

<=

меньше або дорівнює

A<=B

True якщо A менше, або дорівнює B

Таблиця 1.7

Логічні операцій

Операція

Найменування

Вираження

A

B

Результат

Not

Логічне заперечення

Not A

False

True

True

False

And

Логічне И

A And B

True

True

False

False

True

False

True

False

True

False

False

False

Or

Логічне ИЛИ

A Or B

True

True

False

False

True

False

True

False

True

True

True

False

  1. Оператор Select Case.

Виконує одну з кілька груп операторів у залежності від значення вираження, що перевіряється.

Синтаксис:

Select Case вираження, що перевіряється

[Case список виражень-n

[оператори-n]] ...

[Case Else

[else оператори]]

End Select

Приклад використання.

Написати функцію користувача, що обчислює значення функції F в залежності від значення аргументу X:

1) Конструкція If…Then…Else

FunctionF1_If(X)

IfX>=0AndX<=1Then

F1_If=Sin(1+X+X^2)^4/Cos(10*X+3)

ElseIfX>=2AndX<=5OrX>10Then

F1_If=Sqr(Abs(X^3-5*X))

ElseIfX>=6AndX<=8Then

F1_If=(X^2+4)/(X^2-4)

Else

F1_If=0

EndIf

EndFunction

2)Конструкція Select Case

Function F1_Case(X)

Select Case X

Case 0 To 1

F2_Case = Sin(1 + X + X ^ 2) ^ 4 / Cos(10 * X + 3)

Case 2 To 5, Is>10

F2_Case = Sqr(Abs(X ^ 3 - 5 * X))

Case 6 To 8

F2_Case = (X ^ 2 + 4) / (X ^ 2 - 4)

Case Else

F2_Case = 0

End Select

End Function

  1. Оператори циклу.

Для виконання якого-небудь оператора, або блоку операторів, декілька разів використовуються оператори циклу. Існують 2 види циклів:

  • цикли, що виконуються заздалегідь задану кількість разів, у VBA для цього використовується оператор For ... Next;

  • цикли, що виконуються доти поки не буде виконана яка-небудь умова - оператор Do ... Loop.

Є різновиди кожного типу циклів.

Нижче наведено синтаксис основних видів операторів циклу.

Оператор циклу For ... Next.

Повторює блок операторів задану кількість разів.

Синтаксис: For лічильник = початок To кінець [Step крок]

[оператори]

[Exit For]

[оператори]

Next [лічильник], де:

лічильник - обов'язковий; числова змінна, котра використовується як лічильник циклу;

початок - обов'язковий;. початкове значення лічильника;

кінець - обов'язковий; кінцеве значення лічильника;

крок - необов'язковий; значення, на яке змінюється лічильник при кожному виконанні циклу. За замовчуванням дорівнює одиниці.

оператори – оператори; один або більш операторів між For and Next, що виконуються задану кількість разів.

Оператор циклу Do ... Loop.

Повторює блок операторів, поки умова істина - Whіle, або доти, коли умова стане істинною - Untіl.

Синтаксис: Do [{While | Until} умова]

[оператори]

[Exit Do]

[оператори]

Loop

Приклад використання різних типів операторів циклу. Обчислити значення функції F (дивиться попередній приклад) для декількох значень аргументу X, що знаходяться на листі Excel у стовпці A, починаючи з другого рядка, тобто A2 - це адреса першого значення аргументу.

Пояснення.

У VBA діапазон осередків "A:A" означає стовпець. У російськомовній версії Excel функція СЧЕТЗ підраховує кількість заповнених комірок у виділеному діапазоні. В англомовній версії це функція Count. Таким чином, функція Application.Count(Range("A:A")) підраховує кількість не порожніх (заповнених) комірок у стовпці A.

  1. Оператор цикла For ... Next

Function F1_If(X)

...........................

End Function

Sub For_Next()

Dim n As Integer

n = Application.CountA(Range("A:A"))

For r = 2 To n

X = Cells(r, 1).Value

Cells(r, 2).Value = F1_If(X)

Next

End Sub

2) Оператори циклу Do … Loop

а) конструкція Do While... Loop

Function F1_If(X)

...........................

n = Application.CountA(Range("A:A"))

r = 2

Do While r <= n

X = Cells(r, 1).Value

Cells(r, 2).Value = F1_If(X)

r = r + 1

Loop

End Sub

б) конструкція Do Until... Loop

Function F1_If(X)

...........................

End Function

Sub Do_Until()

n = Application.CountA(Range("A:A"))

r = 2

Do Until r > n

X = Cells(r, 1).Value

Cells(r, 2).Value = F1_If(X)

r = r + 1

Loop

End Sub

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