Carol, vou aproveitar a "deixa", dos colegas e colocar uma dica trabalhosa que faço, e quem sabe algum colega me ensina de forma mais facil de fazer isto, olhe o exemplo que faço em campo Text completo:
Dim iTECLA As Integer ' aqui nomeio uma váriavel
Private Sub Text1_GotFocus()
Text1.BackColor = AZUL ' deixo o fundo azul quando recebe o foco
Text1.ForeColor = BRANCA ' os caracteres em branco
iTECLA = 0 ' deixo a variável com valor 0
End Sub
Private Sub Text1_KeyPress(TK as Integer, Shift as Integer)
If TK <> 13 and TK <> 27 and TK <> 32 Then ' se diferente de ENTER, ESC, 'ESPAÇO só verifica
If iTECLA = 0 Then ' verifica se é a primeira tecla digitado no texto
Text1 = "" ' apaga todo o conteúdo evitando o BackSpace pelo usuário
End If
End If
iTECLA = 1 ' incrementa a variável para não apagar a digitação
End Sub
Private Sub Text1_KeyDown(TK as Integer, Shift As Integer)
If tk = 13 Then ' se digitou o ENTER
Proximo.SetFocus ' vai para o foco determinado
Exit Sub
Else
If TK = 27 Then ' se digitou ESC
FOCOANTERIOR.SetFocus ' volta ao foco anterior
Exit Sub
End If
End Sub
Private Sub Text1_LostFocus()
Text1.BackColor = cor anterior
Text1>ForeColor = cor anterior ' retorna as cores originais
Text1 = Ucase$(Text1) ' Transforma em maiuscula (opcional)
End Sub
Bom lógico que crio um array de controles e coloco o indices, mas apesar de funcionar bem, é trabalhoso.
Aceito sugestões de melhoramentos.
Obrigado a todos.