Visual Basic for Applications
•що модернізуються
•що повторно використовуються
•переносимими
Програми повинні бути такими, що перевіряються, щоб ви могли пересвідчитися, що вони роблять саме те, що повинні робити. Програми повинні бути такими, що модернізуються, щоб ви або будь-хто інший могли зрозуміти програму досить добре, щоб внести коректні зміни. Програми повинні бути повторно такими, що використовуються, щоб ви, лише одного разу написавши процедуру, потім могли повторно використати її при будь-якій необхідності. І, нарешті, програми повинні бути переносимими, щоб перенести їх на різні платформи з мінімальними переробками.Сучасна практика програмування шукає досягнення цих цілей в модульності комп'ютерних програм. Модульні комп'ютерні програми при розробці розбиваються на окремі частини, що іменуються модулями. Кожний модуль виконує специфічні, суворо певні функції перетворення і має доступ тільки до тих даних, які необхідні для даного перетворення. Код модуля, розроблений зі суворо певним інтерфейсом для інших модулів програми, дуже легкий для відладки, супроводу і розуміння. Іншим аспектом модульності є його замкненість, що додає упевненість в тому, що будь-які зміни, які ви вносите в код модуля, вплинуть тільки на функції цього модуля і ні на що інше. Таким чином, ці особливості полегшують відладку, супровід і розуміння коду.
Об'єктно-орієнтоване програмування максимально використовує принцип модульності. Програмний об'єкт в ООП називається "контейнером". Контейнер включає в себе дані і код, який знає, як маніпулювати цими даними. Іншими словами, програмний об'єкт це просто блок, що складається з коду і даних. Він може бути представлений як реальний фізичний об'єкт, наприклад у вигляді командної кнопки. Програмний об'єкт володіє специфічною функцією перетворення і містить весь необхідний код і всі необхідні дані для реалізації цієї функції, але його внутрішня робота прихована від стороннього ока.
У більш традиційному програмуванні комп'ютерна програма розроблялася у вигляді функціональних наборів рядків, в яких блоки даних передавалися від модуля до модуля і кожний модуль модифікував або використав ці дані своїм способом. Модулі не містили даних, а тільки коди для модифікації будь-яких переданих даних. Якщо програма випадково передасть такій процедурі невірні дані, процедура все одно обробить їх, повернувши вам "сміття", або взагалі викличе аварію вашої системи.
У об'єктно-орієнтованому програмуванні дані і код, який маніпулює цими даними, об'єднані в структурі, званій об'єкт. Замість того, щоб передавати дані від модуля до модуля для виконання різних обчислень, ви посилаєте повідомлення об'єкту, що містить ці дані, і таким чином доручаєте йому виробити обчислення. Передати об'єкту погані дані неможливо, бо дані, з якими об'єкт маніпулює, включені в цей об'єкт. Більш того не можна викликати або виконати об'єкт можна тільки послати йому повідомлення з ввічливим проханням виконати одну із задач, що вирішуються ним (звичайно, якщо об'єкт не знайде можливості здійснити необхідну маніпуляцію, то, швидше усього, йому доведеться ввічливо повідомити вам, що він не може задовольнити ваш запит)
Загальні приклади об'єктів Visual Basic і Excel це таблиці, області осередків, командні кнопки, текстові вікна, робочі папки, діаграми і модулі.
Властивості і методи
Програмний об'єкт володіє певними властивостями і методами. Властивості це видимі характеристики об'єкта, а методи операції перетворення цих даних. Видимими характеристиками називаються дані, які можуть бути доступні поза об'єктом. Властивостями вважаються дані, якими об'єкт маніпулює АБО які дозволяють контролювати, як об'єкт виглядає або як він себе веде. Наприклад, властивість Value текстового вікна це текст, який вводиться в це вікно. Властивість шрифту Color управляє тим, як він виглядає, а властивість елемента меню Enabled управляє доступністю вибору цього елемента.
Викликати об'єкт таким же чином, як і підпрограму неможливо. Для зміни одного з властивостей об'єкта або для виконання одного з його методів необхідно послати об'єкту повідомлення. Доступ до властивостей і методів, що містяться в об'єкті, можна отримати, вказавши ім'я цієї властивості або методу після імені об'єкта. Ім'я об'єкта відділяється від імені властивості або методу точкою. Наприклад, якщо Power є об'єктом, то доступ до його властивості Value забезпечить наступна конструкція: