Реферат на тему:

Використання елементів управління в книгах і листах Microsoft Excel

Макроси, написані на Visual Basic for Applications, можуть виконувати
набагато більше задач, чим макроси, у яких записуються лише натискання
клавіш.

В VBA є досить широкий набір вбудованих елементів управління. Серед
найбільш часто вживаних можна назвати кнопки, поля введення, списки,
перемикачі, написи, лічильники та інші. Використовуючи цей набір і
редактор досить легко можна створити будь-який користувацький інтерфейс,
який би задовольнив найвибагливішого користувача, крім того,
використовуючи можливості мови Visual Basic можна вирішити і
автоматизувати практично будь-яку задачу.

Для використання елементів управління в книгах MS Excel необхідне знання
мови VBA. Освоївши цю мову програмування, ви зможете додавати різні
команди в меню Excel, створювати нові діалогові вікна і складні додатки,
призначені для тих користувачів, що раніш не працювали з Excel. Щоб
виконувати подібні задачі, не досить уміти записувати і запускати
макроси. Але найпростіші дії з елементами управління можна виконувати
вдало поєднавши можливість записів макросів і деякі теоретичних
відомостей про елементи управління.

Найперше, що нам потрібно знати про елементи управління, це те, що вони
є об’єктами, а кожен об’єкт в термінології об’єктно-орієнтованого
програмування має властивості, методи і події. Для кожного елемента
управління набір властивостей, методів і подій різний, але вони мають
між собою багато чого спільного. Отже для створення елементів управління
нам прийдеться маніпулювати деякими властивостями, методами і подіями,
тобто змінювати поведінку об’єкта.

Створення елементів управління.

 панелі інструментів Visual Basic.

Рис.8.5 – Панель інструментів «Элементы управления»

Всі кнопки, крім перших трьох служать для створення елементів
управління. Для розміщення елемента управління на формі натисніть
відповідну кнопку панелі інструментів Элементы управления і з допомогою
миші перенести  рамку елемента управління в потрібне місце.

Вивчення VBA за допомогою макросів

У попередньому пункті докладно розповідалося про те, як створюються і
запускаються макроси. Макроси — це послідовності інструкцій, виконуючи
які, Excel здійснює визначені дії. Як уже було сказано, макроси значно
підвищують ефективність роботи, оскільки дозволяють уникнути витрат
зусиль і часу на виконання повторюваних операцій. При записі макросу
виконані користувачем дії і команди записуються у виді операторів, або
рядків коду мови VBA. Декілька операторів складають процедуру, а
процедури поєднуються в модулі, які можна розглядати як контейнери з
кодом програми мовою Visual Basic for Applications.

Для того щоб одержати представлення про те, як записується макрос мовою
Visual Basic for Applications, розглянемо приклад конкретної процедури,
отриманої при записі макросу.

Приклад. Нехай нам потрібно, для визначення рейтингу груп
факультету(університету) на кожній атестації студентів, визначати
середній бал по атестації кожної групи факультету (університету). Крім
того дані про кожну атестацію повинні зберігатись. Після виконання цієї
процедури на екрані з’явиться така ж таблиця, як на Рис. 8.6. Оскільки
таблиця, у якій вказується середній бал створюється декілька разів за
семестр, можна автоматизувати цей процес, скориставшись макросом.

Рис. 8.6 – Таблиця «Рейтинг»

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

1. Відкрийте нову робочу книгу.

2. Виберіть команду Сервис|Макрос|Начать запись.

3. У діалоговому вікні Запис макросу введіть ім’я Рейтинг і клацніть на
кнопці ОК.

4. Клацніть на клітинкці B1 і введіть у неї Атестація:.

5. Клацніть на клітинці С1 і введіть у неї =Сегодня().

6. Клацніть на клітинці B2 і введіть у неї Курс.

7. Клацніть на клітинці А3 і введіть Група.

 Обьеденить ячейки .

9. Клацніть на клітинці В3 і введіть Кількість оцінок.

10. Виділіть  клітинки В3-Е3 і натисніть кнопку Обьеденить ячейки

11. Клацніть на клітинці В3 і введіть Середній бал.

