powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Onkey в Excel при доступе из VB.NET
3 сообщений из 3, страница 1 из 1
Onkey в Excel при доступе из VB.NET
    #38032976
Zaharius
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь через 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?
...
Рейтинг: 0 / 0
Onkey в Excel при доступе из VB.NET
    #38034105
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zaharius,

Если альтернативный способ использовать, то например через GetAyncKeyState отлавливать нажатия клавиш - минус в том что работает глобально, а не для приложения Excel. Если через OnKey - то есть вариант, пока пытаюсь сделать:
1) Сделать в приложении VB.NET класс (COM класс аттрибут указать) в котором реализовать метод Press_E(), в VBA через xlApp.Run "InitWrapper", objClass <-- передать ссылку в макрос на COM класс.
2) В OnKey вызывается процедура в VBA Sub Press_e() и в ней реализовать уже вызов objClass.Press_E()

Читал что .NET предоставляет COM интерфейсы для работы в клиентском приложении через враппер. В данном случае вызов через IDispatch будет, и скорее всего его в своём же классе его нужно реализовать.
Можно почитать тут , пока писал нашёл статейку.
...
Рейтинг: 0 / 0
Onkey в Excel при доступе из VB.NET
    #38034123
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пользовался но есть штука VSTO, специально для разработки решений для офиса. Посмотри как работает, книжки вроде есть
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Onkey в Excel при доступе из VB.NET
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]