version=2.1.0 vdate=03.01.2017 fname=cast_techname.bas ns=%NAMESPACE% fpath=/vba/cast ====== [VBA] techName() ====== //Erstellt aus einem String ein Technischer Name. Ersetzt Leer- und Sonderzeichen durch _, kürzt aus vorgegebene Länge, übersetzt Umlaute etc.// ==Version %%version%% - %%vdate%%== {{%%fname%%|Download %%fname%% (V-%%version%%)}} >Siehe auch [[vba:cast:readablename]] ===== Definition ===== techName(iName[, iMaxLen[, iStrConv[, iDelemiter]]]) Public Function techName( _ ByVal iName As String, _ Optional ByVal iMaxLen As Integer = 255, _ Optional ByVal iStrConv As tnStrConv = vbUpperCase, _ Optional ByVal iDelemiter As Variant = Null _ ) As String ***iName ** Name der gewandelt werden soll ***iMaxLen ** Maximale Länge ***iStrConv ** Art der Konvertierung. Lower/Uper/Proper-Case ***iDelemiter ** Deleimter. Default: Bei Proper Case "" ansonsten "_" gebraucht === Enum tnStrConv === Der Enum ist eigentlich nur eine Auswahl aus vbStrConv Public Enum tnStrConv vbUpperCase = VbStrConv.vbUpperCase 'Alles in Grossbuchstaben -> Standarddelimiter: "_" vbLowerCase = VbStrConv.vbLowerCase 'Alles in Kleinbuchstaben -> Standarddelimiter: "_" vbProperCase = VbStrConv.vbProperCase 'Immer erster Buchstabe klein -> Standarddelimiter: "" End Enum ===== Beispiele ===== > Für die Beispiele verwende ich [[vba:functions:print_r:index]] In dem Beispiel mache ich aus dem folgenden Text einen technischen Namen Bücherpreis [CHF] bei Sofortkauf!!! 'Standard. Mit UpperCase und _ als Delemiter d techName("Bücherpreis [CHF]" & vbcrlf & "bei Sofortkauf!!!") 'BUECHERPREIS_CHF_BEI_SOFORTKAUF' 'Auf 15 Zeichen abgeschnitten d techName("Bücherpreis [CHF]" & vbcrlf & "bei Sofortkauf!!!", 15) 'BUECHERPREIS_CH' 'Lowercase und als Trennzeichen ein - d techName("Bücherpreis [CHF]" & vbcrlf & "bei Sofortkauf!!!",,vbLowerCase, "-") 'buecherpreis-chf-bei-sofortkauf' 'ProperCase. Standarddelmiter ist den dem Fall "". Ergibt also ein CamelCase d techName("Bücherpreis [CHF]" & vbcrlf & "bei Sofortkauf!!!",,vbProperCase) 'BuecherpreischfBeiSofortkauf' ===== Code =====