gpt4 book ai didi

excel - 放置 application.onkey 的事件

转载 作者:行者123 更新时间:2023-12-04 21:51:25 24 4
gpt4 key购买 nike

我想禁用 Ctrl 按钮的快捷方式,我发现 Application.onkeyMethod但我不知道我可以把它们放在哪里。
Application.onkey "^p",""在工作簿打开事件中有效,但复制快捷方式、剪切等不会发生这种情况。

最佳答案

试试这个 - 你可以把它放在 ThisWorkbook目的。

把整个东西贴进去就行了。

这将通过(几乎)每个键并阻止键与控制的组合。

这不会让您打开帮助菜单( CTRL + F1 ),不会让您选择所有单元格( CTRL + A ) - 它不会让您(大多数)使用控制键做任何事情。

值得注意的是这个不会阻止 CTRL+SHIFT+DOWN 之类的内容- 只有 CTRL+A 这样的东西.

但是,如果您愿意,添加该功能相对简单——您只需为 "^+" 添加额外的 BlockKey 请求。和 "^%""^+%" - 类似的东西。

编辑:写完之后,我在这里找到了其他人的类似代码 https://www.rondebruin.nl/win/s4/win012.htm

Private Sub Workbook_Open()
'Call DisableControlKey '<- Use this in production
Call DisableControlKey(True) 'True means show in debug window what was blocked -
End Sub

Sub DisableControlKey(Optional ShowInDebug As Boolean = False)
Dim Arr(), x
Arr = Array("{BS}", "{BREAK}", "{CAPSLOCK}", "{CLEAR}", "{DEL}", "{DOWN}", "{END}", _
"{ENTER}", "~", "{ESC}", "{HELP}", "{HOME}", "{INSERT}", "{LEFT}", "{NUMLOCK}", _
"{PGDN}", "{PGUP}", "{RETURN}", "{RIGHT}", "{SCROLLLOCK}", "{TAB}", "{UP}")
'Block all ascii characters from 0 to 127
For x = 0 To 127
If ShowInDebug Then
Debug.Print Chr(x) & ": " & BlockKey("^" & Chr(x))
Else
BlockKey ("^" & Chr(x))
End If
Next x
'Block all keys on this list: https://docs.microsoft.com/en-us/office/vba/api/excel.application.onkey
For x = LBound(Arr) To UBound(Arr)
If ShowInDebug Then
Debug.Print Arr(x) & ": " & BlockKey("^" & Arr(x))
Else
BlockKey ("^" & Chr(x))
End If
Next x
'Block all function keys
For x = 1 To 15
If ShowInDebug Then
Debug.Print "F" & x & ": " & BlockKey("^" & "{F" & x & "}")
Else
BlockKey ("^" & "{F" & x & "}")
End If
Next x
End Sub
Function BlockKey(KeyCombo As String) As Boolean
On Error Resume Next
Application.OnKey KeyCombo, ""
BlockKey = (Err.Number = 0)
On Error GoTo 0
End Function

您可以在即时窗口中看到被阻止的内容:

Output

从理论上讲,您真的很想通过这些组合并清理您不需要的任何东西以提高速度 - 摆脱 for 循环,只需循环通过一大堆 CTRL+要阻止的组合键。

如果您想完全发疯,您实际上可以安装一个低级键 Hook (这很荒谬)并阻止 CTRL 来自外部应用程序。 ( 提示:不要这样做。)

https://www.codeguru.com/vb/gen/vb_system/keyboard/article.php/c4829/Managing-LowLevel-Keyboard-Hooks-with-the-Windows-API.htm

关于excel - 放置 application.onkey 的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53529471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com