Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Создание пользовательских п ÒÉÌÏÖÅÎÉÊ ÓÒÅÄÓÔÁÍ...doc
Скачиваний:
6
Добавлен:
18.11.2019
Размер:
2.02 Mб
Скачать

Функции Hour, Minute, Second

Функции Hour, Minute, Second выделяют из заданного времени часы, минуты и секунды соответственно.

Пример

Процедура выполняется заданное количество секунд.

Sub start_stop()

Dim startTime As Date, stopTime As Date

Dim t As Integer, h As Integer, m As Integer, s As Integer

t = InputBox("Введите время выполнения программы в сек – 2,3,4")

startTime = Time

h = Hour(startTime)

m = Minute(startTime)

s = Second(startTime) + t

stopTime = TimeSerial(h, m, s)

Do

If Time > stopTime Then

Exit Do

End If

Loop While s > 0

Beep

End Sub

В процедуру включен запрос на время выполнения программы в секундах. Функция TimeSerial вычисляет время завершения процедуры.

В процессе выполнения программы текущее время сравнивается со временем завершения программы. Если оно превышено, то процедура завершается.

Оператор Beep, записанный в конце процедуры, вызывает однократное звучание сигнала.

Раздел 6.Объекты ms Excel

Все офисные приложения можно рассматривать как совокупность объектов. Объектами являются сами приложения Application (центральный или корневой объект) и их компоненты (вложенные объекты).

Примеры объектов: рабочий лист Worksheet, рабочая книга Workbook, диаграмма Chart, рамка Border. Доступ к интервалам ячеек возможен только как к объектам Range, например, объект Range("A1") представляет ячейку A1. Каждый элемент меню, каждая командная кнопка, любой элемент рабочего листа являются объектами MS Excel.

С точки зрения программирования в среде VBA объект обладает свойствами и методами. Свойства описывают объект, а методы позволяют управлять объектом.

В VBA возможны три типичные действия c объектами:

  • проверка свойств объекта;

  • изменение объекта посредством модификации его свойств;

  • выполнение методов объекта.

Подробно структура объектов, синтаксис свойств и методов, перечень событий рассмотрены. в разделе Microsoft Excel Object Model книги с названием Microsoft Excel Visual Basic Reference справочника по VBA (Help).

Свойства объектов

Свойства объекта это атрибуты объекта. Каждый объект может иметь десятки свойств, например, объект Worksheet имеет 52 свойства.

Свойства делятся на две группы:

  • свойства-участники(accessors), представляющие вложенные объекты,

  • терминальные свойства (terminals), задающие характеристики объекта или его состояние.

Свойства-участники позволяют добраться до объекта, находящегося на любом уровне вложенности. Например, в записи Application.ActiveWorkbook свойство ActiveWorkbook позволяет получить доступ к объекту приложения – активной рабочей книге, а в записи ActiveWorkbook.ActiveSheet свойство ActiveSheet означает доступ к объекту рабочей книги – активной странице этой книги.

Изменение значений терминальных свойств – это один из способов изменить внешний объекта.

Свойства имеют статус:

  • Read-Write (далее R/W) предполагает возможность изменения свойства;

  • Read-Only (далее R/O) означает, что можно только протестировать значение свойства.

Статус и типы значений свойств объектов можно уточнить, используя справочную систему (Help или Object Browser). Некоторые свойства являются общими для многих объектов и для разных объектов могут иметь разный статус, например, Height, Width, являющиеся свойствами интервалов, окон и приложения. В дальнейшем указывается статус и тип значения свойства.

В качестве значений свойств могут использоваться константы с префиксом xl, например, константа xlCalculationManual устанавливает ручной пересчет таблицы.

Примеры часто используемых свойств различных объектов

Свойство

Объект

Примеры

Описание

Bold, Italic

(R/W Boolean)

Font

ActiveCell.Font.Bold=True

ActiveCell.Font. Italic =False

Устанавливает полужирный шрифт или курсив

Column, Row

(R/W Long)

Range

Debug.Print Range("A1:B5").Column, Range("A1:B5").Row

