
- •13.1. Особенности программирования для ms Excel
- •13.2. Объект Application
- •13.3. Методы Application
- •13.3.1. Calculate - принудительный пересчет
- •13.3.2. GoTo - переход в ячейку
- •13.3.3. SendKeys - имитация нажатий на клавиши клавиатуры
- •13.3.4. Wait - пауза при выполнении макроса
- •13.4. Свойства Application
- •13.4.1. ActiveCell, ActiveChart, ActivePrinter, ActiveSheet, ActiveWindow, ActiveWorkbook - активные объекты
- •13.4.2. Cells, Columns, Rows, Sheets, Workbooks, Worksheets, Names - наборы объектов и коллекции
- •13.4.3. Range - ячейка или группа ячеек
- •13.4.4. ScreenUpdating - обновление экрана
- •13.4.5. Selection - ссылка на выделенный объект
- •13.4.6. WorksheetFunction - формулы Excel в коде vba
- •13.5. События Application
13.3.4. Wait - пауза при выполнении макроса
13-04-Excel Wait.xlsm - пример к п. 13.3.4.
Позволяет сделать паузу в выполнении макроса. Пауза может быть нужна для того, чтобы пользователь успел что-то рассмотреть или для того, чтобы на время освободить вычислительные ресурсы системы.
При вызове этого метода указывается время, на которое должно быть приостановлено выполнение макроса. После того, как истекает время, заданное при вызове метода, он возвращает True и выполнение программы продолжается. Например, в листинге 13.5. так можно остановить выполнение прораммы на 7 секуд, после чего - вывести сообщение.
If Application.Wait(Now + TimeValue("0:00:7")) Then
MsgBox "Семь секунд прошло!"
End If
Листинг 13.5. Приостановка выполнения программы (html, txt)
Здесь мы получаем значение типа Date с помощью функции TimeValue. После того, как пройдут 7 секунд, выполнение макроса возобновится, метод возвратит True, будет выполнено условие и выведено сообщение.
13.4. Свойства Application
13.4.1. ActiveCell, ActiveChart, ActivePrinter, ActiveSheet, ActiveWindow, ActiveWorkbook - активные объекты
13-05-Excel Active.xlsm - пример к п. 13.4.1.
Cвойства, имена которых начинаются с Active, позволяют обращаться к различным активным объектам.
ActiveCell возвращает объект типа Range, который представляет собой активную (выделенную) ячейку рабочего листа, отображаемого в данный момент на экране. Если при вызове этого свойства на экране нет открытого листа - произойдет ошибка.
Например, такой код (листинг 13.6.) выводит данные из активной ячейки в окне сообщения, после чего предлагает пользователю ввести в эту ячейку новые данные с помощью окна ввода.
MsgBox ("В ячейке с именем " + Application.ActiveCell.Address + " хранится значение " + Application.ActiveCell.Value)
ActiveCell.Value = InputBox("Введите новое значение для ячейки " + ActiveCell.Address)
Листинг 13.6. Работа с активной ячейкой (html, txt)
Очевидно, что свойство Value объекта ActiveCell содержит данные, которые записаны в ячейку, а свойство Address - адрес ячейки.
Остальные свойства этой группы предназначены для обращения к следующим объектам:
ActiveChart - к активной диаграмме.
ActivePrinter - к активному принтеру.
ActiveSheet - к активному листу. Это свойство очень часто используется на практике. Например, листинг 7.7. позволяет вывести имя активного листа.
MsgBox Application.ActiveSheet.Name
ActiveWindow - к активному окну.
ActiveWorkbook - к активной рабочей книге.
Листинг 7.7. Выводим имя активного листа (html, txt)
13.4.2. Cells, Columns, Rows, Sheets, Workbooks, Worksheets, Names - наборы объектов и коллекции
Эти свойства возвращают соответствующие наборы объектов и коллекции. Подробности о них мы рассмотрим ниже, здесь лишь определим их основное предназначение.
Cells, Columns, Rows - возвращают наборы объектов Range, содержащие, соотвественно, ячейки, столбцы, строки. При вызове этих свойств можно указывать, какие именно объекты нужно возвратить, а можно, вызвав без параметров, получить все объекты нужного вида.
Sheets, Worksheets - возвращают коллекции, которые содержат листы активной книги. В коллекции Sheets будут содержаться листы, которые содержат диаграммы и обычные листы, а в коллекции Worksheets - лишь обычные листы.
Workbooks - возвращает коллекцию открытых книг.
Names - возвращает коллекцию именованных диапазонов - с ними можно работать так же, как с закладками в MS Word.