Смекни!
smekni.com

Використання VBA (стр. 1 из 2)

Ласкаво просимо в Visual Basic for Applications

Протягом багатьох років глава корпорації Microsoft Білл Гейтс (Bill Gates) висловлював думку об BASIC як про найбільш просту мову високого рівня для всіх типів прикладних програм. Ця точка зору привела в кінцевому результаті до появи Visual Basic for Applications. Уперше використавши Visual Basic for Applications в Excel і Project, фахівці корпорації Microsoft потім застосували його у всіх своїх найбільш популярних пакетах, включаючи Word, Mail і PowerPoint.

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

Що таке Visual Basic for Applications?

Visual Basic for Applications є-новітнім втіленням Microsoft Visual Basic 3.0 для Windows. Фахівці корпорації Microsoft перенесли Forms Designer з Visual Basic, зв'язали Visual Basic з Excel, а потім додали діалогові таблиці замість Forms Designer. Додатково вони зробили всі команди і об'єкти Excel (елемента, таблиці і т.п^ доступними для Visual Basic, що дозволило Visual Basic управляти всіма функціями Excel. Таким чином, в цей час Visual Basic є "супермакромовою" для Excel, що базується на добре відомих командах і синтаксисі BASIC.

Доповнюючи Excel, Visual Basic є також макромовою для Project, а незабаром стане і макромовою для Word, Mail і PowerPoint. Якщо ви намучилися з різними мовами і операційними системами, то можете зітхнути вільно. Більшість з випущених в останні роки основних прикладних пакетів були реалізовані зі своїми власними макромовами, і всі ці макромови відрізнялися один від одного і від всіх відомих мов програмування. Створення корпорацією Microsoft універсальної макромови значною мірою позбавляє від головного болю, пов'язаного з розробкою призначених для користувача команд і процедур.

Той, хто добре знайомий з старішими версіями BASIC, такими як BAS1CA і GW-BASIC, може передбачити, що Visual Basic це примітивна мова програмування, що не має сучасних конструкцій і структур даних. Однак це не так. Хоч в Visual Basic дотримуються синтаксис і правила програмування на BASIC і виконуються програми, написані на BASICA і GW-BASIC, Visual Basic є сучасною мовою програмування, повністю оснащеною всіма необхідними структурними операторами і типами даних. Крім того, в Visual Basic застосовуються об'єкти, що робить його використання при розробці прикладних програм бо.чсг зрозумілим і легким. І хоч рівень об'єктно-орієнтованого програмування на Visual Basic не так високий, як на З++, Visual Basic управляє Excel, маніпулюючи Excеl-об'єктами. Використовуючи Visual Basic, не можна створювати нові класи об'єктів, але можна впритул наблизитися до рішення цієї задачі.

Що можна зробити на Visual Basic for Applications?

Visual Basic не тільки полегшить створення макропроцедур, але і спільно з OLE 2.0 дозволить створювати "мегапрограми”, об'єднуючі і координуючі зусилля багатьох могутніх прикладних програм. Наприклад, можна створити програму підготовки документа, яка буде використати Excel для доступу до бази даних, генерації графіків і таблиць, Word для включення цих графіків і таблиць в текст звіту, Mail для розсилки звіту, і все це натисненням однієї кнопки. Visual Basic буде "клеєм", який все об'єднає і упорядкує. Оскільки вказані програми є об'єктно-орієнтованими, будь-яка програма на Visual Basic буде мати доступ до всіх команд і даних в них за рахунок доступу до об'єктів цих програм.

Що таке об'єкти?

Що являють собою об'єкти в комп'ютерному коді? Відомо, що таке фізичний об'єкт. Ваш маніпулятор миша, клавіатура і комп'ютер такі ж фізичні об'єкти, як і ваша чашка кави. Як же всередині вашого комп'ютера код перетворюється в об'єкт?

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

· що перевіряються

· що модернізуються

· що повторно використовуються

· переносимими

Програми повинні бути такими, що перевіряються, щоб ви могли пересвідчитися, що вони роблять саме те, що повинні робити. Програми повинні бути такими, що модернізуються, щоб ви або будь-хто інший могли зрозуміти програму досить добре, щоб внести коректні зміни. Програми повинні бути повторно такими, що використовуються, щоб ви, лише одного разу написавши процедуру, потім могли повторно використати її при будь-якій необхідності. І, нарешті, програми повинні бути переносимими, щоб перенести їх на різні платформи з мінімальними переробками.

Сучасна практика програмування шукає досягнення цих цілей в модульності комп'ютерних програм. Модульні комп'ютерні програми при розробці розбиваються на окремі частини, що іменуються модулями. Кожний модуль виконує специфічні, суворо певні функції перетворення і має доступ тільки до тих даних, які необхідні для даного перетворення. Код модуля, розроблений зі суворо певним інтерфейсом для інших модулів програми, дуже легкий для відладки, супроводу і розуміння. Іншим аспектом модульності є його замкненість, що додає упевненість в тому, що будь-які зміни, які ви вносите в код модуля, вплинуть тільки на функції цього модуля і ні на що інше. Таким чином, ці особливості полегшують відладку, супровід і розуміння коду.

Об'єктно-орієнтоване програмування максимально використовує принцип модульності. Програмний об'єкт в ООП називається "контейнером". Контейнер включає в себе дані і код, який знає, як маніпулювати цими даними. Іншими словами, програмний об'єкт це просто блок, що складається з коду і даних. Він може бути представлений як реальний фізичний об'єкт, наприклад у вигляді командної кнопки. Програмний об'єкт володіє специфічною функцією перетворення і містить весь необхідний код і всі необхідні дані для реалізації цієї функції, але його внутрішня робота прихована від стороннього ока.

У більш традиційному програмуванні комп'ютерна програма розроблялася у вигляді функціональних наборів рядків, в яких блоки даних передавалися від модуля до модуля і кожний модуль модифікував або використав ці дані своїм способом. Модулі не містили даних, а тільки коди для модифікації будь-яких переданих даних. Якщо програма випадково передасть такій процедурі невірні дані, процедура все одно обробить їх, повернувши вам "сміття", або взагалі викличе аварію вашої системи.

У об'єктно-орієнтованому програмуванні дані і код, який маніпулює цими даними, об'єднані в структурі, званій об'єкт. Замість того, щоб передавати дані від модуля до модуля для виконання різних обчислень, ви посилаєте повідомлення об'єкту, що містить ці дані, і таким чином доручаєте йому виробити обчислення. Передати об'єкту погані дані неможливо, бо дані, з якими об'єкт маніпулює, включені в цей об'єкт. Більш того не можна викликати або виконати об'єкт можна тільки послати йому повідомлення з ввічливим проханням виконати одну із задач, що вирішуються ним (звичайно, якщо об'єкт не знайде можливості здійснити необхідну маніпуляцію, то, швидше усього, йому доведеться ввічливо повідомити вам, що він не може задовольнити ваш запит)

Загальні приклади об'єктів Visual Basic і Excel це таблиці, області осередків, командні кнопки, текстові вікна, робочі папки, діаграми і модулі.

Властивості і методи

Програмний об'єкт володіє певними властивостями і методами. Властивості це видимі характеристики об'єкта, а методи операції перетворення цих даних. Видимими характеристиками називаються дані, які можуть бути доступні поза об'єктом. Властивостями вважаються дані, якими об'єкт маніпулює АБО які дозволяють контролювати, як об'єкт виглядає або як він себе веде. Наприклад, властивість Value текстового вікна це текст, який вводиться в це вікно. Властивість шрифту Color управляє тим, як він виглядає, а властивість елемента меню Enabled управляє доступністю вибору цього елемента.

Викликати об'єкт таким же чином, як і підпрограму неможливо. Для зміни одного з властивостей об'єкта або для виконання одного з його методів необхідно послати об'єкту повідомлення. Доступ до властивостей і методів, що містяться в об'єкті, можна отримати, вказавши ім'я цієї властивості або методу після імені об'єкта. Ім'я об'єкта відділяється від імені властивості або методу точкою. Наприклад, якщо Power є об'єктом, то доступ до його властивості Value забезпечить наступна конструкція:

Power.Value

Якщо продовжити цю конструкцію знаком рівності (=) н числом, то об'єкт змінить значення вказаної властивості. Щоб набути значення цієї властивості, вмістіть цю конструкцію праворуч від знаку рівності.

Коли виконується метод, він може змінити значення лише властивості даного об'єкта, але не інших об'єктів. Метод може тільки запитати який-небудь об'єкт про зміну деякої його властивості.

Розглянемо як приклад об'єкта кнопку включення живлення на моніторі вашого комп'ютера (може бути у вас замість кнопки вимикач, але в цьому випадку це не має значення і можна уявити собі, що це кнопка). Коли ви натискаєте цю кнопку, внутрішній механічний з'єднувач проводить включення, приєднуючи вхід до виходу. Також абсолютно не важливо, який вигляд вимикача використаний В вашому моніторі (відомо, що існує велика кількість різних видів вимикачів). І те, як працює ваш вимикач, і його пристрій вас не повинні цікавити (пластикова оболонка вимикача оберігає його від вашої цікавості). Важливе лише те, чи сполучені вхід і вихід перемикача н залежності від стану кнопки.

Програмна реалізація такого перемикача в основному працює точно так само. Коли ви вибираєте його за допомогою миші, він міняє свій стан з "Включений" на "Вимкнений" або навпаки. Програмний перемикач не забезпечує механічного з'єднання, але володіє властивістю, що іменується Value, яке, приймає значення "Включений" або "Вимкнений". Обидва вимикачі призначені для одних і тих же цілей.

Натискаючи на кнопку за допомогою покажчика миші, ви змінюєте значення властивості Value з "Включений" на "Вимкнений" або навпаки. Крім того змінюється зовнішній вигляд кнопки, імітуючи таким чином натиснення.,