AW: Mausrad
20.02.2022 09:27:36
volti
Hallo Kai,
unter Beachtung von Udo's umfangreichen, vielleicht schon ausreichende, Ausführungen und in Ergänzung zu Deiner Frage zum Mausrad:
Das Mausrad lässt sich m.E. nur über die API abschalten. Hier mal eine Möglichkeit, falls das mal irgendwo gebraucht werden sollte:
Code:
[Cc][+][-]
' ############ In ein Modul #############
Option Explicit
Private Declare PtrSafe Function SetWindowsHookExA Lib "user32" ( _
ByVal idHook As Long, ByVal lpfn As LongPtr, _
ByVal hmod As LongPtr, ByVal dwThreadId As Long) As LongPtr
Private Declare PtrSafe Function CallNextHookEx Lib "user32" ( _
ByVal hHook As LongPtr, ByVal nCode As Long, _
ByVal wParam As LongPtr, lParam As Any) As LongPtr
Private Declare PtrSafe Function UnhookWindowsHookEx Lib "user32" ( _
ByVal hHook As LongPtr) As Long
Dim hHook As LongPtr
Private Const WH_MOUSE_LL = 14
Private Const WM_MOUSEWHEEL = &H20A
Private Const WM_MBUTTONDOWN = &H207
Private Const WM_MBUTTONUP = &H208
Sub MausRadAn()
UnhookWindowsHookEx hHook: hHook = 0
End Sub
Sub MausRadAus()
' Baut den Mousehook auf
If hHook <> 0 Then Exit Sub
hHook = SetWindowsHookExA(WH_MOUSE_LL, AddressOf MouseProc, _
Application.HinstancePtr, 0)
End Sub
Private Function MouseProc(ByVal nCode As Long, ByVal wParam As LongPtr, _
lParam As LongPtr) As LongPtr
' Fängt Mausrad und MittelButton ab
If nCode = 0 Then ' HC_ACTION
Select Case wParam
Case WM_MOUSEWHEEL, WM_MBUTTONDOWN, WM_MBUTTONUP
MouseProc = 1: Exit Function
End Select
End If
MouseProc = CallNextHookEx(0, nCode, wParam, ByVal lParam)
End Function
'########### In das Tabellenmodul #############
Private Sub Worksheet_Activate()
Call MausRadAus
End Sub
Private Sub Worksheet_Deactivate()
Call MausRadAn
End Sub
_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz