2008-08-22 20 views
11

Ich versuche, die aktuelle Auswahl in Word ersetzen (2003/2007) von einigen RTF-String in einer Variablen gespeichert.Word Automation: RTF Text schreiben, ohne Zwischenablage zu gehen durch

Hier ist der aktuelle Code:

Clipboard.SetText(strRTFString, TextDataFormat.Rtf) 
oWord.ActiveDocument.ActiveWindow.Selection.PasteAndFormat(0) 

Gibt es eine Möglichkeit, das Gleiche zu tun, ohne den Umweg über die Zwischenablage zu gehen. Oder gibt es eine Möglichkeit, die Daten der Zwischenablage an einen sicheren Ort zu verschieben und danach wiederherzustellen?

Antwort

14

Setzen Sie die RTF in eine Datei anstelle der Zwischenablage, dann fügen Sie aus der Datei, z.

Selection.InsertFile FileName:="myfile.rtf", Range :="", _ ConfirmConversions:=False, Link:=False, Attachment:=False

+0

Danke Joel. Um diese Antwort allgemeiner zu machen als den Kontext der ursprünglichen Frage, möchte ich hinzufügen, dass die 'InsertFile'-Methode auch in der 'Range'-Eigenschaft enthalten ist (die beispielsweise auf' Word.Document ',' Word. Document.Sections' Elemente usw.) – WizzleWuzzle

-3

Sie können eine RichTextbox verwenden, um RTF in Text oder umgekehrt umzuwandeln.

+0

Würde dies die RTF-Zeichenfolge in einfachen Text nicht konvertieren? – Rick

+0

Mmmn, meine Antwort scheint der Frage nicht ähnlich zu sein. Ich frage mich, warum ich das überhaupt geschrieben habe? – samjudson