Кидаю код мож кто разберется???
Function СклонятьСлово(ByVal п_Слово As String, ByVal п_Падеж As String, ByVal п_Пол As String, ByVal п_Фамилия As Byte) As String
' Определение локальных переменных
Dim СС, Падеж, ПБ1, ПБ2, ПБ3, Пол, Окончание As String
Dim ДлСС, Фам As Byte
СС = LCase(Trim(п_Слово))
Падеж = Left(LCase(Trim(п_Падеж)), 1)
ПБ1 = Right(СС, 1)
ПБ2 = Left(Right(СС, 2), 1)
ПБ3 = Left(Right(СС, 3), 1)
Пол = Left(LCase(Trim(п_Пол)), 1)
ДлСС = Len(СС)
Фам = п_Фамилия
' Обработка нестандартных слов
If СС = "лев" Then
If Падеж = "р" Then Окончание = "ьва"
ElseIf Падеж = "д" Then Окончание = "ьву"
ElseIf Падеж = "в" Then Окончание = "ьва"
ElseIf Падеж = "т" Then Окончание = "ьвом"
ElseIf Падеж = "п" Then Окончание = "ьве"
End If
СС = Left(CC, 1) & Окончание
СклонятьСлово = СС
Exit Function
ElseIf СС = "павел" Then
If Падеж = "р" Then Окончание = "ла"
ElseIf Падеж = "д" Then Окончание = "лу"
ElseIf Падеж = "в" Then Окончание = "ла"
ElseIf Падеж = "т" Then Окончание = "лом"
ElseIf Падеж = "п" Then Окончание = "ле"
End If
СС = Left(CC, 3) & Окончание
СклонятьСлово = СС
Exit Function
End If
' Обработка окончания
If ПБ1 = "а" Then
If ПБ2 = "к" Then
If Падеж = "р" Then Окончание = "и"
ElseIf Падеж = "д" Then Окончание = "е"
ElseIf Падеж = "в" Then Окончание = "у"
ElseIf Падеж = "т" Then Окончание = "ой"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = Left(CC, ДлСС - 1) & Окончание
ElseIf ПБ2 = "ц" Then
If Падеж = "р" Then Окончание = "ы"
ElseIf Падеж = "д" Then Окончание = "е"
ElseIf Падеж = "в" Then Окончание = "у"
ElseIf Падеж = "т" Then Окончание = "ей"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = Left(CC, ДлСС - 1) & Окончание
Else
If (Фам = 1) And (Пол = "ж") Then
If (ПБ2 = "в") Or (ПБ2 = "н") Then
If Падеж = "р" Then Окончание = "ой"
ElseIf Падеж = "д" Then Окончание = "ой"
ElseIf Падеж = "в" Then Окончание = "у"
ElseIf Падеж = "т" Then Окончание = "ой"
ElseIf Падеж = "п" Then Окончание = "ой"
End If
СС = Left(CC, ДлСС - 1) & Окончание
Else
If Падеж = "р" Then Окончание = "ы"
ElseIf Падеж = "д" Then Окончание = "е"
ElseIf Падеж = "в" Then Окончание = "у"
ElseIf Падеж = "т" Then Окончание = "ой"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = Left(CC, ДлСС - 1) & Окончание
End If
Else
If Падеж = "р" Then Окончание = "ы"
ElseIf Падеж = "д" Then Окончание = "е"
ElseIf Падеж = "в" Then Окончание = "у"
ElseIf Падеж = "т" Then Окончание = "ой"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = Left(CC, ДлСС - 1) & Окончание
End If
End If
ElseIf ПБ1 = "б" Then
If Падеж = "р" Then Окончание = "а"
ElseIf Падеж = "д" Then Окончание = "у"
ElseIf Падеж = "в" Then Окончание = "а"
ElseIf Падеж = "т" Then Окончание = "ом"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = CC & Окончание
ElseIf ПБ1 = "в" Then
If (ПБ2 = "а") Or (Фам = 0) Then
If Падеж = "р" Then Окончание = "а"
ElseIf Падеж = "д" Then Окончание = "у"
ElseIf Падеж = "в" Then Окончание = "а"
ElseIf Падеж = "т" Then Окончание = "ом"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = CC & Окончание
Else
If Падеж = "р" Then Окончание = "а"
ElseIf Падеж = "д" Then Окончание = "у"
ElseIf Падеж = "в" Then Окончание = "а"
ElseIf Падеж = "т" Then Окончание = "ым"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = CC & Окончание
End If
ElseIf (ПБ1 = "г") Or (ПБ1 = "д") Or (ПБ1 = "ж") Or (ПБ1 = "з") Or (ПБ1 = "к") Or (ПБ1 = "л") Or (ПБ1 = "м") Or (ПБ1 = "н") And (ПБ2 <> "и") And (ПБ2 <> "ы") Or _
(ПБ1 = "п") Or (ПБ1 = "р") Or (ПБ1 = "с") Or (ПБ1 = "т") Or (ПБ1 = "ф") Or (ПБ1 = "х") And (ПБ2 <> "и") And (ПБ2 <> "ы") Or (ПБ1 = "щ") Then
If (Фам = 1) And (Пол = "ж") Then
СклонятьСлово = СС
Exit Function
Else
If Падеж = "р" Then Окончание = "а"
ElseIf Падеж = "д" Then Окончание = "у"
ElseIf Падеж = "в" Then Окончание = "а"
ElseIf Падеж = "т" Then Окончание = "ом"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = CC & Окончание
End If
ElseIf ПБ1 = "й" Then
If (Фам = 1) And (Пол = "ж") Then
СклонятьСлово = СС
Exit Function
ElseIf (ПБ2 = "и") And (ПБ3 = "к") Then
If Падеж = "р" Then Окончание = "ого"
ElseIf Падеж = "д" Then Окончание = "ому"
ElseIf Падеж = "в" Then Окончание = "ого"
ElseIf Падеж = "т" Then Окончание = "им"
ElseIf Падеж = "п" Then Окончание = "ом"
End If
СС = Left(CC, ДлСС - 2) & Окончание
ElseIf (ПБ2 = "и") And (ПБ3 = "ш") Or (ПБ3 = "щ") Then
If Падеж = "р" Then Окончание = "его"
ElseIf Падеж = "д" Then Окончание = "ему"
ElseIf Падеж = "в" Then Окончание = "его"
ElseIf Падеж = "т" Then Окончание = "им"
ElseIf Падеж = "п" Then Окончание = "ем"
End If
СС = Left(CC, ДлСС - 2) & Окончание
ElseIf (ПБ2 = "о") Or (ПБ2 = "ы") Then
If Падеж = "р" Then Окончание = "ого"
ElseIf Падеж = "д" Then Окончание = "ому"
ElseIf Падеж = "в" Then Окончание = "ого"
ElseIf Падеж = "т" Then Окончание = "ым"
ElseIf Падеж = "п" Then Окончание = "ом"
End If
СС = Left(CC, ДлСС - 2) & Окончание
ElseIf (ПБ2 = "а") Or (ПБ2 = "е") Or (ПБ2 = "и") Or (ПБ2 = "у") Or (ПБ2 = "э") Or (ПБ2 = "ю") Or (ПБ2 = "я") And (ПБ3 <> "к") Then
If Падеж = "р" Then Окончание = "я"
ElseIf Падеж = "д" Then Окончание = "ю"
ElseIf Падеж = "в" Then Окончание = "я"
ElseIf Падеж = "т" Then Окончание = "ем"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = Left(CC, ДлСС - 1) & Окончание
End If
ElseIf (ПБ1 = "н") And ((ПБ2 = "и") Or (ПБ2 = "ы")) Then
If Фам = 1 Then
If Падеж = "р" Then Окончание = "а"
ElseIf Падеж = "д" Then Окончание = "у"
ElseIf Падеж = "в" Then Окончание = "а"
ElseIf Падеж = "т" Then Окончание = "ым"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = CC & Окончание
Else
If Падеж = "р" Then Окончание = "а"
ElseIf Падеж = "д" Then Окончание = "у"
ElseIf Падеж = "в" Then Окончание = "а"
ElseIf Падеж = "т" Then Окончание = "ом"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = CC & Окончание
End If
ElseIf (ПБ1 = "х") And ((ПБ2 = "и") Or (ПБ2 = "ы")) Then
СклонятьСлово = СС
Exit Function
ElseIf (ПБ1 = "ц") Or (ПБ1 = "ч") Or (ПБ1 = "ш") Then
If (Фам = 1) And (Пол = "ж") Then
СклонятьСлово = СС
Exit Function
Else
If Падеж = "р" Then Окончание = "а"
ElseIf Падеж = "д" Then Окончание = "у"
ElseIf Падеж = "в" Then Окончание = "а"
ElseIf Падеж = "т" Then Окончание = "ем"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = CC & Окончание
End If
ElseIf ПБ1 = "ь" Then
If Пол = "м" Then
If Падеж = "р" Then Окончание = "я"
ElseIf Падеж = "д" Then Окончание = "ю"
ElseIf Падеж = "в" Then Окончание = "я"
ElseIf Падеж = "т" Then Окончание = "ем"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = Left(CC, ДлСС - 1) & Окончание
Else
If Фам = 1 Then
СклонятьСлово = СС
Exit Function
Else
If Падеж = "р" Then Окончание = "и"
ElseIf Падеж = "д" Then Окончание = "и"
ElseIf Падеж = "в" Then Окончание = "ь"
ElseIf Падеж = "т" Then Окончание = "ью"
ElseIf Падеж = "п" Then Окончание = "и"
End If
СС = Left(CC, ДлСС - 1) & Окончание
End If
End If
ElseIf ПБ1 = "я" Then
If ПБ2 = "м" Then
If Падеж = "р" Then Окончание = "ени"
ElseIf Падеж = "д" Then Окончание = "ени"
ElseIf Падеж = "в" Then Окончание = "я"
ElseIf Падеж = "т" Then Окончание = "енем"
ElseIf Падеж = "п" Then Окончание = "ени"
End If
СС = Left(CC, ДлСС - 1) & Окончание
ElseIf ПБ2 = "и" Then
If Падеж = "р" Then Окончание = "и"
ElseIf Падеж = "д" Then Окончание = "и"
ElseIf Падеж = "в" Then Окончание = "ю"
ElseIf Падеж = "т" Then Окончание = "ей"
ElseIf Падеж = "п" Then Окончание = "и"
End If
СС = Left(CC, ДлСС - 1) & Окончание
ElseIf ПБ2 = "а" Then
If Падеж = "р" Then Окончание = "ой"
ElseIf Падеж = "д" Then Окончание = "ой"
ElseIf Падеж = "в" Then Окончание = "ую"
ElseIf Падеж = "т" Then Окончание = "ой"
ElseIf Падеж = "п" Then Окончание = "ой"
End If
СС = Left(CC, ДлСС - 1) & Окончание
Else
If Падеж = "р" Then Окончание = "и"
ElseIf Падеж = "д" Then Окончание = "е"
ElseIf Падеж = "в" Then Окончание = "ю"
ElseIf Падеж = "т" Then Окончание = "ей"
ElseIf Падеж = "п" Then Окончание = "е"
End If
СС = CC & Окончание
End If
End If
СклонятьСлово = СС
End Function