12. Виділіть  клітинки F3-F4 і натисніть кнопку Обьеденить ячейки.

13. Клацніть на клітинці В4 і введіть 5.

14. Клацніть на клітинці С4 і введіть 4.

15. Клацніть на клітинці D4 і введіть 3.

16. Клацніть на клітинці E4 і введіть 2.

 (вирівнювання по центру).

18. Клацніть на клітинці A5 і введіть ФН.

19. Клацніть на клітинці A6 і введіть МХВ.

20. Клацніть на клітинці A7 і введіть УТР.

21. Клацніть на клітинці A8 і введіть ЕК.

22. Клацніть на клітинці A9 і введіть Всього.

23. Клацніть на клітинці В9 і введіть =СУММ(B5:B8).

24. Скопіюйте цю формулу в клітинки С9,D9,E9 протягнувши макер
заповнення.

25. В клітинку F5 ведіть формулу =СРЗНАЧ(B5:E5).

26. Скопіюйте цю формулу в клітинки F6-F9 протягнувши маркер заповнення.

27. Клацніть на клітинці B5 (це значить, що буде виділена ця клітинка і
можна приступати до введення даних).

28. Клацніть на кнопці Зупинити запис.

Для того щоб перевірити результат виконання цього макросу, перейдіть на
порожню сторінку, використовуйте команду Сервис|Макрос|Макросы, виберіть
макрос під ім’ям Табель і клацніть на кнопці Виконати. На порожньому
робочому листі з’явиться таблиця, у якій потрібно вказувати кількість
середній бал кожної групи.

Рис. 8.7 — Програмний код макросу в редакторі Visual Basic Editor

Вихідний код мовою VBA

Звичайно, основна мета виконання приведеного вище прикладу полягає не в
тому, щоб показати, як створюються макроси, а в тому, щоб зрозуміти, як
записується макрос у кодах Visual Basic for Applications. Скористайтеся
командою Сервис|Макрос|Макросы, щоб відкрити діалогове вікно Макрос.
Виберіть макрос Рейтинг і клацніть на кнопці Изменить. При цьому
відкриється вікно редактора Visual Basic Editor, показане на рис. 8.7.
Як видно з малюнка, код програми мовою Visual Basic for Applications
з’явиться праворуч — у вікні Модуль.

Текст програми буде виглядати так:

Sub Рейтинг()

‘ Рейтинг макрос

‘ Макрос записаний 19.12.2003 (computer)

    Range(«B1»).Select

    ActiveCell.FormulaR1C1 = «Атестація»

    Range(«C1»).Select

    ActiveCell.FormulaR1C1 = «=TODAY()»

    Range(«B2»).Select

    ActiveCell.FormulaR1C1 = «Курс»

    Range(«A3»).Select

    ActiveCell.FormulaR1C1 = «Група»

    Range(«A3:A4»).Select

    Range(«A4»).Activate

    With Selection

        .HorizontalAlignment = xlCenter

        .VerticalAlignment = xlBottom

        .WrapText = False

        .Orientation = 0

        .AddIndent = False

        .IndentLevel = 0

        .ShrinkToFit = False

        .ReadingOrder = xlContext

        .MergeCells = False

    End With

    Select????????????????

    ActiveCell.FormulaR1C1 = «Кількість оцінок»

    Range(«B3:E3»).Select

    Range(«E3»).Activate

    With Selection

        .HorizontalAlignment = xlCenter

        .VerticalAlignment = xlBottom

        .WrapText = False

        .Orientation = 0

        .AddIndent = False

        .IndentLevel = 0

        .ShrinkToFit = False

        .ReadingOrder = xlContext

        .MergeCells = False

    End With

    Selection.Merge

    Range(«F3»).Select

    ActiveCell.FormulaR1C1 = «Середній бал»

    Range(«F3:F4»).Select

    With Selection

        .HorizontalAlignment = xlCenter

        .VerticalAlignment = xlBottom

        .WrapText = False

        .Orientation = 0

        .AddIndent = False

        .IndentLevel = 0

        .ShrinkToFit = False

        .ReadingOrder = xlContext

        .MergeCells = False

    End With

    Selection.Merge

    ActiveWindow.SmallScroll ToRight:=-1

    Range(«B4»).Select

    ActiveCell.FormulaR1C1 = «5»

    Range(«C4»).Select

    ActiveCell.FormulaR1C1 = «4»

    Range(«D4»).Select

    ActiveCell.FormulaR1C1 = «3»

    Range(«E4»).Select

    ActiveCell.FormulaR1C1 = «2»

    Range(«A1:F4»).Select

    Selection.Font.Bold = True

    With Selection

        .HorizontalAlignment = xlCenter

        .VerticalAlignment = xlBottom

        .WrapText =
