Notifications
Clear all

Habilitar e desabilitar teclado  

  RSS

Fernando Fernandes
(@fernandofernandes)
Illustrious Member
Entrou: 12 anos atrás
Posts: 44273
03/08/2009 10:50 am  

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.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel


ResponderCitar (Quote)
Compartilhar: