Переопределение горячих клавиш приложения
Метод опКеу может с успехом применяться для переопеределения горячих клавиш, присущих данному приложению. При этом его иногда применяют в комбинации с оператором 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)
Здесь:
r Word— обязательный параметр, используемый только с объектом Application, специфицирующий проверяемое слово;
|
|
r CustomDictionary — необязательный параметр, указывающий имя файла с пользовательским словарем;
r 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, задающий конвертируемое имя. Допустимы следующие типы имен:
r ссылка формата А1 на ячейку, которая рассматривается как абсолютная ссылка;
r диапазон;
r пользовательское имя;
r внешние ссылки. При этом надо использовать оператор ! для указания ссылки на объект из другой книги. Например, 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
Симулирование ячеек рабочего листа
Метод Evaluate позволяет симулировать работу с ячейками или диапазонами рабочего листа без реального воплощения этих действий на рабочем листе. Например, в следующем коде симулируется ввод в ячейку А1 значения 25, ввод в ячейку А2 формулы =a1^2 и считывание возвращаемого этой формулой значения.
Evaluate("A1").Value = 25
Evaluate("A2").Formula = "=А1^2"
MsgBox Evaluate("A2").Value
Тут же задачу можно решить в следующем коде, но здесь уже производится симулирование не операции ввода и вывода, а самих ячеек.
Dim firstCell As Range
Dim secondCell As Range
Set firstCell = Evaluate("A1")
Set secondCell = Evaluate("A2")
firstCell.Value = 25
secondCell.Formula = "=А1^2"
MsgBox secondCell.Value
Дата добавления: 2019-02-12; просмотров: 169; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!