3

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

この質問は解決済みのためクローズされています。
Koizumi866 新しいコメントを投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。