Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
На самом деле механизм позднего связывания необходим для реализации объектно-ориентированных технологий, которые, в частности, используют динамического определение объектов в ходе выполнения программы.
Достаточно типичной задачей является использование в приложении неких внешних ActiveX-объектов (приложений или объектов). Например, вы хотите обратиться к приложению Excel.
Sub Late() ' Пример позднего связывания с внешним объектом Excel Dim ObjExcel As Object 'Описываем переменную типа Object Set ObjExcel = CreateObject("Excel.Application") 'и создаем объект на базе класса Excel.Application'задаем свойства книги и листаWith ObjExcel.WorkBooks.Add.ActiveSheet.Name = "37 вопрос".Visible = True MsgBox(“Имя активного листа “) & ActiveSheet.Name End With ObjExcel.Quit Set ObjExcel = NothingEnd SubДостоинство раннего связывания: работают подсказки и синтаксический контроль при создании исполняемого модуля. Но этот вариант (точнее вся программа, независимо от того было или не было обращение к EarlyBinding) будет работать только в случае наличия ссылки (Project|References) на реально существующее приложение.
Достоинство второго варианта — в возможности динамической настройки на используемый объект в ходе выполнения программы. Причем ссылку на него не нужно устанавливать заранее, поэтому при физическом отсутствии Excel на компьютере, ошибка произойдет только в момент выполнения данной процедуры (не говоря о том, что эту ошибку можно программно обработать и продолжить работу в другом режиме).
51. Пример решения системы нелинейных уравнений с использованием объектной модели MS Excel.
Пример. Используя объектную модель MS Excel, решить систему нелинейных уравнений при начальных условиях x (0)=0 и y (0)=0.
Dim ObjExcel As Object, s As String, sF As String
Private Sub Command1_Click()
Const xlDoNotSaveChanges = 0
Set ObjExcel = CreateObject("Excel.Application")
With ObjExcel
.WorkBooks.Add
.ActiveSheet.Name = "Solver"
.Visible = True
.DisplayAlerts = False
End With
ObjExcel.Range("A1").Name = "x"
ObjExcel.Range("A1").Value = Text3
ObjExcel.Range("A2").Name = "y"
ObjExcel.Range("A2").Value = Text4
Func$ = "$A$3" 'Целевая функция
XY$ = "$A$1:$A$2" 'Изменяемые ячейки
sF = "=(" & Text1 & ")^2+(" & Text2 & ")^2"
'Введение формулы в ячейку
ObjExcel.Range("A3").Formula = sF
'Полный путь к файлу Solver.xla заключен в дополнительные апострофы
s = "'C:\Program Files\Microsoft Office\OFFICE11\Library\SOLVER\Solver.xla'"
'Параметры Поиска Решения
ObjExcel.Run s & "!Solver.SolverOptions", 100, 100, 0.000001, False, False, 1, 1, 1, 5, False, 0.0001, False ' Поиск.Решения
ObjExcel.Run s & "!Solver.SolverOK", Func, 3, 0, XY
ObjExcel.Run s & "!Solver.SolverSolve" 'Выполнить Поиск
Text3 = ObjExcel.Cells(1, 1) 'Вывод решения системы в поля
Text4 = ObjExcel.Cells(2, 1)
ObjExcel.ActiveWindow.Close SaveChanges:=xlDoNotSaveChanges
ObjExcel.Quit
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Caption = "Решение системы НУ с помощью программы 'Поиск решения'"
Command1.Caption = "Поиск решения"
Command2.Caption = "Выход"
Text3 = ""
Text4 = ""
Text1 = "x^2+y^2-1"
Text2 = "2*x+3*y-0.9"
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set ObjExcel = Nothing
End Sub
Дата публикования: 2014-12-28; Прочитано: 513 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!