Nadat het gelukt was om een string HTML in Word te plakken (zie: [rml][ VBA/WORD] Plakken HTML string*[/rml]]) ben ik tegen een volgende probleem aangelopen. Als de HTML string extended characters bevat (zoals bv: é ö á etc..) worden deze niet getoond in Word (er verschijnt op de plek van het teken een vierkantje). Bij het handmatig knippen en plakken van HTML (van browser naar Word) worden deze echter wél netjes meegenomen.
Mijn vermoeden is dat er ergens in de clipboard code een fout zit waardoor de tekens verloren gaan.
HTML to clipboard module
Code fragment uit de macro voor het plakken van de HTML
Iemand enig idee?
Mijn vermoeden is dat er ergens in de clipboard code een fout zit waardoor de tekens verloren gaan.
HTML to clipboard module
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
| Private Declare Function RegisterClipboardFormat Lib "USER32" _
Alias "RegisterClipboardFormatA" (ByVal lpString As String) _
As Long
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
End Sub |
Code fragment uit de macro voor het plakken van de HTML
code:
1
2
| HTMLToClipboard (sBriefBody)
ActiveDocument.Bookmarks("BRIEFTEKST").Range.Paste |
Iemand enig idee?
[ Voor 7% gewijzigd door Sisko op 24-05-2005 10:11 . Reden: onrelevante lijn in code ]