Quando trabalhamos com macros e criamos formulários (UserForms), utilizamos objetos que precisam ser configurados para um bom funcionamento ou para facilitar a vida do usuário. O objeto que vou utilizar aqui como exemplo é o TextBox (caixa de texto).
Algumas macros serão apresentadas para exemplificar a formatação de Datas, números de telefones, números de CPF, entre outros.
Estas macros devem ser colocadas nos eventos dos objetos onde serão executadas automaticamente dependendo da ação tomada.
Mascara de CPF
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
TextBox1.MaxLength = 14
If (KeyAscii < 48 Or KeyAscii > 57) And KeyAscii <> 8 Then
KeyAscii = 0
Else
If Len(TextBox1) = 3 Then
TextBox1.Text = TextBox1 & "."
End If
If Len(cdCPF) = 7 Then
TextBox1.Text = TextBox1 & "."
End If
If Len(cdCPF) = 11 Then
TextBox1.Text = TextBox1 & "-"
End If
End If
End Sub
Definir teclas de atalho
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If vbKeyF2 = KeyCode Then
Call Executa_sua_Macro
End If
End Sub
Texto sempre maiúsculo
Private Sub TextBox1_Change()
TextBox1 = UCase(TextBox1) 'Utilize LCase para Minúsculo
End Sub
Mascara de telefone
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Mid(TextBox1, 1, 1) = "0" Or Mid(TextBox1, 1, 1) = 0 Then
TextBox1 = Mid(TextBox1, 2, 20)
End If
If Len(TextBox1) = 11 Then
TextBox1 = Format(TextBox1, "(000) 00000-0000")
ElseIf Len(TextBox1) = 10 Then
TextBox1 = Format(TextBox1, "(000) 0000-0000")
End If
End Sub
As macros apresentadas acima devem ser utilizadas ao objeto TextBox (podem ser utilizadas a outros objetos como o ComboBox). Os exemplos podem ser adaptados para outras necessidades como formatar CNPJ, outros documentos que sigam uma lógica, padrões estabelecidos por empresas quando houver necessidade.
😕 Poxa, o que podemos melhorar?
😃 Boa, seu feedback foi enviado!
✋ Você já nos enviou um feedback para este texto.