Hallo,
leider hast Du hier nicht mitgeteilt, welches Scrolling Du meinst und wofür Du die Abfrage verwenden willst.
Das Abfragen von Events auf den Scrolleisten ist nur über die API mittels Hooking möglich, wie auch schon im Artikel von Ralf-b beschrieben.
Ist etwas aufwändig, lass ich daher mal außen vor.
Wenn Du aber die Bewegung des Zellbereiches meinst, und die scrollt ja auch bei Mausradbewegung, Scrollleistenbewegung und Benutzung der Cursortasten könntest Du Dir rmal folgenden Ansatz ansehen, der mittels Timer periodisch die oberste linke Zelle abfragt.
Vielleicht hilf es Dir ja.
Code:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 |
|
' Ins normale Modul
Option Explicit
Private Declare PtrSafe Function SetTimer Lib "user32" ( _
ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr, _
ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As LongPtr
Private Declare PtrSafe Function KillTimer Lib "user32" ( _
ByVal hwnd As LongPtr, ByVal nIDEvent As LongPtr) As Long
Private hTimer As LongPtr, sLetzteZelle As String
Sub ScrollTimerTest_An()
sLetzteZelle = Split(ActiveWindow.VisibleRange.Address(0, 0), ":")(0)
If hTimer = 0 Then hTimer = SetTimer(0&, 0&, 50, AddressOf ScrollTimer_Callback)
End Sub
Sub ScrollTimerTest_Aus()
If hTimer > 0 Then KillTimer 0&, hTimer: hTimer = 0
End Sub
Sub ScrollTimer_Callback()
Dim sLZ As String, sMsg As String
DoEvents
On Error Resume Next
sLZ = Split(ActiveWindow.VisibleRange.Address(0, 0), ":")(0)
If sLZ <> sLetzteZelle Then
If Range(sLZ).Row < Range(sLetzteZelle).Row Then sMsg = "oben" Else sMsg = "unten"
If Range(sLZ).Column < Range(sLetzteZelle).Column Then sMsg = "links"
If Range(sLZ).Column > Range(sLetzteZelle).Column Then sMsg = "rechts"
Application.StatusBar = "Nach " & sMsg & " gescollt"
sLetzteZelle = sLZ
End If
End Sub
' Ins Tabellenblatt
Private Sub Worksheet_Activate()
Call ScrollTimerTest_An
End Sub
Private Sub Worksheet_Deactivate()
Call ScrollTimerTest_Aus
End Sub
|
_________
viele Grüße
Karl-Heinz
|