F???????????????????????????????????????????????????????????????????????
???????????????????

    ActiveCell.FormulaR1C1 = «ФН»

    Range(«A6»).Select

    ActiveCell.FormulaR1C1 = «МХВ»

    Range(«A7»).Select

    ActiveCell.FormulaR1C1 = «УТР»

    Range(«A8»).Select

    ActiveCell.FormulaR1C1 = «ЕК»

    Range(«A9»).Select

    ActiveCell.FormulaR1C1 = «Всього»

    Range(«B9»).Select

    ActiveCell.FormulaR1C1 = «=SUM(R[-4]C:R[-1]C)»

    Range(«B9»).Select

    Selection.AutoFill Destination:=Range(«B9:E9»), Type:=xlFillDefault

    Range(«B9:E9»).Select

    Range(«F5»).Select

    ActiveCell.FormulaR1C1 = «=AVERAGE(RC[-4]:RC[-1])»

    Selection.AutoFill Destination:=Range(«F5:F9»), Type:=xlFillDefault

    Range(«F5:F9»).Select

    Range(«B5»).Select

End Sub

Дії, виконані по ходу створення макросу, записуються в одній або
декількох рядках модуля мовою Visual Basic. Причому різні фрагменти
модуля офарблюються в різні кольори: для виділення коментарів
використовується зелений колір, для виділення ключових слів — синій, а
для всіх інших фрагментів — чорний. У випадку запуску цього (або
будь-якого іншого) макросу насправді відбувається запуск програми,
записаної в кодах Visual Basic for Applications. При запуску модуля
виконується кожен рядок програми, записаної на Visual Basic for
Applications, і в результаті Excel виконує відповідні дії.

Коментарі

B*

ue n

????¤?¤?$???????F??F?FIFeF

????¤?¤?$???????F? апострофа. У прикладі процедури, розглянутому вище,
коментарі виглядають у такий спосіб:

‘ Рейтинг макрос

‘ Макрос записаний 19.12.2003 (computer)

Тут Excel використовує як коментарі текст, введений раніше у рядках Імя
макросу й Описание диалогового окна Запись макроса. Але можна додавати
коментарі в будь-яке місце програми, ввівши спочатку апостроф, а потім
потрібний текст. Коментарі дуже корисні при написанні складних програм,
оскільки вони нагадують про те, що виконує та або інша процедура.
Коментар може займати весь рядок або її частину, розташовуючи після
оператора мови Visual Basic for Applications і починаючи з апострофа.
При виконанні програми всі символи, що стоять за апострофом, будуть
ігноруватися.

Заголовок і кінець процедури. Перед коментарем йде рядок, у якому
записано:

Sub  Рейтинг()

В останньому рядку записано:

End  Sub

Це рядки заголовоку і кінеця процедури. Кожна процедура мовою Visual
Basic for Applications починається з Sub або Function і закінчується
рядком End Sub або End Function. У мові Visual Basic for Applications
передбачено два типи підпрограм: процедури і функції. Функції схожі на
функції, вбудовані в Excel. На вхід функції надходить деяке значення
(або декілька значеннь), потім над цим значенням виконуються визначені
дії і повертається результат обчислень. Процедура не повертає значення
(хоча з неї можна передати значення за допомогою спеціальних
операторів). Параметри, передані у функцію, вказуються в круглих дужках
у заголовку. Підпрограма завершується рядком, що містить End Sub або End
Function, що повідомляє Excel про те, що досягнуть кінець підпрограми.
При досягненні кінця процедури управління передається в процедуру яка
викликала цю процедуру. Якщо дана процедура не була викликана з іншої
процедури, то керування передається програмі Excel.

