Frage

Es scheint, dass beim Kopieren von etwas aus einem Webbrowser in die Zwischenablage mindestens zwei Dinge gespeichert werden:

  1. Klartext
  2. HTML-Quellcode

Dann liegt es an der Software, in die Sie einfügen, welche davon sie verwenden möchte.Beim Einfügen in MS Excel 2003, haben Sie eine spezielle Option zum Einfügen von HTML, mit der der formatierte HTML-Code (so wie er vom Browser angezeigt wird) eingefügt wird.

Ich möchte den eigentlichen Quellcode als Klartext einfügen.Kann man das per VBA aus der Zwischenablage holen?

Bearbeiten Ich versuche, auf den gesamten Quellcode des kopierten HTML zuzugreifen, einschließlich der Tags.

War es hilfreich?

Lösung

Dieses Mal habe ich die Frage richtig gelesen und erkannt coonj möchte den HTML-Code inklusive Tags aus der Zwischenablage holen.

Ich glaube, das ist einigermaßen schwierig.Sie müssen die Zwischenablage mithilfe von Windows-API-Aufrufen lesen.Und dann analysieren Sie den resultierenden CF_HTML-String, der über dem HTML einige verrückte Header hinzugefügt hat.

  1. Artikel der Microsoft Knowledge Base mit Windows-API-Code zum Lesen des CF_HTML aus der Zwischenablage (Funktion GetHTMLClipboard).
  2. Dann werden Sie die verrückten Header wahrscheinlich ignorieren wollen.Microsoft dokumentiert das Format Hier.Ein Beispiel für ein CF_HTML-Fragment ist unten dargestellt.Sie könnten sich wahrscheinlich eine Methode einfallen lassen, mit der Sie die ersten paar Zeilen überspringen können.

    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>  
    

Es könnte sich auch lohnen, darüber nachzudenken, ob es eine andere Möglichkeit gibt, Ihr Problem zu lösen.Z. B. Wird der Browser immer Internet Explorer sein?Können Sie das bekommen, was Sie brauchen, indem Sie mit dem COM-Objektmodell durch den HTML-Baum gehen?

BEARBEITEN: coonj habe es jetzt versucht und sagt: „Die GetHTMLClipboard-Funktion scheint sowohl mit Firefox als auch mit IE zu funktionieren, und es sieht nicht so aus, als würde sie diese Header dort hineinwerfen.“

Andere Tipps

VB6 hat das Clipboard-Objekt, dass Sie die Daten aus der Zwischenablage in verschiedenen Formaten erhalten kann. VBA dieses Objekt nicht hat. Aber es gibt Fenster-API-Aufrufe können Sie verwenden. Sie können eine Beispielimplementierung für VBA hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top