Question

Il semble que lorsque vous copiez quelque chose d'un navigateur Web vers le presse-papiers, au moins 2 éléments sont stockés :

  1. Texte brut
  2. Code source HTML

Il appartient ensuite au logiciel dans lequel vous collez de déterminer celui qu'il souhaite.Lors du collage dans MS Excel 2003, vous disposez d'une option spéciale de collage pour coller du HTML, qui collera le HTML formaté (tel qu'il est affiché par le navigateur).

Ce que je veux faire, c'est coller le code source réel sous forme de texte brut.Cela peut-il être récupéré dans le presse-papiers en VBA ?

Modifier J'essaie d'accéder à tout le code source du HTML copié, y compris les balises.

Était-ce utile?

La solution

Cette fois, j'ai lu la question correctement et j'ai réalisé coonj veut obtenir le code HTML du presse-papiers, y compris les balises.

Je pense que c'est raisonnablement difficile.Vous devez lire le presse-papiers à l'aide des appels de l'API Windows.Et puis, analysez la chaîne CF_HTML résultante qui contient des en-têtes farfelus ajoutés au-dessus du code HTML.

  1. Article de la Base de connaissances Microsoft avec le code API Windows pour lire le CF_HTML depuis le presse-papier (fonction GetHTMLClipboard).
  2. Vous souhaiterez alors probablement ignorer les en-têtes farfelus.Microsoft documente le format ici.Un exemple de fragment CF_HTML est présenté ci-dessous.Vous pourriez probablement trouver une méthode de conjecture pour sauter les premières lignes.

    Version:0.9 
    StartHTML:71 
    EndHTML:170 
    StartFragment:140 
    EndFragment:160 
    StartSelection:140 
    EndSelection:160 
    <!DOCTYPE> 
    <HTML> 
    <HEAD> 
    <TITLE>The HTML Clipboard</TITLE> 
    <BASE HREF="http://sample/specs">  
    </HEAD> 
    <BODY> 
    <!--StartFragment -->     <P>The Fragment</P> 
    <!--EndFragment --> 
    </BODY> 
    </HTML>  
    

Cela vaut peut-être également la peine de réfléchir s'il existe un autre moyen de résoudre votre problème.Par exemple, le navigateur sera-t-il toujours Internet Explorer ?Pouvez-vous obtenir ce dont vous avez besoin en parcourant l’arborescence HTML à l’aide du modèle objet COM ?

MODIFIER: coonj a essayé cela maintenant et dit "la fonction GetHTMLClipboard semble fonctionner à la fois avec Firefox et IE, et il ne semble pas qu'elle y jette ces en-têtes"

Autres conseils

VB6 a l’objet Clipboard qui vous permet d’obtenir les données du presse-papiers dans différents formats. VBA n'a pas cet objet. Mais il existe des appels API Windows que vous pouvez utiliser. Vous pouvez voir un exemple de mise en œuvre pour VBA ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top