2010-02-19 7 views
7

Así que desea capturar algunos comandos clave en nuestra Docuement nivel Excel VSTO complemento. Parece que no puedo encontrar una manera de hacerlo, que no sea usar VBA y tener nuestro complemento para hablar con VBA. Cualquier ayuda/ejemplos sería muy apreciada.¿Hay alguna forma de capturar HotKeys/Shortcuts en Excel VSTO utilizando solo C# y sin VBA?

Estoy utilizando Excel 2007.

+0

El estudio de desarrollo de Office (VSOD) Equipo de Apoyo Visual ha escrito un artículo sobre esto: http://blogs.msdn.com/b/vsod/archive/2010 /04/08/using-shortcut-keys-to-call-a-function-in-an-office-add-in.aspx –

Respuesta

3

Sólo puede hacer esto a través de la API llama a la subclase de Excel y esté pendiente de comandos de teclado. This es anterior, pero todavía se aplica.

+0

se rompe el vínculo –

4
  1. Un método implica el uso de la solución de 3 ª parte de Addin-Express. Su producto incluye la capacidad de agregar un atajo de teclado como propiedad a los comandos del menú de cinta.

  2. La otra forma es hacer uso de enlaces de teclado de bajo nivel, a través de algunos de Win32 API que generalmente se conoce como ventanas de subclases. Aquí hay una explicación excelente con ejemplos de código de cómo hacerlo. Tenga en cuenta que el único "extra" que hay que hacer para obtener este código para "trabajar" en VSTO se está moviendo el método SetHook() al evento Startup, y el método UnhookWindowsHookEx() para el evento de cierre.

    Check out the article on MSDN here by Stephen Toub.

  3. Finalmente, está el uso de la propiedad de la clase OnAction complemento. Este método requiere el uso de algunos de VBA (en términos de un método de devolución de llamada que apunta de nuevo al complemento .NET subyacente), y funciona bien, siempre y cuando estén dispuestos a distribuir parte de VBA en su solución (es decir, un xls o proyecto doc w/vba, o tal vez un complemento nativo). Nota También tendrá que marcar comvisible = true, y exponer el método GetAutomationServiceObject para que su VBA puede hacer referencia a su complemento de código VBA.

    see here for a thread on it...

    Comparison of the techniques given by Geoff Darst

+0

Parece que el enlace Geoff Darst ahora ya funciona. ¿Alguna idea de dónde encontrar ese artículo ahora? ¡Gracias! –

+0

@ MichaelZlatkovsky-Microsoft Ver este enlace de narkive: http://microsoft.public.vsnet.vstools.office.narkive.com/a5kXwA4E/capture-keystrokes-ctrl-something – Mark

Cuestiones relacionadas