Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Windows und + Taste als vba code

Forumthread: Windows und + Taste als vba code

Windows und + Taste als vba code
08.08.2019 15:48:05
Sören
Hallo Leute,
gibt es die Möglichkeit die Windows und + taste als vba Code zu verpacken? Wenn man auf einen Button klickt soll dieser Befehl ausgeführt werden, ohne das man selber die beiden button drücken muss.
Gruß sören
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Windows und + Taste als vba code
08.08.2019 15:51:36
Torsten
Hallo,
normalerweise mit der SendKeys Methode. Aber da gibt es die Windows Taste nicht als code.
Muss man sicher mit API loesen.
Gruss Torsten
AW: Windows und + Taste als vba code
08.08.2019 15:58:06
Sören
Hallo Torsten,
weist du vielleicht wie das mit dem API funktionieren würde?
Gruß Sören
AW: Windows und + Taste als vba code
08.08.2019 15:58:27
Dieter(Drummer)
Hallo Sören,
evtl. eine Möglichkeit aus dem Netz, habs aber nicht getestet:
https://www.vb-paradise.de/index.php/Thread/57683-Windows-und-Plus-Taste-simulieren/
Gruß, Dieter(Drummer)
Anzeige
AW: Windows und + Taste als vba code
08.08.2019 18:41:50
Sören
Hallo Onur,
danke für deine Datei.:) Hatte den Code bis auf Kleinigkeiten genau so und es hat bei mir nicht funktioniert. Also zum Beispiel mit dem KEYEVENTF_KEYUP. Das hast du ja nicht drin. Oder das du die Zahlen für die befehle genommen hast. Hätte ich auch niemals gefunden.
Jetzt habe ich aber noch zwei kleine fragen. Ich habe versucht, wenn ich den Botton ein zweites mal klicke, das die Zommansicht wieder verschwindet. Leider wird der Text des Button immer größer und die Lupe zoomt immer weiter rein. Aber das will ich ja eig garnicht. Das kann man dann solange machen, bis er irgendwann nicht mehr funktioniert. Dann hat man einen großen Botton und da drin ist ein sehr kleiner Botton. Kann man das irgendwie ändern?
Gruß Sören
Anzeige
AW: Windows und + Taste als vba code
09.08.2019 12:30:52
volti
Hallo Sören,
falls noch Bedarf besteht, hier auch noch mal ein Ansatz zum Ein- und Ausschalten der Bildschirmlupe über Win+/Win-:
Declare PtrSafe Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, ByVal lParam As LongPtr) As Long
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr
Declare PtrSafe Function ShowWindow Lib "user32" (ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Long
Declare PtrSafe Function Sleep Lib "kernel32" (ByVal dwmilliseconds As Long) As Long
Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060&
Const SC_MINIMIZE = &HF020&
Const SC_RESTORE = &HF120&
Const KEYPlus = &H6B
Const KEYMinus = &H6D
Const KEYUP = &H2
Const KEYWIN = &H5B
 
Sub ButtonClick()
 Dim iZoom As Integer, hwnd As LongPtr, i As Integer
 Select Case FindWindow("MagUIClass", "Bildschirmlupe")
 Case 0
   keybd_event KEYWIN, 0, 0, 0
   keybd_event KEYPlus, 0, 0, 0
   keybd_event KEYWIN, 0, KEYUP, 0
   keybd_event KEYPlus, 0, KEYUP, 0
   Do
    Sleep 50
    hwnd = FindWindow("MagUIClass", "Bildschirmlupe")
    If hwnd <> 0 Then SendMessage hwnd, WM_SYSCOMMAND, SC_MINIMIZE, 0: Exit Do
    i = i + 1: If i > 20 Then Exit Sub
   Loop
 Case Else
   SendMessage FindWindow("MagUIClass", "Bildschirmlupe"), WM_SYSCOMMAND, SC_CLOSE, 0
 End Select
End Sub

Habe auch die Bildschirmlupe unsichtbar geschaltet, damit sie nicht stört. Aber das kannst Du ja auch wieder abschalten.
Vielleicht kannst Du ja damit etwas anfangen.
PS: Im Übrigen heißt das zugehörige Programm "Magnify.exe" im "Windows\System2"-Ordner und könnte auch per Shell oder sonst wie gestartet werden.
viele Grüße
Karl-Heinz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

VBA zur Steuerung der Windows Lupe mit der + Taste


Schritt-für-Schritt-Anleitung

Um die Windows Lupe über einen Button in Excel zu steuern, benötigst du ein VBA-Skript. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deinDateiname)", wähle "Einfügen" und dann "Modul".
  3. Kopiere den folgenden Code in das Modul:
Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As LongPtr

