Re[3]: добраться до события в офисе
От: ZAMUNDA Земля для жалоб и предложений
Дата: 08.11.06 16:30
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, 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) Козьма Прутков
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.