Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример динамического способа формирования объектов на форме VBA Excel




На самом деле механизм позднего связывания необходим для реализации объектно-ориентированных технологий, которые, в частности, используют динамического определение объектов в ходе выполнения программы.

Достаточно типичной задачей является использование в приложении неких внешних 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-23; Просмотров: 747; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.