Тва і методи

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

Заплутатися у властивостях і методах нескладно: їх існує кілька тисяч. У цьому розділі показано, як здійснюється доступ до властивостей і методів об'єктів.

властивості об'єктів

Всі об'єкти мають властивості. Наприклад, об'єкт Range має властивість з назвою Value. Ви можете створити оператор VBA. щоб відобразити властивість Value або задати властивості Value певне значення. Нижче наведена процедура, яка використовує функцію VBA MsgBox для відображення вікна, в якому представлено значення клітинки А1 листа Лист1 активної робочої книги.

Код попереднього прикладу відображає поточне значення властивості Value для конкретної комірки - А1 робочого аркуша Лист1 активної робочої книги. Зверніть увагу, що якщо в активній книзі відсутній лист з назвою Лист1, то макрос видасть помилку.

MsgBox- корисна функція, часто використовувана для відображення результатів виконання операторів VBA. У цій книзі вона застосовується дуже часто.

Що необхідно зробити, щоб змінити властивість Value. Нижче наведена процедура по зміні значення осередку А1 шляхом визначення значення властивості Value.

Після виконання цієї процедури осередок Al листа Лист1 отримує значення 123. Ви можете ввести описані процедури в модуль і протестувати їх.

Багато об'єктів мають властивість за замовчуванням. Для об'єкта Range властивістю по

замовчуванням є Value. отже,

в наведеному вище коді можна опустити, і нічого не зміниться. Однак краще включати посилання на властивість, навіть якщо воно використовується за умовчанням.

методи об'єктів

Крім властивостей, об'єкти характеризуються методами. Метод - це дія, яка виконується над об'єктом. Нижче наведено простий приклад використання методу clear по відношенню до діапазону комірок. Після виконання цієї процедури осередки А1: СЗ листа Лист1 стануть порожніми, і додаткове форматування осередків буде видалено.

Якщо необхідно видалити значення в діапазоні, але залишити форматування, використовуйте метод ClearContents об'єкта Range.

Worksheets ( "Лист 1") .Range ( "B1")

Визначення аргументів методів і властивостей

У середовищі програмістів VBA визначення аргументів методів і властивостей часто викликає певні труднощі. Деякі методи використовують аргументи для подальшого уточнення дії; окремі властивості використовують аргументи для подальшого визначення значення властивості. Іноді один або кілька аргументів взагалі застосовувати не обов'язково.

Якщо метод використовує аргументи, вони вказуються після назви методу і розділяються комами. Якщо метод використовує необов'язкові аргументи, то можете пропустити їх, залишивши порожні місця. Розглянемо метод protect об'єкта робочої книги. У довідковій системі дається інформація про те, що метод Protect має три аргументи: пароль, структура, вікна. Ці аргументи відповідають параметрам в діалоговому вікні Захист книги.

Наприклад, якщо потрібно захистити робочу книгу під назвою MyBook. xls. використовуйте такий оператор:

Workbooks ( "MyBook.xls"). Protect "xyzzy", True, False

В даному випадку робоча книга захищена паролем (аргумент 1). Також захищена структура робочої книги (аргумент 2), але не її вікна (аргумент 3).

Якщо ви не хочете привласнювати пароль, можна застосувати такий оператор:

Workbooks ( "MyBook.xls"). Protect. True, False

Зверніть увагу, що перший аргумент пропущено, а його місце позначено за допомогою коми.

Workbooks ( "MyBook.xls"). Protect Structure: = True, _

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

Для властивостей, використовують аргументи, аргументи вказуються в дужках. Наприклад, властивість Address об'єкта Range має п'ять аргументів - все необов'язкові. Показаний нижче оператор некоректний, оскільки пропущені дужки:

MsgBox Range ( "Al"). Address False 'некоректно

Правильний сінтакіс для цього оператора виглядає так:

MsgBox Range ( "Al"). Address (False)

Крім того, оператор може записуватися з використанням іменованого аргументу.

MsgBox Range ( "Al"). Address (rowAbsolute: = False)

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

Схожі статті