RichTextBox HTML

25/03/2013 - 17:00 por accessero | Informe spam
Buenos Dias:

Resulta que tengo un textbox con la propiedad formato del "texto= texto enriquecido" en el que acumulo los valores de un campo field. Funciona muy bien. Puedo resaltar textos, cambiar de cursiva a negrita, etc.

El problema se presenta cuando a través de código quiero enviar ese campo memo a word, ya que al enviarse digamos que "no se interpreta" y en word se me presenta como un un texto plano entre etiquetas html, en vez de un texto formateado.


mi codigo:


Private Sub Comando11_Click()
' COMANDO GENERAR ANEXO B1
'On Error GoTo manejarerror

Dim rs As DAO.Recordset

'Word.Application.Documents.Open
Set b1 = CreateObject("word.application")
b1.Visible = True
b1.Documents.Open FileName:="C:\Users\97019098\Desktop\ANEXO B1.docx"

VARRESPUESTA = MsgBox("EL ARCHIVO ANEXO B1 YA EXISTE, ¿DESEA VOLVER A GENERARLO TOTALMENTE?", vbOKCancel)
If VARRESPUESTA = 2 Then
b1.Quit
Exit Sub
End If

b1.Activate
b1.WindowState = wdWindowStateMaximize

b1.Selection.EndKey Unit:=wdStory, Extend:=wdExtend

Me.OrderBy = "CATEGORIA"
Set rs = Forms![LINEAL].RecordsetClone


varcategoria = rs.Fields("categoria")
b1.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
b1.Selection.Font.Size = 14
b1.Selection.Font.Bold = True
b1.Selection.Font.Name = "ARIAL"
b1.Selection.TypeText Text:=Nz(varcategoria, "")
b1.Selection.TypeParagraph

rs.MoveFirst
While Not rs.EOF

Z = rs.Fields("CONCEPTO")
If rs.Fields("SELECCIONAR") = True Then

If rs.Fields("categoria") <> varcategoria Then

categoriaactual = rs.Fields("categoria")

b1.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
b1.Selection.Font.Size = 14
b1.Selection.Font.Bold = True
b1.Selection.TypeText Text:=categoriaactual
b1.Selection.TypeParagraph

End If



varcategoria = rs.Fields("categoria")

CAMPO1 = rs.Fields("CONCEPTO").Value
b1.Selection.ParagraphFormat.SpaceAfter = 0
b1.Selection.ParagraphFormat.SpaceBefore = 0
b1.Selection.Font.Name = "ARIAL"
b1.Selection.Font.Size = 10
b1.Selection.Font.Bold = True
b1.Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify

b1.Selection.TypeText Text:ÊMPO1
b1.Selection.Range.ListFormat.ApplyNumberDefault

b1.Selection.TypeParagraph

b1.Selection.Range.ListFormat.RemoveNumbers NumberType:=wdNumberParagraph


CAMPOCODIGO = rs.Fields("CODIGO").Value
CAMPOUNIDAD = rs.Fields("UNIDAD").Value
b1.Selection.TypeText Text:="CODIGO: " & CAMPOCODIGO & " UNIDAD: " & CAMPOUNIDAD
b1.Selection.Font.Bold = False
b1.Selection.TypeParagraph
b1.Selection.Range.ListFormat.RemoveNumbers NumberType:=wdNumberParagraph
b1.Selection.TypeParagraph


campo3 = rs.Fields("ALCANCES").Value

b1.Selection.TypeParagraph
b1.Selection.Font.Bold = True
b1.Selection.Font.Italic = True
b1.Selection.Font.Size = 12

b1.Selection.TypeText Text:="ALCANCES:"
b1.Selection.Font.Bold = False
b1.Selection.TypeParagraph
b1.Selection.Font.Size = 10
b1.Selection.Font.Bold = False
b1.Selection.Font.Italic = False
b1.Selection.ParagraphFormat.Alignment = wdAlignParagraphJustify
' b1.Selection.Range.ListFormat.ApplyBulletDefault
b1.Selection.TypeText Text:=campo3


b1.Selection.Font.Bold = False
b1.Selection.TypeParagraph

'b1.Selection.Range.ListFormat.ApplyBulletDefault

b1.Selection.TypeParagraph
End If
rs.MoveNext
Wend
b1.Selection.HomeKey Unit:=wdStory
Set b1 = Nothing

Exit Sub
manejarerror:
If Err.Number = 5174 Then
VARRESPUESTA = MsgBox("El archivo Anexo B1 no existe, desea crearlo?", vbOKCancel)
If VARRESPUESTA = 2 Then
b1.Quit
Exit Sub
End If
b1.Documents.Add Template:="Normal", NewTemplate:=False, DocumentType:=0
b1.Documents(1).SaveAs2 FileName:="C:\Users\97019098\Desktop\ANEXO B1.docx"
b1.Activate
b1.WindowState = wdWindowStateMaximize
End If
Resume Next
End Sub


La pregunta es como puedo enviar el texto enriquecido mediante codigo a word sin que se pierda el formato.

Gracias

Rafael
 

Leer las respuestas

#1 José Mª Fueyo
26/03/2013 - 12:56 | Informe spam
Hola
Quizás te sirva consultar el SDK de OpenXML
http://msdn.microsoft.com/en-us/library/bb448854(v=office.12).aspx

Desde ahí podrás seleccionar la versión de Office 2010 y 2013

Salu2
José Mª Fueyo
[MS MVP Access]

Preguntas similares