AW: Das steht bei mir (zumindest bei neueren UDFs) ...
05.05.2015 20:48:28
Daniel
wenn ich mir die von dir hier verlinke Version von MaskOn anschaue:
Function MaskOn(ByVal Text As String, ByVal ZTyp As String, Optional ByVal ZTmask) As String
Dim i As Integer, a As String, d As String, z As String, ZusZ As String
Const b = "abcdefghijklmnopqrstuvwxyzäöü", c = "0123456789", e = " +-,.E " 'letztZ=Chr(160)
If IsMissing(ZTmask) Then
ZTmask = 1
ElseIf IsNumeric(ZTmask) Then
ZTmask = ZTmask Mod 2 + 1
Else
ZusZ = ZTmask: ZTmask = 1
End If
For i = 1 To Len(Text)
Select Case lcase(Left(ZTyp, 3)) 'feste ZKomb in ZTyp
Case "gkz", "buz", "bz", "bzi", "len", "lin", "a0", "an", "anu"
a = c & b & "ß": z = lcase(Mid(Text, i, 1))
Case "gk", "gkb", "bst", "buc", "let", "lit"
a = b & "ß": z = lcase(Mid(Text, i, 1))
Case "kb", "mil", "min"
a = b & "ß": z = Mid(Text, i, 1)
Case "gb", "cal", "cap"
a = UCase(b): z = Mid(Text, i, 1)
Case "zf", "dg", "zif", "dig", "num", "00", "000"
a = c: z = Mid(Text, i, 1)
Case "zw", "nv", "zah", "zwt", "nvl", "+0", "0.-"
a = c & e: z = Mid(Text, i, 1)
Case "mar", "mrk", "mkt", "mtx"
z = Mid(Text, i, 1)
If z = Left(Right(ZTyp, 2), 1) Then
a = z: d = z
ElseIf z = Right(ZTyp, 1) Then
a = z: d = z
ElseIf d = Left(Right(ZTyp, 2), 1) Then
a = z
Else: a = ""
End If
Case Else 'freie ZKomb in ZTyp
a = ZTyp: z = Mid(Text, i, 1)
End Select
a = a & ZusZ
On Abs(CInt(InStr(a, z) > 0)) + ZTmask GoSub lm, zm, lm
Next i
MaskOn = WorksheetFunction.Substitute(Trim(MaskOn), " ", " ")
Exit Function
lm: Rem reduziert maskierte Zeichen (mehrere hintereinander als 1 blank)
MaskOn = MaskOn & IIf(Right(MaskOn, 1) = " ", "", " ")
Return
zm: Rem übernommene Zeichen
MaskOn = MaskOn & Mid(Text, i, 1)
Return
End Function
kann ich nichts davon finden.
Weder eine Beschreibung, noch Kommentare oder eine selbsterklärende Programmierung mit sprechenden Variablennamen oder so.
Bis ich mir da die möglichen Funktionen rausinterpretiert habe, habe ich doch wesentlich schneller ein nicht universelles Spezialmakro erstellt, welches dann genau auf meine Lösung passt, nach meinen Vorgaben dokumentiert ist.
für die Beschriebene Aufgabenstellung reicht ein Einzeiler!
Warum also dann sowas aus unsicherer Quelle auf seinem Rechner installieren?
sorry, nö danke. Dann lieber selber etwas Zeit investieren und selber programmieren.
Sollte deine Zielgruppe für solche Universalmakros Excelanwender ohne Programmierkenntnisse sein, die damit ihren Excelfunktionsumfang erweiteren können (was ja durchaus sinnvoll wäre im Bereich von Text-Funktionen), dann müsstest du erst recht genau beschreiben, was deine UDFs können und wie man sie parametrisiert, weil dieser Personenkreis erst recht nicht in der Lage ist, deinen Code zu interpretieren.
Gruß Daniel