Национальный исследовательский университет "Высшая Школа Экономики"
Опубликован: 01.04.2010 | Доступ: свободный | Студентов: 3841 / 673 | Оценка: 4.45 / 4.06 | Длительность: 08:48:00
ISBN: 978-5-9556-0119-9
Специальности: Программист
Лекция 8:

Объекты MS Excel

< Лекция 7 || Лекция 8: 12345

Свойства, влияющие на высвечивание на экране

Свойство DisplayAlerts (R/W Boolean)

Во время выполнения программ возможно высвечивание сообщений и запросов MS Excel (встроенных диалоговых окон), на которые пользователь должен реагировать. Например, это может быть запрос на сохранение изменений при закрытии рабочей книги. Значение False свойства DisplayAlerts позволяет отключить высвечивание подобных сообщений. При отключении запросов MS Excel выбирает ответ, который установлен в диалоге по умолчанию.

Важно

  • Не забывайте возвращать первоначальное значение этого свойства, равное True, так как MS Excel автоматически его не восстанавливает.
Пример

Процедура закрывает рабочую книгу AIR.XLS без сохранения изменений, при этом запрос на сохранение изменений не возникает.
Свойство ScreenUpdating (R/W Boolean)

Это свойство обновления экрана разрешает (значение True ) или запрещает (значение False ) изменение экрана при выполнении команд MS Excel.

Если процедура выполняет команды MS Excel, то на экране отображаются все действия с объектами MS Excel: выделение и копирование ячеек, перемещение экрана и т.д. Свойство ScreenUpdating позволяет избежать подобного "мелькания экрана".

Важно

  • Выключение обновления экрана ускоряет выполнение макропроцедур.
  • Не забывайте возвращать первоначальное значение этого свойства, равное True, так как MS Excel автоматически его не восстанавливает.
Свойство Visible (R/W Boolean)

Это свойство позволяет скрывать или показывать окно приложения. Свойство доступно для многих объектов, например, для объектов формы.

Пример

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

Другие свойства объекта Application

Свойства Описание Примеры операторов
Calculation (R/W) Возвращает или устанавливает параметры вычислений. Задается константами MS Excel Application.Calculation=xlCalculateManual задает ручной пересчет
Application.CalculateBeforeSave=True задает автоматический пересчет перед сохранением файла
Path (R/O String) Возвращает полный путь к объекту MsgBox "Путь к приложению MS Excel " & Application.Path высвечивает путь к программе MS Excel
SheetsInNewWorkbook (R/W Long) Возвращает или устанавливает количество рабочих листов во вновь создаваемой рабочей книге MsgBox "В новой рабочей книге " & Application.SheetsInNewWorkbook & " рабочих листов" высветит количество листов во вновь создаваемой рабочей книге
ThisWorkbook Возвращает объект ThisWorkbook - рабочую книгу, в которой находится выполняемая процедура.

Свойство ActiveWorkbook в отличие от свойства ThisWorkbook позволяет получить доступ к активной рабочей книге

ThisWorkbook.Close SaveChanges:=False закрывает рабочую книгу, содержащую исполняемый код
ThisWorkbook.FullName возвращает полный путь к рабочей книге, содержащей исполняемый код
For Each w In Workbooks
  If w.Name <> ThisWorkbook.Name Then
    w.Close savechanges:=True
  End If
Next w
Цикл закрывает с сохранением изменений все открытые рабочие книги за исключением той, в которой находится исполняемая процедура
WorksheetFunction Возвращает одноименный объект-контейнер функций рабочего листа MsgBox "Десятичный логарифм 10^6 равен " & WorksheetFunction.Log10(10^6) высвечивает 6

Важно

  • Вызов функции рабочего листа производится со ссылкой на контейнер WorksheetFunction или на объект Application.
  • Названия функции VBA и функции рабочего листа, выполняющих одинаковые действия, могут не совпадать, например, функция Instr и функция Find.

Методы

Метод OnTime

Метод позволяет запустить некоторую процедуру в заданный момент времени.

Синтаксис OnTime(EarliestTime, Procedure[,LatestTime])

  • EarliestTime - выражение, задающее время запуска процедуры;
  • Procedure - имя запускаемой процедуры;
  • LatestTime - самое позднее время, когда процедура может быть запущена, если невозможно было запустить ее точно в указанное время. Причиной невозможности запуска могло явиться выполнение диалога, который не был прерван ранее.

Пример

Пример применения метода OnTime

увеличить изображение
Рис. 8.6. Пример применения метода OnTime

Процедура mes_time в 16:30 высвечивает сообщение "Пошли пить кофе".

Внимание

  • При указании, например, LatestTime=EarliestTime + 30, MS Excel подождет 30 секунд и, если выполняемая процедура не завершится, то процедура, указанная в OnTime, не будет запущена вовсе.
  • Если параметр LatestTime не задавать, то MS Excel дождется завершения процедуры и запустит нужную процедуру.
  • Если в качестве EarliestTime использовать выражение Now()+интервал времени, то процедура запустится спустя указанный интервал от текущего времени.
Метод Wait

Метод переводит приложение в состояние ожидания до наступления некоторого момента времени. Во время паузы пользователь не может выполнять никакие команды, но операции, выполняемые в фоновом режиме, например, распечатка, не прекращаются.

Синтаксис expression.Wait(Time)

  • expression - возвращает объект Application ;
  • Time - время окончания паузы в выполнении процедуры в формате даты.

Пример

Процедура устанавливает паузу примерно на 10 секунд.

Используются функции даты Hour, Minute, Second, TimeSerial, Now. С их помощью из текущего времени выделяются час, минуты, секунды; секунды увеличиваются на 10, и составляется время окончания паузы.

Пример применения метода Wait

Рис. 8.7. Пример применения метода Wait
< Лекция 7 || Лекция 8: 12345
Дмитрий Денисов
Дмитрий Денисов

Еще раз повторяю вопрос  - отправил договор и сканы документов по почте - в начале августа, до  5 го, внес предоплату - летом действовала скидка - чтобы пройти курс в августе, но я уезжал в Москву. По возвращению - и  в течение месяца - никакого ответа, никаких зачислений, ничего. Как проверить, пришли ли мои документы в Интуит, предоплата, почему нет зачисления.

Дмитрий Денисов
Дмитрий Денисов

Как записаться на курс, оплатить, не ориентируюсь в программе.

Ранее у Вас учился.

Работаю преподавателем, есть справка. Как получить скидку, т.е. оплата 2000


 

Денис Ермаков
Денис Ермаков
Россия
Alexander Vizelka
Alexander Vizelka
Россия