Domanda

Sembra che quando copi qualcosa da un browser web negli appunti, vengano memorizzate almeno 2 cose:

  1. Testo semplice
  2. Codice sorgente HTML

Quindi spetta al software in cui stai incollando determinare quale desidera.Quando si incolla in Microsoft Excel 2003, hai un'opzione speciale per incollare l'HTML, che incollerà l'HTML formattato (come viene visualizzato dal browser).

Quello che voglio fare è incollare il codice sorgente effettivo come testo semplice.Può essere recuperato dagli appunti in VBA?

Modificare Sto cercando di accedere a tutto il codice sorgente dell'HTML copiato, inclusi i tag.

È stato utile?

Soluzione

Questa volta ho letto correttamente la domanda e ho capito coonj vuole ottenere l'HTML dagli appunti inclusi i tag.

Credo che questo sia ragionevolmente difficile.È necessario leggere gli appunti utilizzando le chiamate API di Windows.Quindi, analizza la stringa CF_HTML risultante che presenta alcune intestazioni stravaganti aggiunte sopra l'HTML.

  1. Articolo della Microsoft Knowledge Base con il codice API di Windows per leggere CF_HTML dagli appunti (funzione GetHTMLClipboard).
  2. Probabilmente vorrai quindi ignorare le intestazioni stravaganti.Microsoft documenta il formato Qui.Di seguito è mostrato un esempio di frammento CF_HTML.Probabilmente potresti inventare un metodo congetturale per saltare le prime righe.

    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>  
    

Potrebbe anche valere la pena pensare se esiste un altro modo per risolvere il tuo problema.Ad esempio, il browser sarà sempre Internet Explorer?Riesci a ottenere ciò di cui hai bisogno percorrendo l'albero HTML utilizzando il modello a oggetti COM?

MODIFICARE: coonj l'ha provato adesso e dice "la funzione GetHTMLClipboard sembra funzionare sia con Firefox che con IE, e non sembra che stia inserendo quelle intestazioni lì dentro"

Altri suggerimenti

VB6 ha l'oggetto Appunti che ti permette di ottenere i dati degli appunti in diversi formati. VBA non ha questo oggetto. Ma ci sono chiamate API di Windows che puoi usare. Puoi vedere un'implementazione di esempio per VBA qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top