Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Onkey в Excel при доступе из VB.NET


Автор: swetik1981 10.11.2012, 16:22
Пытаюсь через VB.NET наладить обработку событий нажатия клавиш в книге Excel, че

Код

Public WithEvents xlApp As New Excel.Application
Public WithEvents xlBaza As Excel.Workbook

Sub openExcel
 xlBaza = xlApp.Workbooks.Open(C:\Книга.xls)
 xlApp.OnKey("{e}", "press_e")
End Sub

Sub press_e
 MsgBox("Нажата клавиша 'е')
End Sub


Этот код вызывает ошибку с соообщением об отсутствии макроса "press_e". Причина мне понятна: программа ищет макрос в эксцеле, а не в VB.NET.
Но может всё-таки есть возможность каким-то образом завязать OnKey на подпрограмму, записанную в коде VB.NET? Или найти другой способ отслеживания из VB.NET событий нажатия клавиш в Excel?

Автор: Partizan 18.1.2013, 18:59
Перемещено в VB .NET.

Автор: diadiavova 18.1.2013, 22:22
Использовать стандартный способ привязки обработчика к событию (Handles/AddHandler). Просто в левом комбобоксике редактора кода выбери книгу, а в праом - событие, уж коль скоро книга объявлена WithEvents. Если у доступных объектов нет нужного события - видимо отследить не получится, поскольку работать можно с теми событиями, которые тебе предоставляет объектная модель, а она судя по всему дает возможность к нажатиям клавиш привязывать только макросы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)