Номер первой колонки (первой строки) интервала ячеек. Печатает 1, 1

ColumnWidth

(R/W Variant)

Range

Range("A1:B5").ColumnWidth=15

Ширина каждой колонки объекта Range 15 символов

Height, Width

(Double)

Многие объекты

Application.Width=200 (статус R/W)

W=Range("A1:B5"). Height (статус R/O)

Ширина окна приложения 200 пт.

Возвращает суммарную высоту строк объекта Range в пунктах

RowHeight

(R/W Variant)

Range

Range("A1:B5").RowHeight=15

Устанавливает высоту каждой строки объекта Range в пунктах

Formula

(R/W Variant)

Range

Range("A2").Formula = "=pi()*A1^2"

Формула ячейки

Value

(R/W Variant)

Range

Range("A3").Value=6.28

Значение ячейки

Count

(R/O Long)

Группа объектов

N=Sheets.Count

Количество элементов в коллекции объектов

Name

(String)

Многие объекты

ActiveSheet.Name="Nw_Sh"(статус R/W)

Wb =ActiveWorkbook.Name(статус R/O)

Имя объекта

Parent

(R/O Object)

Многие объекты

P_t= Range("A1:B5").Parent

для объекта Range возвращает объект Sheetрабочий лист, на котором объект Range расположен

Возвращает объект обычно другого типа, который является объектом более высокого уровня по отношению к указанному объекту

Свойства объектов изменяются при помощи оператора присваивания или под влиянием методов.

Синтаксис операторов присваивания object.property=expression

  • object – ссылка на объект, над которым совершается действие;

  • property – название свойства, значение которого необходимо изменить;

  • expression – выражение, представляющее новое значение свойства объекта.

Важно

  • Каждое свойство может принимать значения только определенного типа.

  • Тип результата вычисления выражения должен соответствовать типу свойства.

Если свойство является числовым, то и результат вычисления выражения должен быть числом или должен преобразовываться в число.

Например, оператор ActiveCell.Font. Bold="b" является ошибочным, так как свойство Bold имеет тип Boolean и может только принимать значения True или False.

Пример

Процедура изменяет размеры активного окна приложения.

Sub NewWindowsize()

Dim Wsize As Integer, Hsize As Integer

Wsize = InputBox("Введите ширину окна от 100 до 200")

Hsize=InputBox("Введите высоту окна от 100 до 200")

ActiveWindow.Height=Hsize

ActiveWindow.Width=Wsize

End Sub

Ширина и высота окна приложения вводятся в диалоге. Свойства Height и Width для объекта Window имеют статус R/W.

При помощи оператора присваивания можно сохранить значение свойства в переменной. Значение свойства может использоваться как часть условного выражения. В таких случаях говорят о возврате значения свойства.

Синтаксис оператора, возвращающего значение свойства

variable=object.property

  • variable – переменная или свойство некоторого объекта;

  • object – ссылка на объект, свойство которого запоминается или тестируется;

  • property – название свойства, значение которого необходимо получить.

Важно

  • Тип переменной должен соответствовать типу значения свойства.

Примеры

  1. В процедуре распечатывается название рабочего листа c активной ячейкой.

    Sub parent_name()

    Range("C5").Activate

    MsgBox ActiveCell.Parent.Name

    End Sub

    Свойство Parent возвращает рабочий лист, на котором расположена активная ячейка.

  2. В зависимости от знака числа, хранящегося в ячейке, залить ячейку некоторым цветом.

Sub Range_if()

If Range("A1").Value<0 Then

Range("A1").Interior.ColorIndex = 5‘индекс синего цвета

Elseif Range("A1").Value=0 Then

Range("A1").Interior.ColorIndex = xlNone

Else

Range("A1").Interior.ColorIndex = xlAutomatic

End If

End Sub

В процедуре тестируется свойство Value объекта Range – ячейки A1. В случае отрицательного числа цвет заливки ячейки – синий.

При нулевом значении заливка ячейки отменяется (константа xlNone). При положительном значении устанавливается цвет заливки, предусмотренный по умолчанию (константа xlAutomatic).