VBA Tipp: HTML-Tags entfernen

Aus DBWiki
Wechseln zu: Navigation, Suche

Problem

Ich möchte alle HTML-Tags aus einem String entfernen.

Lösung

Das geht mit der folgenden Umwandlungsroutine:

Public Function RemoveHTML(HtmlText As Variant) As Variant
 
   'Quelle: www.dbwiki.net oder www.dbwiki.de
 
   Dim res As String
   Dim ch  As String * 1
   Dim i   As Long
   Dim out As Boolean
 
   RemoveHTML = Null
 
   If Not IsNull(HtmlText) Then
      out = True
      For i = 1 To Len(HtmlText)
         ch = Mid$(HtmlText, i, 1)
         Select Case ch
            Case "<":  out = False
            Case ">":  out = True
            Case Else: If out Then res = res & ch
         End Select
      Next
      RemoveHTML = res
   End If
 
End Function
Wiki hinweis.png

Anmerkung: Für längere Texte oder bei Einsatz in Abfragen sollte der Einsatz einer StringBuilder-Klasse für das Aneinanderketten der einzelnen Zeichen in Erwägung gezogen werden.


Aufruf

   Dim objOL   As Outlook.Application
   Dim objMail As Outlook.MailItem
   Dim Res     As String
 
   Set objMail = objOL.CreateItem(olMailItem)
   ' ...
   Res = Nz(RemoveHTML(objMail.HTMLBody), "")