ich bin dabei, mir für einige Programme die Tastenkürzel oder die Erreichbarkeit bestimmter Funktionen in einer Übersichtstabelle zu notieren. Im folgenden Script beispielsweise für Excel.
Was ich nun suche, ist die Möglichkeit, bei Auswahl einer Zeile (duch Doppelklick oder durch Enter) die dort notierten Tastenkürzel tatsächlich ausführen zu lassen. Ist also beispielsweise in einer Zeile notiert Alt-F, 0, dann soll bei Doppelklick (oder Enter) auf diese Zeile quasi folgendes "Script" (in dem Excel-Fenster) ablaufen:
Code: Select all
Send, !f
Sleep 100 ; soll für das "," gelten
Send, 0
Code: Select all
#NoEnv
#SingleInstance force
; ======================================================================================================================================
; Tastenkombinationen mit Erläuterungen als Liste aufzeigen '
; ===================================================================
!F1:: ; Alt-F1
Tasten=
(join`n
Tastenkürzel|Bedeutung
Shift-LEERTASTE |ganze Zeile(n) markieren
Strg-LEERTASTE |ganze Spalte(n) markieren
Alt-NUM- |Zeile(n) ausblenden
Strg-9 |Zeile(n) ausblenden
Alt-NUM+ |Zeile(n) einblenden
Shift-Strg-9 |Zeile(n) einblenden
Shift-Alt-NUM- |Spalte(n) ausblenden
Strg-8 |Spalte(n) ausblenden
Shift-Alt-NUM+ |Spalte(n) einblenden
Shift-Strg-8 |Spalte(n) einblenden
Alt-R, RZ |Zellinhalt horizontal zentrieren
Alt-R, D |Zellinhalt vertikal zentrieren
Alt-R, II |Zellinhalt linksbündig
Alt-R, RE |Zellinhalt rechtsbündig
Shift-Strg-F |Fettschrift
Strg-2 |Fettschrift
Shift-Strg-K |Kursivschrift
Strg-3 |Kursivschrift
Shift-Strg-U |unterstreichen
Strg-4 |unterstreichen
Strg-5 |durchstreichen
Alt-R, 6 |Einzug vergrößern
Alt-R, ß |Zellen verbinden ...
Alt-R, 5 |Einzug verkleinern
Alt-R, H1 |Füllfarbe
Alt-R, AC |Schriftfarbe
Alt-R, RR |Rahmenlinien ...
Alt-R, FO |Format übertragen
Shift-Strg-- |Rahmenlinien außen
Strg-Ü |Zellinhalt als 'Überschrift' formatieren
Shift-Strg-Ü |Zellinhalt als 'Überschrift' formatieren
Alt-R, OS |sortieren/filtern
Alt-V, U |sortieren (A-Z)
Alt-V, F |sortieren (Z-A)
Alt-V, Ü |Datenüberprüfung
F7 |Rechtschreibung
Strg-K |Link bearbeiten
Shift-Strg-L |Autofilter ein/aus
Alt-M |Microsoft-Suche
F3 |Dialog: Namen eingeben
Strg-F3 |Namensmanager
Shift-F3 |(Zelle mit Formel): Funktionsargumente
F4 |Zellbearbeitung: absolute/relative Bezüge
F5 |Dialog: Gehe zu
Alt-F8 |Dialog: Makro
Alt-R, 8 |Bedingte Formatierung
F9 |Formelabschnitt auswerten
F12 |Summe mark. Bereich in Zwischenablage
Strg-P |Seitenansicht (Backstage-Ansicht)
Strg-R |Zellen links vom mark. Bereich einfügen
Strg-U |Zellen oberhalb des mark. Bereichs einfügen
Strg-. |aktuelles Datum einfügen
Shift-Strg-. |aktuelle Uhrzeit einfügen
Strg-, |Inhalt der Zelle darüber einfügen
Strg-RÜCKTASTE |zur Ansicht der aktive Zelle
Alt-I, B |Bild einfügen ...
Alt-I, 2 |Form einfügen ...
Alt-I, KO |Kopfzeile(n) einfügen
Alt-S, X |Gitternetzlinien anzeigen
Alt-F, X |Gitternetzlinien anzeigen
Alt-4 |Seitenansicht (Vollbild)
Alt-S, K |Seite einrichten ...
Alt-S, 8 |Seitenränder ...
Alt-S, H |Druckbereich festlegen/aufheben
Alt-S, Ü |Seitenumbruch ...
Alt-D, OEE Alt-M |Seitenumbruch ein-/ausblenden
Alt-S, I |Drucktitel (Zeilen/Spalten) ...
Alt-P, S2 |Blatt schützen / Blattschutz aufheben
Alt-P, E |Arbeitsmappe schützen ...
Alt-F, P |Fenster fixieren / Fixierung aufheben
Alt-F, 0 |Zoom 100`%
Alt-W, K |Makro aufzeichnen
Alt-W, M |Excel-Addins
Alt-W, I |Steuerelement einfügen
Alt-W, N |Entwurfsmodus an/aus
)
TastaturZeilen := []
TastaturFelder := []
Index := 1
Loop, Parse, Tasten, `n, `r
{
If (A_Index > 1) && (A_LoopField <> "")
{
TastaturZeilen[Index] := A_LoopField
TastaturFelder[Index] := StrSplit(A_LoopField, "|")
Index++
}
}
Tasten := ""
GUIBreite := 425
Gui, EXCEL:New
Gui, EXCEL:Font, s9, Segoe UI
Gui, EXCEL:Add, Text,, Mit ESC Suchfeld löschen oder beenden
Gui, EXCEL:Add, Edit, w%GUIBreite% vSuchText gSuche
Gui, EXCEL:Add, ListView, Count20 BackgroundCCDDEE Grid r26 w%GUIBreite% vVMeineListe gMyListView, Tastenkürzel|Bedeutung
Gui, EXCEL:Add, Button, Default, OK
Gui, EXCEL: +AlwaysOnTop
Gui, EXCEL:Show, x1900 y200 Autosize, Tastenkürzel
Gosub, LV_Laden
GuiControl, -Redraw, VMeineListe
Loop, % LV_GetCount("Column")
LV_ModifyCol(A_Index, "AutoHdr")
GuiControl, +Redraw, VMeineListe
Return
; ------------------------------------------------------------------------------------------------------------------
Suche:
GuiControlGet, SuchText
GoSub, LV_Laden
Return
; ------------------------------------------------------------------------------------------------------------------
LV_Laden:
GuiControl, -Redraw, VMeineListe
LV_Delete()
For i, v In TastaturFelder
{
If (Suchtext = "") || InStr(TastaturZeilen[i], SuchText)
LV_Add("", v*)
}
GuiControl, +Redraw, VMeineListe
Return
; ------------------------------------------------------------------------------------------------------------------
ExcelButtonOK:
GuiControlGet, FocusedControl, Focus
if FocusedControl <> SysListView321
Return
Zeile := LV_GetNext(0, "Focused")
LV_GetText(RowText, Zeile) ; Text aus erster Spalte
RowText := Trim(RowText)
MsgBox % "Zeilennr.: " . Zeile . "`nText: " . RowText
Return
; ------------------------------------------------------------------------------------------------------------------
MyListView:
If A_GuiEvent = DoubleClick
{
LV_GetText(RowText, A_EventInfo) ; Get the text from the row's first field.
RowText := Trim(RowText)
MsgBox % "Zeilennr.: " . A_EventInfo . "`nText: " . RowText
}
Return
; ------------------------------------------------------------------------------------------------------------------
EXCELGuiEscape:
If (Suchtext <> "") ; wenn im Suchfeld etwas steht ...
{
GuiControl,, SuchText ; ... Suchfeld löschen
Return ; und zurück
} ; wenn im Suchfeld nichts steht ...
EXCELGuiClose:
Gui,EXCEL: Destroy
Return