Convertendo as primeiras letras de um texto para Maiúsculos (Exceto: de, da, do, das, dos, a, e.).

A função a seguir irá converter as primeiras letras de um texto para Maiúsculas deixando os demais caracteres em letras minúsculas . Os caracteres  - de, da, do, das, dos, a, e - também não são convertidos. Esta função é ideal para tratar nomes próprios de pessoas em uma rotina de entrada de dados. Eí-la...

1-) Inicie um novo projeto no VB e insira no formulário padrão duas caixas de texto e um botão de comando:

2-) No formulário padrão insira o seguinte código : A função irá receber o texto a ser tratado e devolve o resultado.

Public Function ConverteMaiuscula(Texto As String) As String
Dim sPalavra As String, iPosIni As Integer
Dim iPosFim As Integer, sResultado As String

iPosIni = 1
Texto = LCase(Texto) & " "

Do Until InStr(iPosIni, Texto, " ") = 0
   iPosFim = InStr(iPosIni, Texto, " ")
   sPalavra = Mid(Texto, iPosIni, iPosFim - iPosIni)
   iPosIni = iPosFim + 1
   If sPalavra <> "de" And sPalavra <> "da" And _
       sPalavra <> "do" And sPalavra <> "das" And sPalavra <> "dos" And sPalavra <> "a" And sPalavra <> "e" Then
           sPalavra = UCase(Left(sPalavra, 1)) & LCase(Mid(sPalavra, 2))
   End If
   sResultado = sResultado & " " & sPalavra
Loop
ConverteMaiuscula = Trim(sResultado)
End Function

3-) No evento click do botão de comando você pode usar o seguinte código:

Private Sub Command1_Click()
  Dim resultado As String
  resultado = ConverteMaiuscula(Text1.Text)
  Text2.Text = resultado
End Sub

O jeitão do formulário é o seguinte: Na primeira caixa de texto temos o nome a ser convertido , e na segunda caixa o resultado após a conversão pela função...

Valeu ? ...