von lupolupp1 » Do, 28.06.2007 15:32
Hallo, ich bin OO-Neuling, kenne mich aber relativ gut in Visual Basic (Excel 2003) aus.
Ich möchte nun ein Excel-Programm von VB nach OO übertragen.
Dabei bin ich auf das Problem gestoßen, dass ich beim Drücken der POS1-Taste, der Kombinationen Strg+DOWN etc. Entf./Einfg andere Aktionen durchführen möchte, als von Calc vorgesehen.
Beispielsweise soll der Fokus beim Drücken von POS1 nicht zur Zelle (0,0) sondern zu einer anderen, beispielsweise (2,2) springen.
Außerdem möchte ich eine eigene Kopieren/Einfügen-Routine schreiben und dazu muss die übliche Funktion abgefangen und durch die Aktionen meines Makros ersetzt werden.
Ich habe bereits einen SelectionChangeListener ans Laufen bekommen, weiß nun jedoch nicht, wie ich aus diesem heraus den Tastendruck abfangen, geschweige denn die letzte gedrückte Taste ermitteln könnte.Zu diesem Thema habe ich nur sehr wenig in den Foren gefunden. Unter anderem habe ich auch von einem KeyListener und einem KeyHandler gelesen. Diese Möglichkeit habe ich auch schon getestet.
Ich habe den dazu veröffentlichten Code bei Tabelle1 einer Arbeitsmappe eingetragen, da ich auch genauso beim SelectionChangeListener vorgegangen bin. Aber im Gegensatz zum ChangeListener hat sich hierbei nix getan. Ich habe zur Kontrolle, ob die Sub angesprochen wird, eine Msgbox eigefügt. Es tut sich jedoch nichts. Die Sub (weder KeyHandler noch KeyListener) wird bei einem Tastendruck nicht angesprochen. Ich weiß, dass der Listener zunächst erst initialisiert werden muss. Habe dazu auch die Initialisierungs-Sub mit dem Ereignis "Dokument öffnen" verknüpft.
Muss ich bestimmte Programmteile woanders speichern (in "meine Makros" oder "Standard"). Oder funktioniert ein KeyHandler / Listener nur in Writer?
Welche Möglichkeiten habe ich in Calc, um den Tastendruck auszuwerten. Wenn ihr mir (hoffentlich) Code-Vorschläge macht, könntet ihr dann bitte auch dazu schreiben, an welcher Stelle (Tabelle1, meine Makros etc.) ich den Code eintragen und ob ich noch bestimmte Ereignisse (Dokument öffnen etc.) damit verknüpfen muss?
Dann habe ich noch ein weiteres Problem: ich habe herausgefunden, wie ich den Fokus auf eine bestimmte Zelle lenken kann. Wenn ich den Befehl ausführe, wird die gewünschte Zelle auch angesprochen, sie ist dann allerdings schwarz hinterlegt (selektiert). Wie kriege ich es nun hin, dass der Fokus auf eine gewünschte Zelle gesetzt wird, diese jedoch nur mit dem Fokus umrandet, nicht aber schwarz unterlegt ist?
Ich suche nun schon seit Tagen in vielen Foren nach Lösungen und bin bisher leider nicht viel weiter gekommen.
Viele Grüße und vielen Dank für eure Hilfe im Voraus!
Lupo
Hallo, ich bin OO-Neuling, kenne mich aber relativ gut in Visual Basic (Excel 2003) aus.
Ich möchte nun ein Excel-Programm von VB nach OO übertragen.
Dabei bin ich auf das Problem gestoßen, dass ich beim Drücken der POS1-Taste, der Kombinationen Strg+DOWN etc. Entf./Einfg andere Aktionen durchführen möchte, als von Calc vorgesehen.
Beispielsweise soll der Fokus beim Drücken von POS1 nicht zur Zelle (0,0) sondern zu einer anderen, beispielsweise (2,2) springen.
Außerdem möchte ich eine eigene Kopieren/Einfügen-Routine schreiben und dazu muss die übliche Funktion abgefangen und durch die Aktionen meines Makros ersetzt werden.
Ich habe bereits einen SelectionChangeListener ans Laufen bekommen, weiß nun jedoch nicht, wie ich aus diesem heraus den Tastendruck abfangen, geschweige denn die letzte gedrückte Taste ermitteln könnte.Zu diesem Thema habe ich nur sehr wenig in den Foren gefunden. Unter anderem habe ich auch von einem KeyListener und einem KeyHandler gelesen. Diese Möglichkeit habe ich auch schon getestet.
Ich habe den dazu veröffentlichten Code bei Tabelle1 einer Arbeitsmappe eingetragen, da ich auch genauso beim SelectionChangeListener vorgegangen bin. Aber im Gegensatz zum ChangeListener hat sich hierbei nix getan. Ich habe zur Kontrolle, ob die Sub angesprochen wird, eine Msgbox eigefügt. Es tut sich jedoch nichts. Die Sub (weder KeyHandler noch KeyListener) wird bei einem Tastendruck nicht angesprochen. Ich weiß, dass der Listener zunächst erst initialisiert werden muss. Habe dazu auch die Initialisierungs-Sub mit dem Ereignis "Dokument öffnen" verknüpft.
Muss ich bestimmte Programmteile woanders speichern (in "meine Makros" oder "Standard"). Oder funktioniert ein KeyHandler / Listener nur in Writer?
Welche Möglichkeiten habe ich in Calc, um den Tastendruck auszuwerten. Wenn ihr mir (hoffentlich) Code-Vorschläge macht, könntet ihr dann bitte auch dazu schreiben, an welcher Stelle (Tabelle1, meine Makros etc.) ich den Code eintragen und ob ich noch bestimmte Ereignisse (Dokument öffnen etc.) damit verknüpfen muss?
Dann habe ich noch ein weiteres Problem: ich habe herausgefunden, wie ich den Fokus auf eine bestimmte Zelle lenken kann. Wenn ich den Befehl ausführe, wird die gewünschte Zelle auch angesprochen, sie ist dann allerdings schwarz hinterlegt (selektiert). Wie kriege ich es nun hin, dass der Fokus auf eine gewünschte Zelle gesetzt wird, diese jedoch nur mit dem Fokus umrandet, nicht aber schwarz unterlegt ist?
Ich suche nun schon seit Tagen in vielen Foren nach Lösungen und bin bisher leider nicht viel weiter gekommen.
Viele Grüße und vielen Dank für eure Hilfe im Voraus!
Lupo