Поделись своей логикой vb, но это не важно. Важно: как можно меньше упростить алгоритм. Code: Function Ulica(ul As String, dom As String, text As Boolean) As String ' ul - название улицы ' dom - строка с номером дома и (если есть) корпусом ' text = true - вывести текстом Dim i As Integer, j As Integer i = InStr(dom, " к. ") - 1 j = InStr(dom, "/") ul = Replace(ul, " ул.", "") If text = True Then If i > 0 Then Ulica = "ул. " + ul + ", дом " + Replace(dom, " к. ", " корпус ") Else Ulica = "ул. " + ul + ", дом " + dom End If Else If j > 0 Then If i > 0 Then Ulica = ul + " " + Replace(Replace(dom, " к. ", ")-"), "/", "(") Else Ulica = ul + " " + Replace(dom, "/", "(") + ")" End If Else If i > 0 Then Ulica = ul + " " + Replace(dom, " к. ", "-") Else Ulica = ul + " " + dom End If End If End If End Function Варианты?