Виділення і введення даних, керуючі оператори

Після коментаря процедури ідуть два рядки, у яких записане, що потрібно
виділити клітинку В2 і ввести в неї текст:

Range(«B1»).Select

ActiveCell.FormulaR1C1 = «Атестація»

Оператор Range повідомляє Excel, що необхідно виділити діапазон
клітинок. Оскільки в круглих дужках зазначена адреса тільки однієї
клітики (В1), Excel виділить тільки клітинку з цією адресою. Наступний
оператор повідомляє Excel, що потрібно ввести текст (у даному випадку
фразу «Атестація:») у виділену клітинку робочого листа (у даному випадку
в клітинка В1).

Крім рядків, у яких записуються операції переміщення рамки виділення і
введення даних, є рядки, у яких записуються операції присвоєння
елементам робочого листа різних значень. Наприклад, після того як ви
натиснете комбінацію клавіш , щоб привласнити символам
напівжирний шрифт, у модулі з’явиться наступний запис:

Selection.Font.Bold = True

Після обробки цього запису символам виділеної клітинки (або клітинок)
призначається напівжирний шрифт.

В коді програми можна використовувати символ продовження
(підкреслювання). Символ підкреслення наприкінці першого рядка вказує,
що запис визначеної дії продовжується в наступному рядку. (Якщо
наприкінці рядка немає символу підкреслення, то відповідно до синтаксису
Visual Basic for Applications цей рядок розглядається як закінчений
оператор.)

Працюючи з Visual Basic for Applications, ви знайдете, що за допомогою
операторів виділення, введення даних і керуючих операторів можна
виконувати будь-які дії.

Створення діалогових вікон

Одна з переваг роботи з мовою Visual Basic полягає в тому, що користувач
може не тільки використовувати засіб запису макросів, але і сам писати
програми, що будуть виконувати конкретні дії (наприклад, відкривати
діалогові вікна, створені користувачем), тобто те, що не можна зробити
за допомогою макросів. Для того щоб відкрити на екрані діалогове вікно з
визначеним повідомленням, скористайтеся функцією MsgBox. Синтаксис
виклику цієї функції має такий вигляд:

MsgBox(prompt[, buttons] [, title] [, helpfile, context])

В круглих дужках цієї функції стаять аргументи, які може приймати ця
функція (квадратні дужки означають, що даний аргумент можна пропустити).
Першим аргументом цієї функції є повідомлення (prompt), яке буде
з’являтись у діалоговому вікні, buttons – типи кнопок, які будуть
використовуватись в вікні ( по замовчуванню буде тільки одна кнопка OK),
title – заголовок цього вікна, helpfile і context – відносяться до
довідки, яку можна викликати з цього діалогового вікна.  

В найпростішому випадку можна використовувати цю функцію з одним
аргументом – повідомленням, наприклад, в нашому випадку, в кінці
макросу, перед End Sub, введіть:

MsgBox(“Введіть  кількість  оцінок в кожній групі”)

Вийдіть з редактора перейдіть на новий робочий лист і виберіть команду
Сервис|Макрос|Макросы. У діалоговому вікні Макрос виберіть макрос
Рейтинг і клацніть на кнопці Выполнить. При виконанні макросу на екрані
з’явиться діалогове вікно, як на рис .8.8. Такі діалогові вікна можна
використовувати як путівники, що вказують користувачеві, що потрібно
робити далі.

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

Введення інформації

Мовою Visual Basic можна написати програми, що будуть виводити на екран
запит, або обробляти відповідь користувача. Щоб ввести якусь інформацію,
потрібно скористатися функцією InputBox, що виконує практично ті ж дії,
що і функція MsgBox, але при роботі з функцією InputBox у діалоговому
вікні буде присутній рядок введення. Значення, що користувач введе в
цьому рядку, і буде результатом роботи даної функції.

 Ця функція має приблизно ж такий синтаксис як і функція MsgBox:

InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile,
context])

