Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
10 Елементарні конструкції мови VBA.doc
Скачиваний:
16
Добавлен:
16.02.2016
Размер:
375.3 Кб
Скачать

10.6. Стандартні (вбудовані) функції мови vba

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

математичні функції (табл.10.5); функції для роботи зі стрічковими змінними та функції для роботи з датами та часом, які будуть розглянуті у відповідних темах.

Таблиця 10.5. Математичні функції, реалізовані у VBA

Функція

Позначення у математиці абож призначення функції

sin(x)

sin(x)

cos(x)

cos(x)

tan(x)

tg(x)

atn(x)

arctg(x)

exp(x)

ex

log(x)

ln(x)

sqr(x)

квадратний корінь з х

abs(x)

[x]

sgn(x)

Знак числа(+1 або -1)

fix(x)

Заокруглює число відкиданням дробової частини

int(x)

Заокруглює число до найближчого меншого цілого числа

rindomize

Ініціює роботу генератора випадкових чисел

rnd(x)

Генерує випадкове число

10.7. Функція MsgBox

Функція MsgBox служить для виводу на екран діалогового вікна з певним повідомленням. Тому ці вікна називають вікнами повідомлень: їх головне призначення – вивести на екран повідомлення. Однак у цьому вікні можуть бути розташовані і інші елементи , наприклад, піктограми, кнопки.

Синтаксис функції MsgBox такий:

MsgBox ( <запрошення > [,< кнопки>] [,<заголовок>] [,<файл довідки>,<зміст>]) ,

або, використовуючи англійську термінологію:

MsgBox ( <prompt>[,<buttons>] [,<title>] [,<help file>,<context>]) .

Аргументи функції MsgBox можуть бути взяті в дужки. Якщо дужки відсутні, то це означає, що функція ніяких значень не повертає, а лише виводить у вікно деяке повідомлення. Якщо ж аргументи беруться в дужки, функція MsgBox додатково повертає цілочисельне значення, як результат клацання по певній кнопці, розташованій у вікні. У цьому випадку після появи на екрані вікна повідомлення ПК чекає, доки користувач клацне по одній із кнопок, розташованих у ньому. Залежно від того, по якій кнопці клацне користувач, функція MsgBox поверне відповідне ціле число (табл. 10.6).

Таблиця 10.6. Числові значення, які повертаються функцією MsgBox

Натиснута кнопка

Константа

Значення, яке повертає функція MsgBox

Ok

vbOk

1

Отмена

vbCancel

2

Стоп

vbAbort

3

Повтор

vbRetry

4

Пропустить

vbIgnore

5

Да

vbYes

6

Нет

vbNo

7

Розглянемо кожен аргумент функції MsgBox детальніше.

Аргумент <запрошення> ( < prompt >) - єдиний обов’язковий аргумент функції. Це стрічковий вираз або стрічкова константа, тобто набір символів клавіатури, взятий в лапки. Саме ця стрічкова константа або ж значення стрічкового виразу з’явиться у вікні повідомлення.

Аргумент <кнопки> ( < buttons >)- другий аргумент функції MsgBox - є цілочисельним виразом або константою. Цей аргумент не обов’язковий. Якщо аргумент <кнопки> відсутній, то вікно має лише одну кнопку Оk. Якщо ж аргумент <кнопки> є у списку аргументів функції MsgBox, то він дозволяє управляти наступними параметрами вікна:

  • кількістю кнопок у вікні;

  • типом кнопок і їх розміщенням у вікні;

  • піктограмою, яка виводиться у вікні;

  • яка із кнопок призначається кнопкою за замовчуванням;

  • режимом вікна – модальне воно чи ні.

У таблиці 10.7 наведені константи мови VBA та їх значення для задання аргументу <кнопки>. Ці константи умовно можна розділити на чотири групи:

  • перша група констант визначає, які саме кнопки будуть виведені у вікні, тим самим їх кількість і тип;

  • друга група констант дозволяє вибрати стиль піктограми, яка відображується у вікні;

  • третя група констант служить для задання кнопки, яка буде кнопкою за замовчуванням;

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

Аргумент <кнопки> може використовувати лише по одній константі із кожної групи, об’єднавши їх знаком „плюс”. Щоб не помилитися при вводі значень аргументу <кнопки>, доцільно використовувати спливаючу підказку, яка з’являється після введення знаку „+”.

Таблиця 10.7. Константи мови VBA для задання аргументу <кнопки>

Група

Константа

Значення

Опис

Коди командних кнопок

1

vbOkOnly

vbOkCancel

vbAbortRetryIgnore

vbYesNoCancel

vbYesNo

vbRetryCancel

0

1

2

3

4

5

Відображає лише кнопку Ok (встановлюється за замовчуванням)

