VBAでScrollLockのオンオフを判別したい
VBAで、セルを選択した際に、セルの値が自動的に変わるという内容ををSelectionChangeイベントで記述していますが、
矢印キー等でセルを移動した際に意図しない変更が行われてしまうのを防ぐため、そのブックがアクティブになったときだけ、ScrollLockがオンになるように、ScrollLockのオンオフ状態を判定して、SendkeysステートメントでScrollLockキーを打つというコードにしたいのですが、VBAでScrollLockのオンオフ状態を判定する方法が色々調べてみたのですがわかりません。例えば.NET FramwaorkのControlクラスのIsKeyLockedメソッドをVBAで使うことを試しましたがエラーになりました)。ブックがアクティブになったときだけ、確実にScrollLockがオンにする方法をご存じでしたらご教示願います。
Private Sub Workbook_Activate()
Application.MoveAfterReturn = False
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
’この部分に、ScrollLockのオンオフ状態を判定する記述を入れたい
WshShell.SendKeys "{SCROLLLOCK}"
Set WshShell = Nothing
End Sub
Private Sub Workbook_Deactivate()
Application.MoveAfterReturn = True
Application.MoveAfterReturnDirection = xlToRight
Dim WshShell
Set WshShell = CreateObject("WScript.Shell")
’この部分に、ScrollLockのオンオフ状態を判定する記述を入れたい
WshShell.SendKeys "{SCROLLLOCK}"
Set WshShell = Nothing
End Sub