J'utilise Visual Basic et une interface d'automatisation pour extraire des chaînes d'une application externe. Ces chaînes contiennent des codes de formatage html simples (<b>, <i>, etc.). Existe-t-il une fonction facile dans Visual Basic pour Word pour insérer ces chaînes dans un document Word et convertir les codes de mise en forme html en format de mot? AFAIK il n'y a aucune fonction intégrée pour faire cela dans VBA.Comment insérer des chaînes au format HTML dans un document Microsoft Word à l'aide de Visual Basic tout en préservant la mise en forme?
Répondre
Vous devrez l'écrire vous-même, ce qui ne serait pas trop difficile si vous le restituiez pour analyser par exemple <b>, <i>, <a> and <p>,
. Tous les autres tags devraient être ignorés.
Voici un lien pour ajouter HTML dans le presse-papiers en utilisant VB:
http://support.microsoft.com/kb/274326
Une fois que vous avez le code HTML dans le presse papier, collez-le dans votre document Word en utilisant quelque chose comme ceci:
ActiveDocument.Range.PasteSpecial ,,,,WdPasteDataType.wdPasteHTML
C'est à peu près l'équivalent de vous le couper et le coller manuellement.
Utilisez InsertFile
Set objdoc = objInsp.WordEditor
Set objword = objdoc.Application
Set objsel = objword.Selection
objsel.WholeStory
vs_html = "<html><body>" + vs_body + "</body></html>"
vs_file = "C:\temp\1.html"
Call DumptoFile(vs_file, "", vs_html, False)
RetVal = objsel.InsertFile(vs_file, , , False, False)
WOW! Simple et à l'épreuve des balles. : D (Bien sûr, il y aura des nuances dans l'utilisation de% TEMP%, ou quelque chose, et nous avons besoin d'une solution DumpToFile(), mais qui est largement disponible sur le Net.) – MGM
grande aide !! donne à ce mec une acceptation! –