Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекції VBA.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.17 Mб
Скачать
    1. Приклад макроса

Приклад 2.1. Напишемо процедуру, що виконує такі дії:

  1. Заносить в клітину А1 текст «Кількість одиниць», в клітину В1 текст «Вартість одиниці», в клітину С1 текст «Ціна одиниці», в клітину D1 текст «Загальна вартість»;

  2. У клітину А2 записує число 1, в клітину А3 число 2 і потім заповнює клітинии від А4 до А16 значеннями від 3 до 15;

  3. У клітини від В2 до В16 записує випадкові числа з інтервалу від 0 до100 і округляє їх до цілого;

  4. Копіює вміст клітин В2:В16 у буфер, а потім вставляє з буфера в діапазон С2:С16 тільки значення з клітин В2:В16;

  5. У клітину D2 записує формулу, що перемножує числа з клітин C2 і А2 і копіює цю формулу в діапазон D3:D16;

  6. Проводить межу під діапазоном А16:D16 подвійною тонкою лінією.

  7. У клітину D18 поміщає формулу, що сумує усі числа зі стовпчика D.

  8. У клітину C19 записує формулу, що обчислює мінімальне значення з діапазону C2:C16.

  9. Знаходить у діапазоні С2:С16 клітину із мінімальним значенням і виділяє її кольором.

  10. Сортує список за значеннями третього стовпчика.

Sub Пример21()

Range("A1"). Value = "Кількість одиниць"

Range("B1"). Value = "Вартість одиниці"

Range(“C1”),Value= ”Ціна одиниці”

Range("D1"). Value = "Загальна вартість"

Range("A1:C1"). Select

Selection. Columns. AutoFit ‘ автопідбір ширини стовпчиків

Range("A2"). Value = 1

Range("A3"). Value = 2

Range("A2:A3"). AutoFill Destination:=Range("A2:A16"),

Range("B2:B16"). Formula = "=INT(RAND()*100)"

Range(“B2:B16”). Copy

Range("C2"). PasteSpecial xlPasteValues

Range("D2"). Formula = "=A2*C2"

Range("D2"). Copy Destination:=Range("D3:D16")

Range("A16:D16"). Borders(xlEdgeBottom). LineStyle = xlDouble

Range("D18"). Formula = "=SUM(D2:D16)"

Range("C19"). Formula = "=MIN(C2:C16)"

Range("C2:C16"). Find(Range("C19"). Value, , xlValues, xlWhole). Select

ActiveCell. Interior. ColorIndex = 4

Range("A2:D16"). Sort key1:=Range("C1")

End Sub

3 Мова програмування vba

(Visual Basic for Application).

3.1 Типи перемінних, оголошення перемінних, область дії перемінних

Тип даних визначає множина припустимих значень, що може приймати зазначена перемінна. У VBA є такі основні типи даних:

  • Byte - байт, для запису цілих чисел від 0 до 255;

  • Boolean - логічний, може приймати одне з двох значень - True - істина, або False - неправда;

  • Integer - ціле число, може приймати значення від -32768 до 32767;

  • Long - довге ціле, у якому зберігаються числа до 2147483648;

  • Single – дійсне число з плаваючою комою, у якому зберігаються числа до 3,4*1038;

  • Double – дійсне число з плаваючою комою подвійної точності;

  • Currency - грошовий;

  • Date - дата і час;

  • Object - покажчик на об'єкт;

  • String - рядок символів;

  • Variant - будь-який тип даних, обумовлений при присвоюванні значень.

Оголошення перемінної здійснюється операторами Dim або Public. Dim може знаходитися в процедурі, тоді перемінні є локальними для цієї процедури і не визначені поза нею. Якщо оператор Dim знаходиться в загальній області модуля (вище всіх процедур у вікні модуля), те перемінні визначені в будь-якій процедурі цього модуля, але не визначені в інших модулях проекту. Якщо перемінні оголошені оператором Public у загальній області модуля, то вони визначені у всіх модулях і формах проекту, тобто є глобальними.

Мал. 3. Вікно модуля з оголошенням перемінних.

Наприклад, на малюнку 3 приведене вікно модуля, у якому:

  • у загальній області об'являється перемінна St, що може бути використана у всіх модулях і формах проекту, тому що вона оголошена як глобальна перемінна;

  • у загальній області об'являється перемінна k, що може використовуватися у всіх процедурах даного модуля, але не існує в інших модулях і формах проекту;

  • у процедурі Пример1 об'являються три перемінних a, d, s різних типів, що можуть використовуватися тільки в цій процедурі.

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