Die Aufgabe lautet
Public Function macheGross (ByVal s As String) As String
Der String s kann beliebige Zeichen enthalten. Der von der Funktion gelieferte String
entspricht dem Inhalt von s, mit einigen Änderungen:
· Ist das erste Zeichen ein Buchstabe, so wird es groß geschrieben.
· Alle Buchstaben, denen ein Punkt oder ein Ausrufezeichen, gefolgt von einem
Lehrzeichen, vorausgeht, werden groß geschrieben.
Beispiel:
Empfangener Parameterwert: “komme bald! auch bei Zeitmangel. bis dann.“
Funktionswert: “Komme bald! Auch bei Zeitmangel. Bis dann.“
Option Explicit
Public Function macheGross(ByVal s As String) As String
Dim n As String
n = UCase(Mid(s, 1, 1))
Dim i As Integer
i = 2
Do While i <= Len(s)
If Mid(s, i - 1, 1) = "! " Or Mid(s, i - 1, 1) = ". " Then
n = n & UCase(Mid(s, i, 1))
Else
n = n & Mid(s, i, 1)
End If
i = i + 1
Loop
macheGross = n
End Function
Public Sub Test()
Dim n As String
n = InputBox("Wort eingeben: ")
MsgBox macheGross(n)
End Sub
Wenn ich meine Funktion über ein Excell Tabellenblatt überprüfe dann funktioniert es. Wenn ich es über die Sub Prozedur mache wird nur der erste Buchstabe groß und die anderen ( nach dem ". " und "! " ) bleiben klein. Wie kann das sein wo die Sub-Prozedur doch auch nur die Funktion aufruft?
Danke
|