AW: Goil :) - noch ne kleine Schleife und schick isses
21.08.2020 22:52:12
volti
Hallo Nilo,
vielen Dank für die positive Rückmeldung. Schön, wenn es passt.
Hier zum Abschluss noch eine verbesserte Variante, die auch mehrfach Formatierung eines Bereichs erlaubt und vor allem (ein Manko der Erstversion) das Handling anderer HTML-Tags, falls sie vorkommen sollten.
[+][-]
Sub FormatiereExcelFeldAusHTML()
Dim Pos(2, 5) As Integer, sArt(5) As String, I As Integer, Text As String
Dim P As Integer, l As Integer
Text = "Dieses <font color=blue>hier</font> ist <b>fett</b> markiert " _
& "und <b><i><u>dieses</u></i></b> auch " _
& "und dieses ist <u>unterstrichen</u>, dies dagegen <i>kursiv</i>."
Do
P = InStr(P + 1, Text, "<"): If P = 0 Then Exit Do
sArt(I) = Mid(Text, P + 1, 2)
If sArt(I) Like "[biu]>" Then
Pos(1, I) = P
Do
l = InStr(Pos(1, I), Text, ">") - Pos(1, I) + 1
Text = Left(Text, Pos(1, I) - 1) & Mid(Text, Pos(1, I) + l)
Pos(2, I) = InStr(Text, "</" & Right(" " & sArt(I), 2))
If Pos(2, I) > 0 Then
l = InStr(Pos(2, I), Text, ">") - Pos(2, I) + 1
Text = Left(Text, Pos(2, I) - 1) & Mid(Text, Pos(2, I) + l)
End If
If Not Mid(Text, Pos(1, I) + 1, 2) Like "[biu]>" Then Exit Do
sArt(I) = sArt(I) & Mid(Text, Pos(1, I) + 1, 2)
DoEvents
Loop
I = I + 1
End If
Loop
With ActiveCell
.value = Text
For I = 0 To I - 1
With .Characters(Start:=Pos(1, I), Length:=Pos(2, I) - Pos(1, I)).Font
If sArt(I) Like "*b>*" Then .FontStyle = "Fett"
If sArt(I) Like "*i>*" Then .Italic = True
If sArt(I) Like "*u>*" Then .Underline = xlUnderlineStyleSingle
End With
Next I
End With
End Sub
viele Grüße aus Freigericht
Karl-Heinz