Wie Sie ausführen .Onkey-Ereignis in ein Excel-Add-In erstellt mit Visual Studio 2010?

Ich bin erstellen Sie ein Excel-Add-In mit Visual Studio 2010. Ich möchte ausführen von code, wenn Benutzer klickt auf eine Kombination von Tasten.

Hier ist der code ich habe

Public Class CC

Private Sub ThisAddIn_Startup() Handles Me.Startup
    EnableShortCut()
End Sub

Sub A1()
    MsgBox "A1"
End Sub

Sub A2()
    MsgBox "A2"
End Sub

Sub A3()
    MsgBox "A3"
End Sub

Public Sub EnableShortCut()
    With Application
        .OnKey "+^{U}", "A1"  'action A1 should be performed when user clicks  Ctrl + Shift + U
        .OnKey "+^{L}", "A2"  'action A2 should be performed when user clicks  Ctrl + Shift + L
        .OnKey "+^{P}", "A3"  'action A3 should be performed when user clicks  Ctrl + Shift + P
    End With
End Sub

End Class

Den Add-In, wenn installiert, erscheint eine Fehlermeldung beim Klick auf den short cuts. Es sagt die spezifischen makro kann nicht gefunden werden.
Den code unter den Sub EnableShortCut() funktioniert gut, wenn es in ein excel-vba-Modul. Das gleiche wird nicht funktionieren, wenn es Hinzugefügt wird, um ein Excel-Add-In erstellt mit Visual Studio.
Jemand da draußen, bitte helft mir dieses Problem zu beheben.

  • Bitte siehe msdn.microsoft.com/en-us/library/bb608614.aspx
  • vielen Dank für Ihre Antwort, aber das ist nur die Grundlagen. Der code hier funktioniert. Ich möchte nur wissen, wie zu handhaben die .Onkey-Ereignis.
  • Ah Ok 🙂 AFAIK und ich könnte hier falsch sein, Sie können nicht .Onkey mag das, weil das Add-In wird suchen die A1 in der aktuellen Arbeitsmappe, die ThisWorkbook. Lassen Sie mich Forschung, bevor ich kann dies bestätigen.
  • du hast Recht. Aber ich bin auf der Suche nach einem workaround für dieses. Wenn Sie etwas über diese, wäre das wirklich hilfreich.
  • In diesem Fall ist die einzige alternative, die ich mir vorstellen kann ist das anlegen eines extra-addin (xla/xlam), die hat alle Ihre drei subs drin und dann im installer von Ihren oben genannten add-in, 2. installieren Sie dieses Add-In. Habe es gerade getestet und es hat funktioniert.
  • Ich werde versuchen, und lassen Sie wissen.
  • Versuchen Sie, diese zu binden Tastenkombination Globals.ThisAddIn.- Anwendung.KeyBindings.Add(WdKeyCategory.wdKeyCategoryCommand, "A1", Globals.ThisAddIn.- Anwendung.BuildKeyCode(WdKey.wdKeyControl, WdKey.wdKeyShift, WdKey. wdKeyU));
  • Freund-Anwendung.Tastaturbelegung ist nicht identifiziert, die von visual studio.
  • Meine schlecht, das ist nicht verfügbar in Excel nur für Word.
  • I will try that and will let you know. – Ian Apr 18 at 13:56 ?
  • Nicht dagegen, mein Kopfgeld. War nur etwas testen.
  • wie haben Sie das gemacht? ein Kopfgeld auf eine bestehende bounty Frage geantwortet? Ich kann nicht setzen Sie ein Kopfgeld auf diesen einen, noch kann ich eine auf Ihre: img846.imageshack.us/img846/5648/cantaddbounty.png
  • Es sollte direkt unter den Kommentar-Abschnitt. Hier ist ein screenshot von mir von einer Ihr antwortete, dass gewonnen bounty: i47.tinypic.com/w7dhy1.png
  • Und für ein geeky Ansatz: Gehen Sie auf meine Frage und betrachten Sie die Quelle der Seite. Suchen Sie für eine variable namens 'canOpenBounty' und überprüfen Sie seinen Wert: "i47.tinypic.com/5ci169.png

Schreibe einen Kommentar