Declare PtrSafe Function SendMessage Lib "user32" ( _
    ByVal hwnd As LongPtr, _
    ByVal wMsg As Long, _
    ByVal wParam As LongPtr, _
    ByVal lParam As LongPtr) As LongPtr

Declare PtrSafe Function keybd_event Lib "user32" ( _
    ByVal bVk As Byte, _
    ByVal bScan As Byte, _
    ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long) As Long

Const KEYWIN = &H5B
Const KEYPlus = &H6B
Const KEYUP = &H2
Const WM_SYSCOMMAND = &H112
Const SC_CLOSE = &HF060
Const SC_MINIMIZE = &HF020

Sub ButtonClick()
    Dim hwnd As LongPtr
    hwnd = FindWindow("MagUIClass", "Bildschirmlupe")

    If hwnd = 0 Then
        ' Lupe aktivieren
        keybd_event KEYWIN, 0, 0, 0
        keybd_event KEYPlus, 0, 0, 0
        keybd_event KEYWIN, 0, KEYUP, 0
        keybd_event KEYPlus, 0, KEYUP, 0
    Else
        ' Lupe schließen
        SendMessage hwnd, WM_SYSCOMMAND, SC_CLOSE, 0
    End If
End Sub
  1. Erstelle einen Button in deinem Excel-Arbeitsblatt und verlinke ihn mit der ButtonClick Subroutine.

Nun kannst du die Windows Lupe mit einem Klick auf den Button ein- und ausschalten!


Häufige Fehler und Lösungen

  • Fehler: Die Lupe öffnet sich nicht

    • Stelle sicher, dass die Lupe in den Windows-Einstellungen aktiviert ist und das Skript korrekt eingefügt wurde.
  • Problem: Die Lupe bleibt geöffnet

    • Überprüfe den Code auf Schreibfehler und stelle sicher, dass die Fensterklasse "MagUIClass" korrekt ist.

Alternative Methoden

Eine weitere Möglichkeit, die Windows Lupe zu steuern, besteht darin, die SendKeys-Methode zu verwenden. Allerdings wird die Windows-Taste derzeit nicht direkt unterstützt. Alternativ kannst du auch API-Funktionen verwenden, um die Lupe zu steuern, wie im obigen Beispiel gezeigt.


Praktische Beispiele

Hier ein Beispiel für die Verwendung der Excel Lupenfunktion:

  • Wenn du den Button klickst, wird die Lupe aktiviert. Ein erneuter Klick schließt die Lupe. Dieses Verhalten kannst du anpassen, indem du den Code erweiterst, um den Zoomfaktor zu kontrollieren.

Tipps für Profis

  • Nutze die Sleep-Funktion, um Verzögerungen zwischen den Befehlen einzufügen, was hilfreich sein kann, um sicherzustellen, dass die Lupe korrekt reagiert.
  • Experimentiere mit verschiedenen API-Funktionen zur Steuerung anderer Windows-Funktionen, um deine VBA-Scripts zu erweitern.

FAQ: Häufige Fragen

1. Frage
Wie aktiviere ich die Lupe in Windows, falls sie nicht reagiert?
Antwort: Stelle sicher, dass die Lupe in den Windows-Einstellungen unter "Erleichterte Bedienung" aktiviert ist.

2. Frage
Kann ich die Lupe auch mit Tastenkombinationen steuern?
Antwort: Ja, du kannst die Lupe auch über die Windows-Tastenkombinationen Win + + und Win + - aktivieren oder deaktivieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige