- •Министерство сельского хозяйства
- •Общая структура контрольной работы
- •Контрольные вопросы и рекомендуемая литература
- •Контрольные вопросы
- •Макросы для ms Word
- •Макросы для ms Excel
- •Создание функции пользователя в приложении ms Excel
- •Рекомендуемая литература
- •Требования к оформлению контрольной работы
- •Линейный вычислительный процесс
- •Министерство сельского хозяйства российской федерации
- •Макрорекордер
- •Запись макроса
- •Управление макросами
- •Создание панелей инструментов для запуска макросов
- •Запись макроса с помощью макрорекордера (на примереMsWord)
- •Редактор Visual Basic for Application
- •Строка меню и контекстное меню
- •Панели инструментов
- •Назначение кнопок панели инструментов Standard редактора vba
- •Окно проекта
- •Окно кода
- •Окно свойств
- •Окно редактирования формы
- •Назначение кнопок панели элементов Toolbox
- •Окно просмотра объектов Object Browser
- •Редактирования макроса, записанного с помощью макрорекордера (на примере msExcel)
- •ОсновыVba Объекты, семейства, классы
- •Иерархия объектов
- •Свойства
- •Программирование в среде Visual Basic For Applications Переменные в vba
- •Процедуры и функции vba
- •Создание функций пользователя
- •Контрольные вопросы
Иерархия объектов
В каждом из приложений Office взаимодействие объектов образует многоуровневую структуру. Удобно представлять эту иерархию объектов в виде своеобразного "родословного древа". Для того чтобы правильно обращаться к объектам, нужно понимать эту иерархию, хорошо представлять себе, на каком уровне иерархии находится конкретный объект. Некоторые объекты могут располагаться в разных местах иерархического дерева объектов, на разных его уровнях и тем самым выполняют различные функции.
Полное описание всей иерархической структуры имеющихся объектов в каждом из приложений Office можно получить используя встроенную справку по VBA (Рис. 32).
На данном рисунке имеются следующие обозначения элементов иерархии:
Object and collection – объекты и коллекции;
Object only – только объекты.
Click arrow to expand chart – переход на один уровень ниже (от объекта к подобъекту). Вовстроенной справке на иерархическом дереве объектов простые объекты окрашены бирюзовым цветом, а объекты, являющиеся также и семействами— желтым.
Кроме этого щелкнув на любом из элементов можно получить по нему справку. Единственным неудобством остается то, что вся справочная информация представлена на английском языке.
.
Рис. 32. Первый уровень иерархического дерева объектов Excel
Полная ссылка на объект состоит из ряда имен вложенных последовательно друг друга объектов. Разделителями имен объектов в этом ряду являются точки. Ряд начинается с объекта Application (Приложение) и заканчивается именем самого объекта. Например, полная ссылка на ячейкуA1 рабочего листаУрожайрабочей книги с именемСельхоз_культурыимеет вид:
Application.Workbooks(«Сельхоз_культуры»).Worksheets(«Урожай»).Range(«А1»)
Приводить каждый раз полную ссылку на объект не обязательно. Обычно достаточно ограничиться неявной ссылкой на объект. В неявной ссылке, в отличие от полной, объекты, которые активны в данный момент, можно опускать. Например, в рассмотренном выше случае, если ссылка на ячейку А1 дана в программе, выполняемой в средеExcel, то ссылка на объектApplication, может быть опущена, т.е. достаточно привести относительную ссылку:
Workbooks(«Сельхоз_культуры»).Worksheets(«Урожай»).Range(«А1»)
Если и рабочая книга Сельхоз_культурыи рабочий листУрожай активны, то в относительной ссылке достаточно ограничиться упоминанием только диапозонаА1:
Range(«А1»)
Свойства
В VBA каждый объект обладает определенными свойствами (Properties), описывающими этот объект или его состояние.
Например, в приложении Excel объект Range (диапазон ячеек рабочего листа) имеет такие свойства, как:
Font — используемый шрифт;
Formula — определяет содержимое ячейки или диапазона ячеек;
Value — определяет значение ячейки и многие, многие другие свойства;
При ссылке на свойство объекта используется тот же самый синтаксис, что и при уточнении иерархического соподчинения объектов:
Объект.Свойство
Например, для ссылки на значение активной ячейки используется следующая запись:
ActiveCell.Value
К некоторой путанице может привести то, что некоторые свойства объектовсами в свою очередь могут выступать в качествеобъектов. Так, например, объектApplicationимеет свойствоActiveWindow, которое показывает, какое окно является активным в настоящий момент. В то же времяActiveWindowявляется объектом семействаWindows, который может иметь свойствоActiveCell, в свою очередь являющееся объектом классаRange. Кроме этого,ActiveCell имеет свойствоFont, также являющееся объектом, имеющим такие свойства, какName,SizeилиBold.
Среди наиболее часто используемых свойств объектов Excel можно выделить следующие.
Таблица 3. Свойства объектов Excel
Объект |
Описание | |
Объект Application | ||
ActiveWindow |
Активное окно | |
ActiveWorkbook |
Активная рабочая книга | |
ScreenUpdating |
Режим обновления экрана (при выполнении процедуры для ускорения работы можно приостановить обновление отображаемых данных, и снова включить обновление перед выходом из процедуры) | |
StandardFont |
Имя стандартного шрифта для новых рабочих листов | |
Объект Workbook (элемент из семейства Workbooks) | ||
ActiveSheet |
Активный рабочий лист | |
FullName |
Полное имя рабочей книги, включая путь | |
Name |
Имя рабочей книги | |
Saved |
Признак того, что состояние рабочей книги сохранено на диске (имеет логическое значение False, если в книге были сделаны изменения) | |
Объект Worksheet | ||
Name |
Имя рабочего листа | |
OnSheetActivate |
Имя процедуры, вызываемой при активизации рабочего листа пользователем | |
Previous |
Предыдущий рабочий лист | |
ProtectContents |
Режим защиты содержимого ячеек рабочего листа | |
Visible |
Режим видимости рабочего листа (скрыт или показан) | |
Объект Window | ||
ActiveCell |
Активная ячейка | |
DisplayGridlines |
Режим отображения линий сетки | |
Selection |
Текущий выделенный объект | |
Visible |
Режим видимости окна | |
WindowState |
Режим отображения окна (сворачивает окно в значок или разворачивает окно до нормального или полного режима отображения) | |
Объект Range | ||
Column |
Первый столбец диапазона | |
Font |
Используемый в диапазоне шрифт | |
Formula |
Формула диапазона | |
Name |
Имя диапазона | |
Row |
Первая строка диапазона | |
Value |
Значение ячейки | |
Worksheet |
Рабочий лист, содержащий диапазон |
Существует два способа использования свойств объектов: можно либо получить текущее значение свойства, либо изменить свойство (то есть задать новое значение для этого свойства). При изменении свойства необходимо указать сначала имя объекта, а затем имя свойства, использовав в качестве разделителя точку, затем следует оператор присваивания ( = ) и новое значение:
Объект.Свойство = НовоеЗначение
В этом выражении новое значение может быть константой или формулой, возвращающей нужное значение, и принадлежать к одному из трех типов:
Числовое значение. Например, при установлении размера шрифта может использоваться следующий оператор:
ActiveCell.Font.Size = 14
Строка символов. Строковые значения заключаются в двойные кавычки. Вот пример изменения используемого шрифта:
ActiveCell.Font.Name = "Courier New Cyr"
Логическое значение. В VBA используется обозначение True и False, в отличие от функций рабочего листа, где используется обозначение ИСТИНА и ЛОЖЬ. Вот пример изменения начертания шрифта (применение курсива):
ActiveCell.Font.Italic = True
Методы
Объект сам по себе не представляет большого значения. намного важнее то какие действия можно совершать над объектом. Метод (Methods) как раз и представляет собой действие, выполняемое над объектом. Синтаксис применения метода:
Объект.Метод
Например, при помощи метода Save(Сохранить)сохраняется рабочая книга (объект Workbook):
Workbook(«Сельхоз_культуры».Save
Синтаксис вызова метода отличается от синтаксиса ссылки на свойство объекта. Методам не присваиваются значения, они не сохраняются в какой-либо переменной. Для того, чтобы вызвать метод сначала необходимо указать имя объекта, поставить точку в качестве разделителя, потом следует имя метода, а затем при необходимости могут следовать аргументы, указывающие, как должен выполняться метод.
К наиболее распространенным методам Excelможно отнести следующие.
Таблица 4. Методы объектов Excel
Метод |
Описание |
Объект Application (Приложение) | |
Quit |
Завершает Excel |
Undo |
Отменяет последнее выполненное действие |
Объект Workbook (Рабочая книга) | |
Activate |
Активизирует рабочую книгу |
Close |
Закрывает рабочую книгу |
Save |
Сохраняет рабочую книгу |
Save As |
Сохраняет рабочую книгу под другим именем |
Объект Worksheet (Рабочий лист) | |
Activate |
Активизирует рабочий лист |
Calculate |
Заново вычисляет значения в ячейках рабочего листа |
Delete |
Удаляет рабочий лист |
Protect |
Защищает рабочий лист |
Unprotect |
Отменяет защиту рабочего листа |
Объект Window (Окно) | |
Activate |
Активизирует окно |
Close |
Закрывает окно |
Объект Range (Диапазон) | |
Clear |
Полностью очищает диапазон (в том числе и форматирование ячеек) |
ClearContents |
Очищает содержимое ячеек диапазона |
ClearFormats |
Очищает форматирование ячеек диапазона |
Copy |
Копирует диапазон в буфер обмена |
Offset |
Возвращает диапазон с указанным смещением относительно первоначального диапазона |
Paste |
Вставляет содержимое буфера обмена в диапазон |
Select |
Выделяет диапазон |
Sort |
Сортирует значения в диапазоне |