Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB_1 Mетодичка-Exel_укр_2.doc
Скачиваний:
3
Добавлен:
17.09.2019
Размер:
1.43 Mб
Скачать

17.Використання властивостей, що характеризують активність

Властивості, що характеризують активність, часто використовують в методах Select і Active.

Метод Select вибирає область клітин або сторінку.

Метод Active робить активним окрему клітину в рамках поточного вибору.

Властивість ActiveВook застосовується до робочої книги, що відображується в даний момент.

Властивість ActiveSheet – до поточної сторінки активної робочої книги.

Властивість ActiveCell завжди застосовується до одиничного об'єкту Range, що містить активну клітину поточної сторінки.

Властивість Selection тісно пов'язана з властивістю ActiveCell, але більше відноситься до всього вибору, чим до окремої клітини. Якщо вибрана лише одна клітина, Selection і Active однотипні.

Приклади:

Sub Program()

Форматування вибраної клітини В3 і даних на аркуші

Sheets(“Лист1”).Select ‘ в поточній книзі вибраний лист Лист1

ActiveSheet.Range(“B3”).Select ‘ на активному (вибраному) листі вибрана клітина B3

ActiveCell.Value = 23 ‘ в активну клітину записується значення 23

ActiveCell.NumberFormat = “0.00” ‘ в активній клітині задається числовий ‘формат 0.00

ActiveCell.HorizontalAlignment = xlCenter ‘ в активній клітині задається формат ‘розташування даних по горизонталі по центру

Форматування вибраного діапазону кліток C5:F7

Форматування даних на вибраному аркуші (Лист1)

ActiveSheet.Range(“C5:F7”).Select ‘ на активному (вибраному) листі вибираємо ‘діапазон клітин C5:F7

Selection.Value = 32 ‘ заповнюємо вибраний діапазон значенням рівним 32

Selection.NumberFormat = “0.00” ‘ в вибраному діапазоні задається числовий ‘формат 0.00

Selection.HorizontalAlignment = xlCenter ‘ в вибраному діапазоні задається ‘формат розташування даних по горизонталі по центру

ActiveSheet.Range (“A1”).Select ‘ на активному листі вибрана клітина A1

End Sub

18.Використання властивостей, що характеризують вміст

Властивість Value містить поточне значення клітини (числове і символьне).

Властивість Formula характеризує вміст, який записаний у клітину.

