Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

VBA-generierte HTML-Sequenz HTML-formatiert in Tabelle

Gruppe

HTML

Problem

Wenn Sie aus einem HTML-Dokument Text kopiert haben, können Sie diesen über die Zwischenablage in ein ExcelArbeitsblatt einfügen. Die gleiche Funktionalität wird hier für über VBA generierten HTML-Code zur Verfügung gestellt.

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.

StandardModule: Modul1

Private Declare Function RegisterClipboardFormat Lib "user32" _
   Alias "RegisterClipboardFormatA" (ByVal lpString As String) _
   As Long

Sub GetHTML()
   HTMLToClipboard "<html><body><table><tr width=""240"">" & _
      "<td bgcolor=""blue""><font color=""yellow""><b>" & _
      "Dies ist ein Beispieltext</b></font></td></tr></table></body></html>"
End Sub

Public Sub HTMLToClipboard(HTMLText As String)
   Dim nCFHTML As Long
   Dim nClipboardText As String
   
   nCFHTML = RegisterClipboardFormat("HTML Format")
   
   nClipboardText = "Version:0.9" & vbCrLf
   nClipboardText = nClipboardText & "StartHTML:-1" & vbCrLf
   nClipboardText = nClipboardText & "EndHTML:-1" & vbCrLf
   nClipboardText = nClipboardText & "StartFragment:000081" & vbCrLf
   nClipboardText = nClipboardText & "EndFragment:°°°°°°" & vbCrLf
   
   nClipboardText = nClipboardText & HTMLText & vbCrLf
   
   nClipboardText = Replace(nClipboardText, "°°°°°°", _
      Format$(Len(nClipboardText), "000000"))
   
   With New DataObject
      .Clear
      .SetText StrConv(nClipboardText, vbFromUnicode), nCFHTML
      .PutInClipboard
   End With
   Range("A1").Select
   ActiveSheet.Paste
End Sub