Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, ZAMUNDA, c интерессом прочитал Ваш совет. Програмирую на ВБ6 уже 3 дня, и очень мало его знаю. Попробую повозиться с References но поражает мощь для офиса
Чего-то мало вы с References возились. Они такие же как в VBA только в другом месте Project->References.
Вот например, создаю "Standart Exe" и подключаю "Microsoft Excel x.x Object Libary".
Option Explicit
Private WithEvents objWS As Excel.Worksheet
Private Sub Form_load()
' ... ... ...
Dim lReturn As Long
Dim objExcel As Excel.Application
lReturn = GetOpenFilename(OpenFile)
If lReturn = 0& Then
Me.Cls
Me.Print "Can't open file!"
Exit Sub
End If
Set objExcel = New Excel.Application
Set objWS = objExcel.Workbooks.Open(OpenFile.lpstrFile).Worksheets(1)
objExcel.Visible = True
Set objExcel = Nothing
End Sub
Private Sub Form_Unload(Cancel As Integer)
Dim objWB As Excel.Workbook
Set objWB = objWS.Parent
Set objWS = Nothing
objWB.Close False
Set objWB = Nothing
End Sub
Private Sub objWS_SelectionChange(ByVal Target As Excel.Range)
Me.Cls
Me.Print Target.Address(False, False, xlA1)
End Sub
Не проверял, т.к. лень с GetOpenFileName возиться...
А>три строчки и открыли файл в Excel еще две открыли Word взять Workbooks(1) и вытащить из неё Worksheet легко, и это пол страницы кода.
Открывается книга одной строчкой, а остальное можно только один раз делать, при старте приложения.
И кстати в C++ это ещё больше строчек -- там надо ещё HRESULT анализировать и создавть/уничтожать COM объекты ручками. Так что зря вы ругаетесь.
А>Должен же быть доступ к событиям и этого Worksheet'а.
Он есть -- смотрите пример мой выше.
Наука изощряет ум; ученье вострит память.
(c) Козьма Прутков