загрузка...
загрузка...
На головну

написання коду

  1.  ДРУГИЙ ЕТАП: НАПИСАНИЕ відповідному посланні
  2.  Вивчення, аналіз та узагальнення матеріалів з обраної теми, і написання курсової роботи
  3.  Лекція 16. Типи написаний. Великі та малі літери. Абревіатури. Написання запозичених слів
  4.  Написання анотації російською та іноземною мовами
  5.  Написання курсових робіт
  6.  Написання відгуку і рецензування дипломних робіт, порядок допуску до захисту дипломних робіт

Опис і створення екземплярів об'єктів. Щоб працювати з об'єктами, потрібно описати їх. Як вже зазначалося раніше, для опису змінних використовується інструкція Dim. Примірник класу описується точно так же:

Dim об'єкт as клас

Наприклад, щоб використовувати екземпляр класу Datafile з ім'ям WorkFile, потрібно задати наступну інструкцію:

Dim WorkFile as Datafile

Розглянемо опис примірника об'єкта презентації PowerPoint:

Dim BudgetPresentation as Presentation

За допомогою явного завдання класу об'єкта можна прискорити компіляцію програми, т. К. При цьому не потрібно виконувати додаткову перевірку, яка проводиться в разі неявного опису:

Dim BudgetPresentation as ObjectDim BudgetPresentation as VariantDim BudgetPresentationDim WorkingFile as ObjectDim WorkingFile as VariantDim WorkingFile

Крім того, при явному описі нового об'єкта можна також використовувати ключові слова Private, Public або Static.

Однак явне опис типу вказує тільки на те, що об'єкт WorkingFile має тип DataFile. Щоб дійсно створити екземпляр класу Datafile, необхідно використовувати інструкцію Set:

Set об'єкт = New клас

Наприклад, щоб явно описати об'єкт WorkingEile, а потім створити екземпляр класу Datafile:

Dim WorkFile as Datafile

Set WorkingFile = New Datafile

Щоб явно описати об'єкт BudgetPresentation, а потім створити екземпляр

презентації PowerPoint:

Dim BudgetPresentation as Presentation

Set BudgetPresentation = New Presentation

В даному прикладі ключове слово New використовується для створення екземпляра об'єкта Presentation з ім'ям BudgetPresentation.

Присвоєння змінної посилання на об'єкт. Присвоєння змінної посилання на об'єкт завжди виконується за допомогою інструкції Set:

Set ObjectVariable = SomeObject

Наприклад, щоб привласнити змінної MyNewTemplate посилання на об'єкт шаблону Microsoft Word, використовуйте наступну інструкцію:

Set MyNewTenvplate = Template

Крім того, деякі методи повертають посилання на об'єкти. У цьому випадку також потрібно використовувати інструкцію Set. Наприклад, метод New класу Microsoft Excel Workbook повертає посилання на об'єкт робочого листа:

Set MyNewWorksheet = ThisWorkbook.new

Видалення об'єктів. У деяких випадках потрібно видалити як сам екземпляр класу, так і всі пов'язані з нього дані. Для цього використовується інструкція Set і ключове слово Nothing:

Set об'єкт = Nothing

Наприклад, щоб видалити об'єкт WorkingFile, введіть наступну інструкцію:

Set WorkingFile = Nothing

Створення модулів класу

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

Розробка об'єктів

Об'єктно-орієнтоване програмування вимагає від програміста принципово іншого способу мислення, ніж при використанні процедурних мов. При розробці структури об'єктів необхідно попередньо провести ретельне планування, т. К. Без детального аналізу створити клас надзвичайно важко, а іноді і дуже довго. Для створення моделі об'єкта можна використовувати такі програми: Rational Rose, Logic Works OOwin / CRT, OMT. Такі ж можливості має програма Visual Modeler фірми .Rational Rose, що входить в пакет Visual Studio 6.0

створення властивостей

Для створення властивості потрібно передбачити можливість виконання двох операцій:

- Отримання поточного значення властивості.

- Установка значення властивості.

Ці дві операції виконуються за допомогою двох взаємодоповнюючих один одного процедур Property Let і Property Get, які необхідно написати програмісту.

Процедура Property Let. Процедура Property Let використовується для установки значення властивості, наприклад, для прикладу з об'єктом WorkingFile:

WorkingFile.delimiter = "@"

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

Встановлюється значення завжди є в інструкції Property Let Останніми параметром. У наступному прикладі змінна vNewValue передає значення, яке присвоюється властивості Description: I

Public Property Let Description (ByVal vNewValue As Variant)

Description = vNewValue

End Property

Повертаючись до прикладу з об'єктом Datafile, припустимо, що записи містять числа, літери, а також точки, тому потрібно, щоб роздільником не був ні один із символів, який входить в вміст полів. Для цього напишемо наступну процедуру Property Let, яка перед привласненням перевіряє встановлюється значення:

