Notifications
Clear all

Habilitar e desabilitar teclado

1 Posts
1 Usuários
0 Reactions
1,288 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Neste exemplo será mostrado como desabilitar todo o teclado do Excel, utilizano o método onkey que vai acionar uma macro vazia desabilitando as keys

segue código:

Option Explicit
Private Sub EnableKeyEnter(ByVal IsSetEnable As Boolean)
Dim iX As Long
Dim iY As Long
Dim iZ As Long
Dim KeyCode(1 To 19) As Variant
KeyCode(1) = Array _
("{UP}", "+{UP}", "^{UP}", "%{UP}", "+^{UP}", "+%{UP}", _
"{BS}", "+{BS}", "^{BS}", "%{BS}", "+^{BS}", "+%{BS}", _
"{TAB}", "+{TAB}", "^{TAB}", "%{TAB}", "+^{TAB}", "+%{TAB}", _
"{DEL}", "+{DEL}", "^{DEL}", "%{DEL}", "+^{DEL}", "+%{DEL}")

KeyCode(2) = Array _
("+{ESC}", "^{ESC}", "%{ESC}", "+^{ESC}", "+%{ESC}", _
"{END}", "+{END}", "^{END}", "%{END}", "+^{END}", "+%{END}", _
"{96}", "{97}", "{98}", "{99}", "{100}", "{101}", "{102}", "{103}", "{104}", "{105}", "{106}", "{107}", _
"{109}", "{110}", "{111}", "{19}")

KeyCode(3) = Array _
("{HOME}", "+{HOME}", "^{HOME}", "%{HOME}", "+^{HOME}", "+%{HOME}", _
"{PGDN}", "+{PGDN}", "^{PGDN}", "%{PGDN}", "+^{PGDN}", "+%{PGDN}", _
"{PGUP}", "+{PGUP}", "^{PGUP}", "%{PGUP}", "+^{PGUP}", "+%{PGUP}", _
"{DOWN}", "+{DOWN}", "^{DOWN}", "%{DOWN}", "+^{DOWN}", "+%{DOWN}")

KeyCode(4) = Array _
("{LEFT}", "+{LEFT}", "^{LEFT}", "%{LEFT}", "+^{LEFT}", "+%{LEFT}", _
"{RIGHT}", "+{RIGHT}", "^{RIGHT}", "%{RIGHT}", "+^{RIGHT}", "+%{RIGHT}", _
"{ENTER}", "+{ENTER}", "^{ENTER}", "%{ENTER}", "+^{ENTER}", "+%{ENTER}", "~", "+~", "^~", "%~", "+^~", "+%~", _
"{INSERT}", "+{INSERT}", "^{INSERT}", "%{INSERT}", "+^{INSERT}", "+%{INSERT}")
KeyCode(5) = Array _
("{F1}", "+{F1}", "^{F1}", "%{F1}", "+^{F1}", "+%{F1}", "{F2}", "+{F2}", "^{F2}", "%{F2}", "+^{F2}", "+%{F2}", _
"{F3}", "+{F3}", "^{F3}", "%{F3}", "+^{F3}", "+%{F3}", "{F4}", "+{F4}", "^{F4}", "%{F4}", "+^{F4}", "+%{F4}")

KeyCode(6) = Array _
("{F5}", "+{F5}", "^{F5}", "%{F5}", "+^{F5}", "+%{F5}", "{F6}", "+{F6}", "^{F6}", "%{F6}", "+^{F6}", "+%{F6}", _
"{F7}", "+{F7}", "^{F7}", "%{F7}", "+^{F7}", "+%{F7}", "{F8}", "+{F8}", "^{F8}", "%{F8}", "+^{F8}", "+%{F8}")

KeyCode(7) = Array _
("{F9}", "+{F9}", "^{F9}", "%{F9}", "+^{F9}", "+%{F9}", _
"{F10}", "+{F10}", "^{F10}", "%{F10}", "+^{F10}", "+%{F10}", _
"{F11}", "+{F11}", "^{F11}", "%{F11}", "+^{F11}", "+%{F11}", _
"{F12}", "+{F12}", "^{F12}", "%{F12}", "+^{F12}", "+%{F12}")

KeyCode(8) = Array _
("a", "+a", "^a", "%a", "+^a", "+%a", "b", "+b", "^b", "%b", "+^b", "+%b", _
"c", "+c", "^c", "%c", "+^c", "+%c", "d", "+d", "^d", "%d", "+^d", "+%d")

