Cells, Columns, Rows, Sheets, Workbooks, Worksheets, Names - наборы объектов и коллекции — КиберПедия 

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Cells, Columns, Rows, Sheets, Workbooks, Worksheets, Names - наборы объектов и коллекции

2021-03-17 47
Cells, Columns, Rows, Sheets, Workbooks, Worksheets, Names - наборы объектов и коллекции 0.00 из 5.00 0 оценок
Заказать работу

Эти свойства возвращают соответствующие наборы объектов и коллекции. Подробности о них мы рассмотрим ниже, здесь лишь определим их основное предназначение.

  • Cells, Columns, Rows - возвращают наборы объектов Range, содержащие, соотвественно, ячейки, столбцы, строки. При вызове этих свойств можно указывать, какие именно объекты нужно возвратить, а можно, вызвав без параметров, получить все объекты нужного вида.
  • Sheets, Worksheets - возвращают коллекции, которые содержат листы активной книги. В коллекции Sheets будут содержаться листы, которые содержат диаграммы и обычные листы, а в коллекции Worksheets - лишь обычные листы.
  • Workbooks - возвращает коллекцию открытых книг.
  • Names - возвращает коллекцию именованных диапазонов - с ними можно работать так же, как с закладками в MS Word.

Range - ячейка или группа ячеек

Возвращает объект Range, который ссылается на ячейку или группу ячеек. Это - один из важнейших объектов для работы с ячейками - ниже мы остановимся на нем подробнее.

ScreenUpdating - обновление экрана

Позволяет включать (присвоением свойству True) и отключать (присвоением False) обновление экрана. Имеет смысл отключить обновление экрана перед теми частями программы, которые интенсивно пользуются данными на листе. Благодаря тому, что системные ресурсы не будут тратиться на обновление экрана, программа будет работать быстрее. Этот метод весьма актуален, так как MS Excel часто используют для проведения ресурсоемких расчетов.

Практика показывает, что если программа интенсивно использует вывод на экран в процессе работы, если она изменяет данные, которые участвуют в расчете формул, расположенных на листе, то отключение вывода может ускорить работу в 3-10 раз.

Например, ниже приведен код, который два раза повторяет процедуру 100-кратного вывода на экран 400 целых случайных чисел и выводит время, требующееся для выполнения этих действий с обновлением экрана и без него.

'Массив для значений времени

Dim WorkTime(2)

'Время начала теста

Dim StartTime

'Время окончания теста

Dim StopTime

'Включаем обновление

Application.ScreenUpdating = True

For i = 1 To 2

   'Во втором проходе цикла

   'выключим обновление

   If i = 2 Then _

       Application.ScreenUpdating = False

   'Запишем текущее время

   StartTime = Time

   'Перейдем на лист для теста

   Worksheets("Тест скорости").Activate

   'Выведем 100 раз целые случайные

   'числа в область 20х20

   For y = 1 To 100

       For p = 1 To 20

           For j = 1 To 20

               ActiveSheet.Cells(p, j) = _

                   Int(Rnd * 100)

           Next j

       Next p

   Next y

   'Запишем время окончания

   StopTime = Time

   'Для корректного представления

   'в виде секунд

   WorkTime(i) = _

       (StopTime - StartTime) * 24 * 60 * 60

Next i

Application.ScreenUpdating = True

MsgBox "Время выполнения программы." & Chr(13) + _

   "При включенном обновлении: " & _

   WorkTime(1) & " сек." & Chr(13) & _

   "При выключенном обновлении: " & _

   WorkTime(2) & " сек."

Selection - ссылка на выделенный объект

Это очень важное свойство возвращает ссылку на выделенный объект. Чаще всего это - ячейка или группа ячеек. Например, это свойство удобно использовать при работе с выделенным диапазоном ячеек (или отдельной выделенной ячейкой). Ниже мы коснемся его подробнее.

WorksheetFunction - формулы Excel в коде VBA

Возвращает объект WorksheetFunction, методы которого представляют собой формулы Excel, которые можно использовать в коде VBA. Использование этого свойства позволяет облегчить выполнение сложных расчетов.

События Application

Объект Excel.Application поддерживает множество событий. Работа с ними аналогична работе с событиями Word.Application, которыми мы занимались в соответствующем разделе предыдущей главы.

Рассмотрим основные шаги, которые необходимо произвести, чтобы работать с событиями приложения, перечислим события и приведем пример.

Создайте новый модуль класса. Добавьте в него объявление объекта типа Excel.Application с событиями

Public WithEvents obj_ExApp As Excel.Application

После этого в списке объектов редактора кода модуля появится объект obj_ExApp, а в списке событий - соответствующие ему события. Выберите нужное вам событие - автоматически будет создан обработчик для него. В частности, Excel.Application поддерживает следующие события:

  • NewWorkbook - происходит при создании новой книги
  • SheetActivate - при активации любого листа
  • SheetBeforeDoubleClick - происходит при двойном щелчке по листу, то есть позволяет перехватить щелчок и выполнить собственную процедуру до того, как будет выполнено стандартное действие.
  • SheetBeforeRightClick - позволяет перехватить нажатие правой кнопки мыши по листу.
  • SheetCalculate - после пересчета листа или после изменения данных, которые отображаются на диаграмме.
  • SheetChange - при изменении содержимого ячеек на любом листе.
  • SheetFollowHyperlink - происходит при переходе по гиперссылке, которая может быть включена в лист Microsoft Excel.
  • SheetSelectionChange - при изменении выделения на листе
  • WindowActivate - при активации окна книги.
  • WindowDeactivate - при деактивации окна книги.
  • WindowResize - при изменении размера окна книги.
  • WorkbookActivate - при активации книги.
  • WorkbookBeforeClose - перед закрытием книги.
  • WorkbookBeforePrint - перед печатью книги.
  • WorkbookBeforeSave - перед сохранением книги.
  • WorkbookDeactivate - при деактивации книги.
  • WorkbookNewSheet - при добавлении нового листа в любую из открытых книг.
  • WorkbookOpen - при открытии книги.

После того, как создан обработчик, написан его код, работа еще не окончена. Следующий шаг - это связывание объекта obj_ExApp с реально работающим приложением. Ниже приведен полный код модуля с одним обработчиком события, а также - процедура, служащая для связывания объекта obj_ExApp с работающим приложением. Эта процедура может существовать в виде отдельного макроса или в виде кода обработчика нажатия на кнопку. Ее выполнение можно назначить событию открывающейся книги, которая содержит данный модуль класса и т.д.

Итак, вот код процедуры, который связывает объект созданного нами класса AppEvents с приложением:

Dim obj_ExcelAppEv As New AppEvents

Sub EventsInit()

Set obj_ExcelAppEv.obj_ExApp = Excel.Application

End Sub

А вот полный код модуля класса AppEvents с объявлением объектной переменной и обработчиком события.

Public WithEvents obj_ExApp As Excel.Application

Private Sub obj_ExApp_NewWorkbook(ByVal Wb As Workbook)

'Выполняется при создании новой книги

MsgBox "Вы создали новую книгу"

End Sub

 


Поделиться с друзьями:

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

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.015 с.