Основы офисного программирования и документы Excel


              

Объекты Excel Лекция из курса «Основы офисного программирования и документы Excel»


Биллиг Владимир Арнольдович
Интернет-Университет Информационных Технологий, INTUIT.ru

Приведу текст программы, рисующей стрелки: Public Sub DependArrows() 'Проведение стрелок, задающих зависимости ячеек. Dim i As Integer With ThisWorkbook.Worksheets(3) 'Установка области выделения Dim myRange As Range Set myRange = .Range("D32") 'Поочередное вычисление влияющих ячеек For i = 1 To 10 myRange.ShowPrecedents Next i 'Все стрелки можно удалить! '.ClearArrows End With End Sub

Продолжим рассмотрение методов:

  • Evaluate(Name) преобразует имя в объект или значение. Этот метод часто удобно применять, когда имя вводится пользователем в процессе диалога. Вот пример, а точнее два примера в одной процедуре, в первом - пользователь вводит в процессе диалога имя интересующей его ячейки, а ему возвращается ее значение. Обратите внимание, что здесь имя преобразуется в объект Range, задающий ячейку с заданным именем, и после преобразования можно использовать всю мощь этого объекта. Второй пример не менее интересен, - пользователь задает некоторое выражение, содержащее обращение к стандартным функциям и получает значение этого выражения, посчитанное при вызове метода Evaluate. Так что, по существу метод представляет реализацию интерпретатора выражений.

Public Sub Eval() 'Организация вычислений по запросу пользователя. Dim NameOfCell As String, Mes As String Dim Val As Variant 'Запрос ячейки. Mes = "Введите имя ячейки,значение которой Вас интересует" NameOfCell = InputBox(Prompt:=Mes, _ Title:="Ввод имени", Default:="A1") Val = Evaluate(NameOfCell).Value MsgBox ("Значение ячейки " & NameOfCell & " = " & Val)

'Запрос на вычисление функции. Mes = "Задайте функцию и аргумент - получите значение" NameOfCell = InputBox(Prompt:=Mes, _ Title:="Ввод функции", Default:="SIN(3)") Val = Evaluate(NameOfCell) MsgBox ("Значение функции " & NameOfCell & " = " & Val) End Sub




Содержание  Назад  Вперед