KeyCode(9) = Array _
("e", "+e", "^e", "%e", "+^e", "+%e", "f", "+f", "^f", "%f", "+^f", "+%f", _
"g", "+g", "^g", "%g", "+^g", "+%g", "h", "+h", "^h", "%h", "+^h", "+%h")

KeyCode(10) = Array _
("i", "+i", "^i", "%i", "+^i", "+%i", "j", "+j", "^j", "%j", "+^j", "+%j", _
"k", "+k", "^k", "%k", "+^k", "+%k", "l", "+l", "^l", "%l", "+^l", "+%l")

KeyCode(11) = Array _
("m", "+m", "^m", "%m", "+^m", "+%m", "n", "+n", "^n", "%n", "+^n", "+%n", _
"o", "+o", "^o", "%o", "+^o", "+%o", "p", "+p", "^p", "%p", "+^p", "+%p")

KeyCode(12) = Array _
("q", "+q", "^q", "%q", "+^q", "+%q", "r", "+r", "^r", "%r", "+^r", "+%r", _
"s", "+s", "^s", "%s", "+^s", "+%s", "t", "+t", "^t", "%t", "+^t", "+%t")
KeyCode(13) = Array _
("u", "+u", "^u", "%u", "+^u", "+%u", "v", "+v", "^v", "%v", "+^v", "+%v", _
"w", "+w", "^w", "%w", "+^w", "+%w", "x", "+x", "^x", "%x", "+^x", "+%x")

KeyCode(14) = Array _
("y", "+y", "^y", "%y", "+^y", "+%y", "z", "+z", "^z", "%z", "+^z", "+%z", _
"0", "+0", "^0", "%0", "+^0", "+%0", "1", "+1", "^1", "%1", "+^1", "+%1")

KeyCode(15) = Array _
("2", "+2", "^2", "%2", "+^2", "+%2", "3", "+3", "^3", "%3", "+^3", "+%3", _
"4", "+4", "^4", "%4", "+^4", "+%4", "5", "+5", "^5", "%5", "+^5", "+%5")

KeyCode(16) = Array _
("6", "+6", "^6", "%6", "+^6", "+%6", "7", "+7", "^7", "%7", "+^7", "+%7", _
"8", "+8", "^8", "%8", "+^8", "+%8", "9", "+9", "^9", "%9", "+^9", "+%9")

KeyCode(17) = Array _
(" ", "+ ", "^ ", "% ", "+^ ", "+% ", "-", "+-", "^-", "%-", "+^-", "+%-", _
"", "+", "^", "%", "+^", "+%", "@", "+@", "^@", "%@", "+^@", "+%@")

KeyCode(18) = Array _
(";", "+;", "^;", "%;", "+^;", "+%;", ":", "+:", "^:", "%:", "+^:", "+%:", _
"{^}", "+{^}", "^{^}", "%{^}", "+^{^}", "+%{^}", "{[}", "+{[}", "^{[}", _
"%{[}", "+^{[}", "+%{[}")

KeyCode(19) = Array _
("{]}", "+{]}", "^{]}", "%{]}", "+^{]}", "+%{]}", "{,}", "+{,}", "^{,}", _
"%{,}", "+^{,}", "+%{,}", "{.}", "+{.}", "^{.}", "%{.}", "+^{.}", "+%{.}", _
"{/}", "+{/}", "^{/}", "%{/}", "+^{/}", "+%{/}", "{_}", "^{_}", "%{_}")
With Application
If IsSetEnable Then
For iX = 1 To 19
iZ = UBound(KeyCode(iX))
For iY = LBound(KeyCode(iX)) To iZ
.OnKey KeyCode(iX)(iY)
Next
Next
Else
For iX = 1 To 19
iZ = UBound(KeyCode(iX))
For iY = LBound(KeyCode(iX)) To iZ
.OnKey KeyCode(iX)(iY), "DisableKeyEnter"
Next
Next
End If
End With
End Sub

Sub DisableKeyEnter()
'Sub vazia que vai ser executada pelo metodo onkey mas não fará nada...
End Sub

'Habilitando teclado
Sub keyOn()
EnableKeyEnter True
End Sub

'Desabilitando teclado
Sub KeyOff()
EnableKeyEnter False
End Sub

By Mitsueda.

 
Postado : 03/08/2009 10:50 am