Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператори мови VBA

Читайте также:
  1. ВиконуваніОператори
  2. Оператори checked и unchecked



Лабораторна робота 5

Завдання до лабораторної роботи 4

Запустити на виконання приклади 1-5, описати результати, зробити висновки.

 

1. Оператор присвоювання – призначає результат обчислення виразу змінній, константі чи властивості об'єкта.

[LET] < змінна > = < вираз >

Для присвоювання змінній посилання на об'єкт застосовується інструкція SET.

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

2. Оператор умовного переходу

Синтаксис:

1) блокова форма синтаксису:

if < умова > then

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

[else

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

end if

галузь else є необов'язкова;

2) if < умова > then [< вираз1>] [else <вираз2>]

галузь else також необов'язкова;

3) вкладені умови

if <умова1> then

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

[else if <умова2> then

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

[else

[<блок операторів 3>]]

end if.

 

3. Оператор вибору використовується, якщо необхідно перевірити кілька умов (тому що if може стати занадто громіздким).

Синтаксис:

Select Case <тестований вираз>

[Case <умова вибору 1>

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

…....

[Case <умова вибору n>

[<блок операторів n>]]

[Case else

[<блок else >]]

end select.

<Умова вибору> – список з роздільниками, що складається з одного чи декількох виразів виду:

- <вираз> (строкове чи числове);

- <вираз> To <вираз> , де To задає діапазон значень;

- Is <оператор порівняння> <вираз>.

Is з операторами порівняння задає діапазон значень.

Is позначає тестований вираз.

 

4. Оператор FOR … NEXTоператор циклу, що повторює виконання групи інструкцій зазначене число раз.

Синтаксис:

For <лічильник>=<почат. значення> To <кінц. значення> [STEP<крок>]

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

[EXIT For]

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

NEXT <лічильник >

За замовчуванням <крок > =1.

Припустимо вкладені цикли.

 

5. Оператор FOR EACH ... NEXT повторює виконання групи інструкцій <блок операторів> для кожного елемента <елемент> з масиву сімейства <група>

 

Синтаксис:

For Each <елемент> In <група>

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

[Exit For]

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

Next [<елемент>]

 

6. Оператор WHILE ... WEND виконує цикл, поки умова <умова> має значення True.

Синтаксис:

While <умова>

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

Wend.

На відміну від For ... Next працює не зазначене число раз, а поки виконається умова.

 

7. Оператор DO ... LOOP виконує цикл, поки умова істинна True (випадок While) чи поки не набуде значення True (випадок Until).



Синтаксис:

Do {While | Until} <умова>

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

[Exit Do ]

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

Loop

чи

Do

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

[Exit Do]

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

Loop {While|Until} <умова>

 

Оператор безумовного переходу GоTо задає перехід на зазначений рядок усередині процедури.

Синтаксис:

GoTo <line>,

<line> - може бути номером будь-якого влучного рядка.

Для використання GoTo треба будь-якому рядку привласнити мітку. Мітка починається з букви й закінчується двокрапкою.

9. Оператор WITH рятує від стомлюючого обов'язку використовувати велику кількість повторень імені того самого об'єкта під час роботи з його властивостями й методами.

Синтаксис:

With <об'єкт>

<блок операторів>

End with.

Приклади застосування операторів VBA.

Приклад 1

Розглянемо приклад застосування операторів For-Next у такій задачі.

Зменшити розмір активного вікна, тобто вікна додатка Excel, потім змусити його «пропливти» уздовж границь екрана й знову розгорнути до початкових розмірів.

Public Sub proc1()

Application.Windows.Arrange

With ActiveWindow 'зменшуємо поступово розміри вікна

For x = 1 To 25

.Height = .Height - 10

.Width = .Width - 20

.Top = .Top + 5

.Left = .Left + 10

Next x

'переводимо вікно в лівий верхній кут екрана

.Top = 0

.Left = 0

'рухаємо вікно вздовж границь екрана

For x = 0 To 250 Step 5

.Top = x

Next x

For x = 0 To 400 Step 5

.Left = x

Next x

For x = 250 To 0 Step -5

.Top = x

Next x

For x = 400 To 0 Step -5

.Left = x

Next x

End With

'розвертаємо вікно до початкового розміру

Application.Windows.Arrange

ActiveWindow.WindowState = xlMaximized

End Sub

Приклад 2

Продемонструємо роботу оператора Select Case на такому прикладі.

За допомогою вбудованої функції InputBox («текстовий рядок», «заголовок вікна») уведемо числа а і х. Залежно від уведеного числа х числу а будемо привласнювати різні значення.

Public Sub proc1()

Dim a As Long

Dim x As Integer

a = InputBox("уведіть число", "уведення")

x = InputBox("уведіть ціле число", "уведення")

Select Case x

Case 1 'перевірка умови х=1

a = a ^ 2

Case 2, 3 'якщо істина хоча б одна з умов х=2 чи х=3

a = a ^ 3

Case 4 To 7 ' якщо х набуває одне зі значень 4,5,6,7

a = a ^ 2 + a ^ 3

Case Is > 8 'якщо х>8

a = 1 + Abs(a) + 3 * a ^ 2

Case Else 'для всіх інших цілих значень х

a = -a

End Select

MsgBox "a= " & a

End Sub

 

Приклад 3

Цикл For-Each-Next дозволяє перебирати всі об'єкти сімейства чи елементи масиву й виконувати ті самі дії над кожним об'єктом чи елементом.

Public Sub proc1()

'Приклад застосування циклу для роботи із сімейством WorkBooks.

'Створимо 10 нових книг, упорядкуємо їх "поруч" і, нарешті,

'усі книги закриємо, за винятком тієї,

'з якої був запущений даний приклад

Dim x As Integer

Dim B As Workbook

For x = 1 To 10

Workbooks.Add

Next x

Windows.Arrange

MsgBox "робочі книги впорядковані"

For Each B In Application.Workbooks

If B.Name <> ThisWorkbook.Name Then

B.Close

End If

Next

ActiveWindow.WindowState = xlMaximized

Еnd Sub

Приклад 4

Застосування циклу під час роботи з сімейством WorkSheets.

Змінимо ім'я кожного листа в активній робочій книзі на "Робочий лист №". Застосуємо вкладений цикл For-Each-Next для занесення випадкового числа в кожну чарунку діапазону А1:К20 кожного робочого листа активної робочої книги. Якщо випадкове число виявиться великим, наприклад 500,виділимо чарунку червоним кольором, змінимо стиль шрифту. Усі інші чарунки пофарбуємо в жовтий колір.

Public Sub proc2()

Dim w As Worksheet

x = 1

For Each w In ActiveWorkbook.Worksheets

w.Name = "робітник лист №" & x

x = x + 1

MsgBox w.Name

Next w

Dim c As Range

For Each w In ActiveWorkbook.Worksheets

w.Select

For Each c In Range("A1:K20")

c.Value = Int(100 * Rnd())

Randomize

If c.Value > 500 Then

c.Font.Size = 18

c.Font.Bold = True

c.Interior.ColorIndex = 3 'червоний

Else

c.Interior.ColorIndex = 6 'жовтий

c.Font.ColorIndex = 5 'синій

End If

Next c

Next w

End Sub





Дата добавления: 2014-12-27; Просмотров: 130; Нарушение авторских прав?;


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



ПОИСК ПО САЙТУ:


Читайте также:



studopedia.su - Студопедия (2013 - 2017) год. Не является автором материалов, а предоставляет студентам возможность бесплатного обучения и использования! Последнее добавление ip: 54.156.47.142
Генерация страницы за: 0.01 сек.