VB6
- Evento Validate - formatando o número do telefone.   
 
Você pode usar o evento Validate do controle TextBox para fazer a formatação da entrada de dados feitas pelo usuário. Como exemplo vou mostrar como formatar o número do telefone informado em uma caixa de texto. ( O evento presente somente na versao 6 do VB )
1- Inicie um novo projeto no VB e no formulário padrão insira duas labels duas caixas de texto e um botão de comando, conforme layout abaixo:
|  |  |  | 
| O layout do formulário | A entrada inicial | O valor formatado | 
2- A seguir insira no evento Validate do controle text1.text o seguinte código:
| Private Sub Text1_Validate(keepfocus As Boolean) If Not IsNumeric(Text1.text) Or Len(Text2.text) < 4 Then keepfocus = True MsgBox "Informe um valor valido !", vbInformation, "Formatando telefone" Exit Sub End If Text1.text = FormataTelefone(Text1.text) End Sub | 
A função que realiza a formatação é a seguinte: ( fique a vontade para ajustá-la a seu caso...)
| Function FormataTelefone(ByVal text As String) As String     
Dim i As Long
' ignora vazio
If Len(text) = 0 Then Exit Function
 'verifica valores invalidos
  For i = Len(text) To 1 Step -1
    If InStr("0123456789", Mid$(text, i, 1)) = 0 Then
       text = Left$(text, i - 1) & Mid$(text, i + 1)
    End If
  Next
  ' ajusta a posicao correta
  If Len(text) <= 7 Then
     FormataTelefone = Format$(text, "!@@@-@@@@")
  ElseIf Len(text) > 7 And Len(text) <= 9 Then
     FormataTelefone = Format$(text, "!(@@) @@@-@@@@")
  ElseIf Len(text) > 9 Then
     FormataTelefone = Format$(text, "!(@@) @@@@-@@@@")
  End If
End Function | 
Se o usuário não informar um valor numérico ou um valor menor que 4 caracteres -
If Not IsNumeric(Text1.text) Or Len(Text2.text) < 4 Then
o foco é mantido no controle e uma mensagem é exibida para o usuário:
keepfocus = True
MsgBox "Informe um valor valido !", vbInformation,
"Formatando telefone"
Exit Sub
Se o valor estiver dentro do esperado , a função FormataTelefone é invocada e a formatação ocorre como na figura mostrada acima.
Até mais... 