- •Объектная модель
- •Полная и неявная ссылка на объект
- •Ссылка на активную рабочую книгу, лист, ячейку, диаграмму и принтер
- •Загрузка инсталлированной надстройки
- •Управление уровнем безопасности
- •Семейство встроенных диалоговых окон
- •Объект FileDialog
- •Методы объекта Application
- •Установка выполнения специфицированной процедуры при нажатии заданной комбинации клавиш
- •Переопределение горячих клавиш приложения
- •Проверка правописания отдельного слова
- •Симулирование ячеек рабочего листа
- •Электронные часы в ячейке рабочего листа
- •Получение данных из закрытой рабочей книги
- •События объекта Application
- •IgnoreReadOnlyRecommended — необязательный параметр, указывающий надо ли отображать предупреждение о том, что книга была сохранена в режиме "только для чтения";
- •Установка и снятие защиты книги
- •Методы объекта Worksheet
- •Объект Protection
- •События объекта Worksheet
- •Добавление к графическому объекту обработчика события Click
- •Примечание
- •Свойства объекта Range
- •Управление стилем границы диапазона и объекта Border
- •Функции rgb и qbColor
- •Доступ к отдельным ячейкам диапазона
- •Выбор элементов на рабочем листе или в книге
- •Объект Characters
- •Объект Comment
- •Определение текущего диапазона
- •Объект Font
- •Объект Interior
- •Установка числового формата
- •Переопределение размеров диапазона
- •Методы объекта Range
- •Табуляция функции
- •Заполнение диапазона по одному значению
- •Специальная вставка
- •Вставка диапазона с транспонированием
- •Бегущая картинка
- •Поиск значения в диапазоне
- •Повторный поиск и поиск всех значений
- •Поиск по формату
- •Замена значений
- •Ввод в диапазон неповторяющихся значений
- •Озвучивание текста
- •Построение графа
- •Пользовательские функции
- •Математические функции
- •Надстройки
- •Где хранятся макросы?
Переопределение горячих клавиш приложения
Метод опКеу может с успехом применяться для переопеределения горячих клавиш, присущих данному приложению. При этом его иногда применяют в комбинации с оператором SendKeys, который посылает последовательность символов активному окну, как если бы они были набраны на клавиатуре.
Например, в следующее приложение (листинги 5.12, а и 5.12, 6) при нажатии комбинации клавиш <Ctrl>+<o> вместо окна Открытие документа отображается окно с сообщением "Это заглушка!" При нажатии комбинации клавиш <Ctrl>+<x> вместо операции вставки из буфера обмена в книгу добавится новый рабочий лист. А при нажатии комбинации клавиш <Ctrl>+<p> вместо печати ничего не происходит.
Листинг 5.12, а. Переопределение горячих клавиш приложения.
Модуль ЭтаКнига
Private Sub Workbook__Open ()
With Application
.OnKey "^о", "SetDunimy"
.OnKey "лх", "SetNewAction"
.OnKey "лр", ""
End With
End Sub
Листинг 5.12, б. Переопределение горячих клавиш приложения.
Стандартный модуль
Public Sub SetDummy()
MsgBox "Это заглушка!"
End Sub
Public Sub SetNewAction()
SendKeys "^n"
End Sub
Проверка правописания отдельного слова
Проверку правописания можно осуществить методом CheckSpelling объекта Application, который возвращает значение True, если специфицированное слово находится в словаре, и значение False в противном случае.
CheckSpelling(Word, CustomDictionary, IgnoreUppercase)
Здесь:
Word — обязательный параметр, используемый только с объектом Application, специфицирующий проверяемое слово;
CustomDictionary — необязательный параметр, указывающий имя файла с пользовательским словарем;
IgnoreUppercase — необязательный параметр, принимающий логические значения и определяющий, надо ли проверять правописание слов, набранных строчными буквами.
Например, следующий код проверяет принадлежность указанного слова словарю.
Dim wrd As String
wrd = "Привет"
If Application.CheckSpelling(wrd) Then
MsgBox "Слово '" & wrd & "' найдено"
Else
MsgBox "Слово '" & wrd & "' не найдено"
End If
Преобразование имени MS Excel в объект или значение
Метод Evaluate объекта Application преобразует имя MS Excel в объект или значение.
Evaluate(Name)
Здесь Name — обязательный параметр типа string, задающий конвертируемое имя. Допустимы следующие типы имен:
ссылка формата А1 на ячейку, которая рассматривается как абсолютная ссылка;
диапазон;
пользовательское имя;
внешние ссылки. При этом надо использовать оператор ! для указания ссылки на объект из другой книги. Например, Evaluate("[Отчет.XLS]Май!А1") .
Симулирование вычисления арифметических выражений
Метод Evaluate позволяет по строковому представлению арифметического выражения находить его значение. Например, следующий оператор отображает в диалоговом окне значение арифметического выражения (1+3)/2+sin(2).
MsgBox Application.Evaluate("(l+3)/2+sin(2)")
Простейший функциональный калькулятор
Обобщая идею, обсужденную в предыдущем разделе, используя метод Evaluate, легко создать простейший функциональный калькулятор, который возвращает значение введенного арифметического выражения. Для этого надо иметь средство ввода пользователем строкового представления арифметического выражения, что можно обеспечить методом InputBox. В коде листинга 5.13 метод Evaluate произведет требуемые вычисления, а диалоговое окно MsgBox обеспечит отображения результата.
Листинг 5.13. Калькулятор
Sub Calculator()
Dim s As String
s = InputBox("Введите арифметическое выражение")
MsgBox s & " = " & Application.Evaluate(s)
End Sub
