Ciao
Ho fatto una prova ed ho risolto così:
Public Function GetNomeProprio(ByVal nome As String) as String
'Metto tutto in minuscolo e rimuovo gli spazi all'inizio e alla fine
nome = LCase(nome).Trim()
'Creo un array dove separo il nome dal cognome
Dim temp() As String = nome.Split(" ")
Dim result As String = ""
For Each s As String In temp
'Inserisco come secondo carattere la lettera in maiuscolo
s = s.Insert(1, UCase(s(0)))
'Rimuovo il primo carattere (quello in minuscolo)
s = s.Remove(0, 1)
'Aggiungo la stringa al risultato
result += s + " "
Next
'Ritorno il risultato senza spazi all'inizio e alla fine
Return result.Trim()
End Function
Luca