Тут немає аргумента buttons, проте є два аргумента xpos та ypos які
вказують в пікселях, як і де буде розташований рядок введення в
діалоговому вікні.

Створимо діалогове вікно з використанням функції InputBox. Перейдіть до
модуля, що був створений у ході виконання вправи, і включіть в нього
функцію InputBox. Скористайтеся командою Сервис|Макрос|Макросы, щоб
відкрити діалогове вікно Макрос. Виберіть макрос Рейтинг і клацніть на
кнопці Изменить, щоб відкрити вікно редактора Visual Basic Editor.
Знайдіть рядок:

ActiveCell.FormulaR1C1 = «Курс»

Помістіть курсор наприкінці цього рядка і натисніть клавішу , щоб
вставити порожній рядок. У наступних двох рядках введіть:

Range(«С2»).Select

ActiveCell.FormulaR1C1  =  InputBox(«Введіть курс:»)

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

Вийдіть з редактора, а потім перейдіть на нову сторінку і знову
виконайте макрос. (Використовуйте команду Сервис|Макрос|Макросы. У
діалоговому вікні Макрос виберіть макрос Рейтинг і клацніть на кнопці
Выполнить.) При виконанні макросу на екрані з’явиться діалогове вікно,
показане на рис.8.9, у яке потрібно ввести ім’я співробітника. Введене
ім’я буде розміщено в клітинці С2 робочого листа.

Редагування програм

Перейшовши на сторінку модуля, можна вводити будь-які оператори мови
Visual Basic for Applications точно так само, як і текст при роботі з
текстовим процесором.

Якщо лист модуля відкритий, можна вставити в програму, розміщену на цій
сторінці, текст іншої програми. Щоб додати до однієї програми текст
іншої програми, помістите курсор у те місце програми, куди буде
уставлений фрагмент іншої програми, і виконаєте команду Вставка|Файл. У
діалоговому вікні Вставка файлу вкажіть ім’я файлу, що містить текст
програми, яку потрібно додати до тексту програми на сторінці модуля, і
клацніть на кнопці ОК.

Отже, без перебільшення можна сказати, що той, хто намагається писати
програми мовою Visual Basic for Applications, занурюється в захоплюючий
світ програмування. Хоча ви, напевно, ще не зовсім уявляєте собі, яким
могутнім засобом є VBA, проте тепер ви знаєте, як з його допомогою
створювати макроси, що будуть виконувати різні задачі (наприклад,
створювати діалогові вікна і меню). Однак це далеко не усе, що можна
робити за допомогою цього засобу програмування. У папці Examples, що
зберігається в папці Microsoft Office ви знайдете кілька програм мовою
Visual Basic for Applications (якщо при установці Excel були
встановленні ці приклади).

Підсумовуючи, можна сказати, що створюючи програми на Visual Basic for
Applications, ви зможете автоматизувати, або визначити хід виконання тих
або інших задач у додатках Microsoft Office.

ЛІТЕРАТУРА

Бухвалов А.В. и др. Финансовые вычисления для профессионалов.- СПб.:
БХВ-Петербург, 2001.-320с. ил.

Гарнаев А.Ю. Excel, VBA, Internet в экономике и финансах.- СПб.:
БХВ-Петербург, 2001.- 816с.:ил.

Евдокимов В.В. и др. Экономическая информатика. Учебник для вузов. Под
ред. Д.э.н., проф. В.В.Евдокимова. – СПб.: Питер, 1997. – 592с.

Згуровський М.З., Коваленко І.І., Міхайленко В.М. Вступ до комп’ютерних
інформаційних технологій: Навч.посіб. – К.: Вид-во Європ. ун-ту
(фінанси, інформ. системи, менеджм. і бізнес), 2000.- 265 с.

Информатика. Базовый курс/ Симонович С.В. и др.- СПб.: Питер, 2000.-
640с.:ил.

Карлберг, Конрад. Бизнес-анализ с помощью Excel.: Пер с англ.- К.:
Диалектика, 1997.- 448с.: ил.

Лук‘янова В.В. Комп‘ютерний аналіз даних: Посібник. – К.: Видавничий
центр „Академія”, 2003. – 344с. (Альма-матер)

Похожие записи