Rodar macro ao pressionar tecla no teclado
Diferente da maioria do conteúdo presente no Função Excel (até agora), este é um post mais avançado, para aqueles que já tem um conhecimento em programação VBA e estão em busca de executar certa macro quando alguma tecla ou botão do mouse é pressionado.
Se você está em busca de macros que são executadas automaticamente após dado evento, veja o artigo deste link aqui.
Como utilizar o código para rodar uma macro ao pressionar uma tecla
Todos os códigos mostrados aqui devem ser utilizados em uma evento KeyDown ou KeyUp de algum objeto presente dentro de um Formulário (UserForm).
Exemplo Geral de como rodar uma macro ao pressionar uma tecla
O exemplo geral que utilizarei será um caixa de texto dentro de um Formulário. O nome desta caixa de texto é TextBox1.
Todos os códigos exibidos aqui terão a estrutura básica idêntica aos exemplos abaixo, apenas alterando as KeyCodes de acordo com o desejado.
Os exemplos abaixo tem exatamente o mesmo comportamento/função, porém no primeiro utilizamos o KeyCode e no segundo o Valor do KeyCode.
Exemplo genérico utilizando o KeyCode
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = vbKeyReturn Then MsgBox "Função Excel" End Sub
Exemplo genérico utilizando o Valor do KeyCode
Private Sub TextBox1_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = 13 Then MsgBox "Função Excel" End Sub
Ambos os código de exemplo acima, exibem uma caixa de mensagem escrito “Função Excel” quando a tecla ENTER é pressionada no TextBox1.
Este foi apenas um exemplo geral, você pode utilizar os eventos de pressionar tecla de outras formas, seguindo esta mesma linha de raciocínio.
KeyCodes de teclas especiais para Excel
KeyCode | Valor | Tecla Correspondente |
vbKeyLButton | 1 | BOTÃO ESQUERDO DO MOUSE |
vbKeyRButton | 2 | BOTÃO DIREITO DO MOUSE |
vbKeyCancel | 3 | Tecla CANCEL |
vbKeyMButton | 4 | BOTÃO DO MEIO DO MOUSE |
vbKeyBack | 8 | Tecla BACKSPACE |
vbKeyTab | 9 | Tecla TAB |
vbKeyClear | 12 | Tecla CLEAR |
vbKeyReturn | 13 | Tecla ENTER |
vbKeyShift | 16 | Tecla SHIFT |
vbKeyControl | 17 | Tecla CTRL |
vbKeyMenu | 18 | Tecla MENU |
vbKeyPause | 19 | Tecla PAUSE |
vbKeyCapital | 20 | Tecla CAPS LOCK |
vbKeyEscape | 27 | Tecla ESC |
vbKeySpace | 32 | Tecla SPACEBAR |
vbKeyPageUp | 33 | Tecla PAGE UP |
vbKeyPageDown | 34 | Tecla PAGE DOWN |
vbKeyEnd | 35 | Tecla END |
vbKeyHome | 36 | Tecla HOME |
vbKeyLeft | 37 | Tecla SETA PRA ESQUERDA |
vbKeyUp | 38 | Tecla SETA PRA CIMA |
vbKeyRight | 39 | Tecla SETA PRA DIREITA |
vbKeyDown | 40 | Tecla SETA PRA BAIXO |
vbKeySelect | 41 | Tecla SELECT |
vbKeyPrint | 42 | Tecla PRINT SCREEN |
vbKeyExecute | 43 | Tecla EXECUTE |
vbKeySnapshot | 44 | Tecla SNAPSHOT |
vbKeyInsert | 45 | Tecla INS |
vbKeyDelete | 46 | Tecla DEL |
vbKeyHelp | 47 | Tecla HELP |
vbKeyNumlock | 144 | Tecla NUM LOCK |
KeyCodes de teclas do alfabeto para Excel
KeyCode | Valor | Tecla Correspondente |
vbKeyA | 65 | A |
vbKeyB | 66 | B |
vbKeyC | 67 | C |
vbKeyD | 68 | D |
vbKeyE | 69 | E |
vbKeyF | 70 | F |
vbKeyG | 71 | G |
vbKeyH | 72 | H |
vbKeyI | 73 | I |
vbKeyJ | 74 | J |
vbKeyK | 75 | K |
vbKeyL | 76 | L |
vbKeyM | 77 | M |
vbKeyN | 78 | N |
vbKeyO | 79 | O |
vbKeyP | 80 | P |
vbKeyQ | 81 | Q |
vbKeyR | 82 | R |
vbKeyS | 83 | S |
vbKeyT | 84 | T |
vbKeyU | 85 | U |
vbKeyV | 86 | V |
vbKeyW | 87 | W |
vbKeyX | 88 | X |
vbKeyY | 89 | Y |
vbKeYz | 90 | Z |
KeyCodes de teclas numéricas para Excel
KeyCode | Valor | Tecla Correspondente |
vbKey0 | 48 | 0 |
vbKey1 | 49 | 1 |
vbKey2 | 50 | 2 |
vbKey3 | 51 | 3 |
vbKey4 | 52 | 4 |
vbKey5 | 53 | 5 |
vbKey6 | 54 | 6 |
vbKey7 | 55 | 7 |
vbKey8 | 56 | 8 |
vbKey9 | 57 | 9 |
KeyCodes para teclas numéricas do teclado numérico para Excel
KeyCode | Valor | Tecla Correspondente |
vbKeyNumpad0 | 96 | 0 |
vbKeyNumpad1 | 97 | 1 |
vbKeyNumpad2 | 98 | 2 |
vbKeyNumpad3 | 99 | 3 |
vbKeyNumpad4 | 100 | 4 |
vbKeyNumpad5 | 101 | 5 |
vbKeyNumpad6 | 102 | 6 |
vbKeyNumpad7 | 103 | 7 |
vbKeyNumpad8 | 104 | 8 |
vbKeyNumpad9 | 105 | 9 |
vbKeyMultiply | 106 | Multiplicação (*) |
vbKeyAdd | 107 | Soma (+) |
vbKeySeparator | 108 | Enter |
vbKeySubtract | 109 | Subtração (-) |
vbKeyDecimal | 110 | Ponto Decimal (.) |
vbKeyDivide | 111 | Divisão (/) |
KeyCodes para teclas de função para Excel
KeyCode | Valor | Tecla Correspondente |
vbKeyF1 | 112 | F1 |
vbKeyF2 | 113 | F2 |
vbKeyF3 | 114 | F3 |
vbKeyF4 | 115 | F4 |
vbKeyF5 | 116 | F5 |
vbKeyF6 | 117 | F6 |
vbKeyF7 | 118 | F7 |
vbKeyF8 | 119 | F8 |
vbKeyF9 | 120 | F9 |
vbKeyF10 | 121 | F10 |
vbKeyF11 | 122 | F11 |
vbKeyF12 | 123 | F12 |
vbKeyF13 | 124 | F13 |
vbKeyF14 | 125 | F14 |
vbKeyF15 | 126 | F15 |
vbKeyF16 | 127 | F16 |