2010-02-19 14 views
7

Quindi voglio acquisire alcuni comandi chiave nel nostro componente aggiuntivo di Excel VSTO a livello di documenti. Non riesco a trovare un modo per farlo, oltre a utilizzare VBA e avere il nostro addin parlare con il VBA. Qualsiasi aiuto/esempio sarebbe molto apprezzato.C'è un modo per acquisire tasti di scelta rapida/collegamenti in Excel VSTO utilizzando solo C# e nessun VBA?

Sto usando Excel 2007.

+0

Visual Studio Development Office (VSOD) Support Team ha scritto un articolo su questo: http://blogs.msdn.com/b/vsod/archive/2010 /04/08/using-shortcut-keys-to-call-a-function-in-an-office-add-in.aspx –

risposta

3

È possibile farlo solo tramite chiamate API per creare una sottoclasse di Excel e guardare per comandi da tastiera. This è più vecchio, ma è ancora valido.

+0

il link è rotto –

4
  1. Un metodo comporta l'utilizzo della soluzione 3a parte da Addin Express. Il loro prodotto include la possibilità di aggiungere una scorciatoia da tastiera come proprietà ai comandi del menu della barra multifunzione.

  2. L'altro modo è quello di fare uso di ami tastiera di basso livello, attraverso di alcuni Win32 API che è generalmente indicato come finestre sottoclasse. Ecco una spiegazione eccellente con un esempio di codice su come farlo. Nota che l'unica cosa "extra" che devi fare per far "funzionare" questo codice in VSTO è spostare il metodo SetHook() all'evento Startup e il metodo UnhookWindowsHookEx() all'evento Shutdown.

    Check out the article on MSDN here by Stephen Toub.

  3. Infine v'è l'uso della OnAction proprietà della classe Addin. Questo metodo richiede l'uso di alcuni VBA (in termini di un metodo di callback che rimanda al sottodominio .net), e funziona bene fino a quando si desidera distribuire alcuni VBA nella propria soluzione (ovvero un xls o doc w/vba project, o forse un addin nativo). Nota inoltre dovrai contrassegnare comvisible = true ed esporre il metodo GetAutomationServiceObject in modo che il tuo VBA possa fare riferimento al tuo componente aggiuntivo dal codice VBA.

    see here for a thread on it...

    Comparison of the techniques given by Geoff Darst

+0

Sembra che il collegamento Geoff Darst ora funzioni più a lungo. Qualche idea su dove trovare quell'articolo adesso? Grazie! –

+0

@ MichaelZlatkovsky-Microsoft Vedere questo collegamento da narkive: http://microsoft.public.vsnet.vstools.office.narkive.com/a5kXwA4E/capture-keystrokes-ctrl-something – Mark