Відображає кнопку Ok і Отмена

Відображає кнопки Стоп, Повтор і Пропустить

Відображає кнопки Да, Нет, Отмена

Відображає кнопки Да, Нет

Відображає кнопки Повтор і Отмена

Коди активності кнопок за замовчуванням

2

vbCritical

vbQuestion

vbExclamation

vbInformation

16

32

48

64

Відображає забороняючи піктограму (білий знак Х у червоному крузі)

Відображає запитальну піктограму (знак ? у голубому крузі)

Відображає попереджуючу піктограму (знак ! у жовтому трикутнику)

Відображає інформаційну піктограму (знак І у голубому крузі)

Коди стилів піктограми

3

vbDefaultButton1

vbDefaultButton2

vbDefaultButton3

vbDefaultButton4

0

256

512

768

Перша кнопка активна за замовчуванням

Друга кнопка активна за замовчуванням

Третя кнопка активна за замовчуванням

Четверта кнопка активна за замовчуванням

Коди модальності вікна

4

VbApplicationModal

VbSystemModal

0

4096

Модальний режим додатку: користувач повинен закрити вікно повідомлення перед продовженням роботи у поточному додатку

Системний режим: всі додатки недоступні, поки не закриється вікно повідомлення

Додаткова

VbMsgboxHelpButton

VbMsgboxSetForeGround

vbMsgboxRight

vbMsgboxRtlReading

16384

65536

524288

1048576

Відображає кнопку Справка

Робить вікно повідомлення вікном переднього краю

Відображає вікно повідомлення, вирівненим по правому краю

Для івриту і арабської мови вказує, що текст виводиться справа наліво

Розглянемо, як користуватися кодами, наведеними у таблиці !1.2. Звичайно, розробник проекту повинен чітко уявляти, яким він хоче бачити вікно повідомлення і які кнопки з першого розділу таблиці повинні бути у вікні. Якщо кнопок буде більше, ніж одна, потрібно визначитися з тим, яка з них буде активною за замовчуванням, вибравши відповідну константу з другого розділу таблиці. Командна кнопка, активна за замовчуванням, автоматично вважається натиснутою, якщо після відображення вікна повідомлення буде натиснута клавіша Enter. Командні кнопки розміщуються у вікні у тому порядку, в якому вони наведені у першому розділі таблиці 10.7. Далі розробник проекту у третьому розділі таблиці вибирає константу, яка додає у вікно повідомлення підходящу піктограму, а з четвертого розділу вибирає константу, яка визначає, режим роботи додатку. Додавши ці константи або відповідні їм числові значення, отримаємо суму, яка і слід використати у якості аргументу <кнопки>. Наприклад, нехай потрібно вивести діалогове вікно повідомлення, розмістивши в ньому кнопки Yes та No, кнопку No зробити активною за замовчуванням, додати попереджувальну піктограму і зробити це вікно програмним модальним. Наводимо процедуру MsgBox1(), яка розв’язує цю задачу.

Public Sub MsgBox1()

'Вивчаємо аргумент кнопки вікна повідомлення

Dim theButtons As Integer

Dim S As String * 10

Dim SS As String * 15

theButtons = vbYesNo + vbDefaultButton2 + vbExclamation + _

vbAhhlscationModal

MsgBox "Вигляд вікна повідомлення", theButtons

End Sub

Результат роботи процедури наведено на рис.10.4.

Рис. 10.4. Вікно повідомлення, отримане за допомогою функції MsgBox.

Цю процедуру можна подати і в іншому вигляді, враховуючи, що константі vbYesNo відповідає значення 4, константі vbDefaultButton2 відповідає значення 256, константі vbExclamation відповідає значення 48, константі vbApplicationModal відповідає значення 0, отже, сума всіх значень дорівнює 4+256+48+0 =308.

Аргумент <заголовок> (<title>) є необов’язковим. Це стрічковий вираз або стрічкова константа, значення якої виводиться у заголовку вікна. Інакше кажучи, у такий спосіб формується назва вікна повідомлення. Якщо цей аргумент не задано, то у заголовку вікна виводиться назва того додатку, у якому створюється проект, наприклад, Microsoft Excel.

Аргументи <файл довідки>,<зміст> (<<help file>,<context>>) також є необов’язковими і можуть бути одночасно присутніми у списку аргументів, або ж одночасно бути відсутніми. Аргумент <файл довідки> це стрічковий вираз або стрічкова константа, яка ідентифікує назву файла довідки. У цьому файлі розробник проекту розміщує довідкову систему проекту у вигляді пронумерованих повідомлень. Аргумент <зміст> - це цілочисельний вираз або константа, яка означає номер повідомлення із довідкової системи.

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