Public Property Let Delimiter (ByVal vNewValue As Variant) Dim AscChar as integerAscChar = Asc (ucase (str $ (vNewValue))) If (IsNumeric (vNewValue)) Or (vNewValue = ".") _ [Or ((AscChar> 64) And (AscChar <91)) ThenErr.Raise 5, "Datafile object: Delimiter Property", "Invalid value" ElseDelimiter = vNewValueEnd IfEnd Property

Процедура Property Get. Процедура Property Get використовується для отримання значення властивості, наприклад, для прикладу з об'єктом WorkingFile:

MyFilename = WorkingFile.name

Поточне значення властивості зазвичай зберігається в змінної рівня модуля, тому процедура Property Get повинна привласнити необхідному властивості значення, рівне значенню цієї змінної.

Припустимо, що поточне значення властивості Filename зберігається в змінної рівня модуля m_filename, тому вона доступна в будь-якій процедурі класу. Процедура Property Get просто привласнює властивості значення змінної m_filename:

Public Property Get Filename () As Variant

Filename = m_filename

End Property

Процедуру Property Get, як і будь-яку іншу підпрограму, можна описати за допомогою ключових слів Public, Private або Static.

Автоматичне створення властивостей

За допомогою діалогового вікна Вставка процедури (Add Procedure), редактор VBA автоматично створює першу і останню інструкції процедур Property Let і Property Get. Потім потрібно самостійно написати код для установки і отримання значень властивості.

Щоб створити властивість об'єкта:

1. Відкрийте вікно необхідного модуля класу.

2. Виберіть команду Вставка \ Процедура (Insert \ Procedure). З'являється діалогове вікно Вставка процедури.

3. Введіть ім'я властивості в полі Ім'я (Name).

4. Виберіть перемикач Властивість (Property).

5. Якщо властивість має загальну область визначення, т. Е. Є програмісту, котрі використовують об'єкт, виберіть перемикач Загальна (Public). Якщо ж властивість передбачається використовувати тільки в модулі класу, виберіть перемикач Особиста (Private).

Примітка

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

6. Натисніть кнопку ОК. У модулі класу створюється опис процедур

Property Let і Property Get, наприклад, для властивості Inuse:

Public roperty Get Inuse () As VariantEnd PropertyPublic Property Let Inuse (ByVal vNewValue As Variant) End PropertyСозданіе методів

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

Public Sub Delete () If Not (Inuse (m_filename)) ThenKill m_filenameEnd IfEnd Sub

Приклад створення об'єкта

Покажемо, як можна створити об'єкти на прикладі об'єкта pedometer. Цей об'єкт використовується для обчислення відстані, яку пішохід може пройти при заданій величині кроку і зазначеному числі кроків. Властивостями об'єкта pedometer є число кроків, середня величина кроку, а також використовується при розрахунках система заходів (метрична або англійська).

Для створення об'єкта pedometer:

1. Виберіть команду Вставка \ Модуль класу (Insert \ Class Module). Відкривається вікно нового модуля класу.

2. Натисніть і введіть ім'я класу у вікні властивостей.

3. У розділі описів модуля опишіть змінні рівня модуля, які використовуються для зберігання поточного значення числа кроків, їх величини і обраної системи заходів, продумано вибираючи типи даних.

наприклад:

Dim m_steps As Long Dim m_size As Single Dim m_system As Integer

4. Щоб підвищити сприйняття тексту програм, задайте дві константи, що відповідають типу використовуваної системи заходів, наприклад:

Const METRIC = 1

Const USE = 2

5. Створіть процедури Property Let і Property Get для властивості Steps (число кроків). У процедурах потрібно перевірити, що заданий параметр є числом, і, якщо так, то він більше або дорівнює 0:

Public Property Get Steps () As IntegerSteps = vNewStepsEnd PropertyPublic Property Let Steps (ByVal vNewSteps As Integer) If IsNumeric (vNewSteps) ThenIf vNewSteps> -1 Thenm_steps = vNewStepsElseErr.Raise 5, "Pedometer: властивість Steps", "Значення має бути більше або дорівнює 0 "ElseErr.Raise 5," Pedometer: властивість Steps "," Параметр не є числом "End IfEnd Property

6. Створіть процедури Property Let і Property Get для властивості Size (величина кроку). У процедурах потрібно перевірити, що заданий параметр є числом:

Public Property Get Size () As VariantSize = m_sizeEnd PropertyPublic Property Let Size (ByVal vNewValue As Variant) If Not (IsNumeric (vNewValue)) ThenErr.Raise 5, "Pedometer: властивість Size", "Параметр не є числом" Exit PropertyEnd Ifm_size = vNewValueEnd Property

7. Створіть процедури Property Let і Property Get для властивості System (система заходів). У процедурах потрібно перевірити, що заданий параметр має допустиме значення:

Public Property Get System () As Variant System = m_systemEnd PropertyPublic Property Let System (ByVal vNewSystem As Variant) If vNewSystem <> METRIC And vNewSystem <> USE Then Err.Raise 5, "Pedometer: властивість System", "Неприпустиме значення" Exit Property End Ifm_system = vNewSystem End Property

8. Створіть метод, який обчислює пройдену відстань. При розрахунку потрібно врахувати відмінності в системах вимірювань:

Public Function CalculateDistance () As Single If m_system = USE ThenCalculateDistance = ((m_steps * m_size) * 3) / 1760 ElseCalculateDistance = (m_steps * m_size) / 1000 End If End Function

 




 ПОДАННЯ ДАНИХ У ПАМ'ЯТІ, ТИПИ ДАНИХ, ідентифікатор, ПЕРЕМІННІ, МАСИВИ |  Програмний спосіб запису алгоритмів |  Подання даних в пам'яті |  типи даних |  Ідентифікатори, змінні, масиви |  Операції, вирази, оператори |  Структура програм на VBA |  Оператори опису |  Оператори присвоювання |  створення |

загрузка...
© um.co.ua - учбові матеріали та реферати