Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Excel и его обьекты.docx
Скачиваний:
19
Добавлен:
05.11.2018
Размер:
75.31 Кб
Скачать

13.2. Объект Application

Принципы работы с объектом Application в MS Excel очень похожи на таковые в MS Word.

Рассмотрим пример. Откроем MS Excel, добавим на рабочий лист кнопку, добавим в обработчик щелчка по кнопке такой код.

MsgBox Excel.Application.Name

После выполнения программы в окне сообщения отобразится имя приложения - в данном случае - Microsoft Excel. Очевидно, что свойство Name объекта Application возвращает имя приложения.

Теперь рассмотрим наиболее важные методы и свойства Application. Некоторые из них похожи на таковые в MS Word. Например, метод Quit точно так же, как в Word, закрывает приложение, свойство Visible отвечает за видимость окна программы и т.д.

1.3. Методы Application

1.3.1. Calculate - принудительный пересчет

Этот метод, вызываемый для объекта Application, позволяет пересчитать все открытие книги. Его же можно вызывать для отдельных книг (объект Workbook) листов (Worksheet), ячеек и их диапазонов (Range). Например, код из листинга. позволяет пересчитать все открытые книги.

Application.Calculate

1.3.2. GoTo - переход в ячейку

Позволяет выделить любой диапазон ячеек в любой книге, причем, если книга не активна - она будет активирована. Так же метод может запускать макросы Microsoft Excel.

Полный вызов метода выглядит так:

Goto(Reference, Scroll)

В качестве параметра Reference используется ссылка на ячейку или диапазон ячеек, которые должны быть выделены после вызова метода. Так же здесь может быть использовано имя макроса - тогда он будет запущен.

Параметр Scroll отвечает за "перемотку" листа Excel к выделенным ячейкам - так, чтобы левый верхний угол выделения совпадал бы с левым верхним углом отображаемой области листа. Если Scroll установлен в True - лист перематывается, если в False - нет.

Например, такой вызов позволяет выделить ячейку H500 на активном листе.

Application.Goto _

Reference:=ActiveSheet.Range("H500"), _

Scroll:=True

Как видите, обращение к активному листу очень напоминает обращение к активному документу в MS Word. Обратите внимание на то, что мы используем полное обращение к методу - Application.GoTo - как вы знаете, обычно свойства и методы объекта Application можно использовать в коде, не указывая этого объекта. Однако, если в этом случае не указать Application, то вместо метода GoTo программа попытается выполнить оператор безусловного перехода GoTo.

1.3.3. SendKeys - имитация нажатий на клавиши клавиатуры

Очень интересный метод - позволяет передавать в активное окно приложения нажатия клавиш. Полный вызов метода выглядит так:

SendKeys(Keys, Wait)

Параметр Keys позволяет задавать клавиши, нажатия которых будут переданы приложению. Метод поддерживает эмуляцию как алфавитно-цифровых, так и управляющих клавиш, для которых применяется специальная кодировка. Алфавитно-цифровые клавиши указываются при вызове в своем обычном виде Например, для передачи символа "Ф" нужно указать его при вызове метода и т.д.

Чтобы передать приложению нажатия клавиши Backspace - используйте код {BS}. Для передачи нажатия кнопки Enter используйте значок ~ (тильда), для клавиши Del - код {DEL}.

Для передачи приложению нажатий клавиш Shift, Ctrl или Alt, можно воспользоваться следующими кодами этих клавиш:

  • SHIFT - + (знак плюс)

  • CTRL - ^ (крышка)

  • ALT - % (знак процента)

Параметр Wait может принимать значения True или False. Если он будет установлен в True - макрос подождет, пока приложение обработает введенные с "клавитуры" данные, после чего продолжит выполнение. Если в False - макрос ждать не будет.

Рассмотрим пример. С помощью метода SendKeys введем в ячейку A1 текст "Сейчас закрою программу!", после чего попытаемся закрыть программу, "нажав" сначала Alt, потом Ф (для открытия главного меню Office), и потом - Ы - для выхода из программы. Подразумевается, что при запуске макроса указанная ячейка активна - в ней находится рамка выделения.

Application.SendKeys ("Сейчас закрою программу!")

Application.SendKeys ("%ФЫ")

После выполнения этого кода вы увидите окно со стандартным вопросом о сохранении документа.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]