Властивість Formula пропонує два варіанти запису посилань на клітину у формулі:

  1. у стилі A1 (ім'я колонки - номер рядка)

  2. у стилі R2C3 (номер рядка – номер стовпця)

19. Властивості форматування

Format/Cells > Number (для здобуття списку числових форматів)

Format/Cells > можна отримати список кольорів, фонів і рамок.

Кращим способом написання програм форматування клітин на VBА є використання макрорекордера.

Приклад: для створення макросів зразків форматування, зручно в одну клітину, наприклад С4 написати текст, в іншу, наприклад С6 написати число, включіть запис макросу (тема 2) і відформатувати потрібним чіном ці клітини, припинить запис, переглянуть утворений макрос для редагування, таким чином можливо його використання в вашій програмі подалі (посилання на цю процедуру, або всавка тексту цього макросу в ваш код програми).

20.Методи роботи з таблицями

Зручні у вживанні деякі методи об'єкту Range, такі як Cut, Copy, Paste. Ці три методи не використовують ніяких аргументів – вони просто передають вміст об'єкту Range в буфер обміну або з нього.

Зручні методи Clear і ClearContents, які або повністю очищають клітину або видаляють лише формулу і значення.

Метод PrintOut зручно використовувати для передачі об'єкту Range на принтер. Можете вибрати область, а потім надрукувати цей об'єкт: Selection.PrintOut

Контрольні завдання по темі

1. Теоретичні питання

2. Тести

3. Практичні завдання

Вживання процедур і функцій

21. Передача величин процедурі

Аргументи в заголовку процедури дають можливість визначити імена і типи величин, які будуть передані цій процедурі. За винятком глобальних змінних і змінних, визначених на рівні модуля. Всі змінні в процедурі є приватними для даної процедури, окрім вказаних як аргументи в заголовку процедури і передані цій процедурі або з неї.

Окрім оголошення змінних, які можуть передаватися в процедуру або повертатися, потрібно оголошувати типа цих змінних.

Приклад:

Sub Product1(Value1 As Single, Value2 As Single, Resume As Single)

Resume = Value1*Value2

End Sub ‘ процедура, яка отримує два перші аргументи із зовні

‘ перемножує їх і повертає результат у вигляді третього аргументу

Якщо тип не визначений, то за умовчанням вважається Variant. Існує декілька варіантів передачі значення процедурі з іншої, розглянемо їх:

  1. Для того, щоб викликати цю процедуру з іншої можна розглянути приклад:

Sub Program2() ‘ процедура визначає результуючу змінну типа Single на ім'я Result

DIM Result As Single

Product1 5, 7, Result ‘ викликає процедуру Product1 та

‘передає значення 5 для змінної Value1, 7 - Value2

‘ і отримує результат в змінній Result, тобто Result= Resume

Debug.Print Result ‘ Метод Print об'єкту Debug друкує результат у вікні відладки

End Sub

  1. Можна передавати значення змінних, які визначаються раніше, приклад:

Sub Program3()

Dim Result As Single, VALA As Single, VALB As Single

VALA = 5

VALB = 7

Product1 VALA, VALB, Result ‘ викликає процедуру Product1 та

‘передає значення VALA для змінної Value1, VALB - Value2

‘ і отримує результат в змінній Result, тобто Result= Resume

Debug.Print Result

End Sub

  1. Для передачі аргументів можна застосовувати пойменовані списки. У пойменованому списку використовується ім'я змінної із заголовка процедури, привласнене значення або змінна, які ви хочете передати.

Sub Program4 ()

Dim Result As Single, VALA As Single, VALB As Single

VALA = 5

VALB = 7

Product1 Product:= Result, Value1:= VALA, Value2:= VALB

‘ отримання результату в змінній Product, тобто Product = Result

‘ передача для змінної Value1 значення VALA , для змінної Value2 значення VALB

Debug.Print Result

End Sub

  1. Багато процедур і функції можуть використовувати невизначену кількість аргументів. Для цього перед останнім аргументом в заголовку процедури, потрібно вказати ключове слово ParamArray (аргумент тим самим перетвориться в масив змінних типа Variant). У самій процедурі/функції необхідно визначити, скільки елементів може містити цей масив, аби потім оперувати цими елементами. В цьому випадку надалі використовують функцію Ubound(), для визначення номера останнього елементу масиву або цикл For Each для операцій зі всіма елементами масиву.

Приклад:

Sub Program5()

Dim Result As Single, Val1 As Single, Val2 As Single, Val3 As Single, _

Val4 As Single

Val1 = 5

Val2 = 7

Val3 = 10,5

Val4 = -3,2

Product2 , Val1, Val2, Val3, Val4 ‘ викликає процедуру Product2 та

‘ отримання результату в змінній Result, тобто Result = R

‘ передача для набору Massive() чотирьох значень Val1, Val2, Val3, Val4

Debug.Print Result

End Sub

Sub Prodact2 (R As Single, ParamArray Massive())

‘процедура в якій знаходиться добуток елементів набору Massive

Dim A

R=1

For Each A in Massive()

R=R*A

Next A

End Sub

Оператор Static використовується в процедурах для збереження змінної в процедурі і після, того як вона передасть цю змінну процедурі, що викликається:

Static ім'я_змінної As тип

  1. В деяких випадках потрібно дозволити користувачеві не визначати який аргумент, або використовувати замість нього значення за умовчанням. У цих випадках перед ім'ям такого аргументу в заголовку процедури вказується ключове слово Optinal. Така процедура повинна містить перевірку даного аргументу за допомогою функції IsMissing() і якщо він відсутній, використовувати замість нього значення за умовчанням.

Приклад:

Sub Prodact3 (R1 As Single, Val1 As single, Optional Val2)

If IsMissing(Val2) Then Val2=1

R1=Val1*Val2

End Sub

Sub Program6()

Dim Result As Single, Val1 As Single, Val2 As Single

Val1 = 5

Val2 = 7

Product3 Result, Val1 ‘ викликає процедуру Product3 та

‘ отримання результату в змінній Result, тобто Result = R1

‘ передамо для змінної Val1 значення Val1,а для змінної Val2 значення не передаємо

Debug.Print Result

Product3 Result, Val1, Val2 ‘ викликає процедуру Product3 та

‘ отримання результату в змінній Result, тобто Result = R1

‘ передамо для змінної Val1 значення Val1,а для змінної Val2 значення Val2

Debug.Print Result

End Sub

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