Importing and Exporting Text Fragments in Word 2010

Office Quick Note banner

Handy Programming Tips for Microsoft Word 2010: Learn how to export and import text fragments in Microsoft Word 2010.

Applies to: Office 2010 | VBA | Word 2010

In this article
Add the Code to the Visual Basic Editor
Test the Solution
Next Steps

Published:   June 2011

Provided by:    Frank Rice, Microsoft Corporation

Microsoft Word 2010 allows you to export ranges of text as fragments. You can them import these fragments and use them in any document. In this topic, you programmatically export a fragment, modify its format, and then import the fragment. To complete this task, you must do the following:

  • Add the Code to the Visual Basic Editor

  • Test the Solution

Add the Code to the Visual Basic Editor

In this task, you add programming code to the Visual Basic Editor.

To add code to the Visual Basic Editor

  1. Start Word.

  2. On the Developer tab, click Visual Basic. This opens the Visual Basic Editor.

    Note

    If you do not see the Developer tab in Word 2010, click the File tab, and then click Options. In the categories pane, click Customize Ribbon, select Developer, and then click OK.

  3. In the Project pane, click ThisDocument.

  4. Paste or type the following Microsoft Visual Basic for Applications (VBA) code into the module window.

    Sub RangeExportImportFragments()
        ' Word 2007 and later allows you to export ranges of text as a fragments.
        ' You can them reimport these fragments and use them in any document.
    
        ' Given the sample document with 5 paragraphs, try exporting a fragment,
        ' then modifying the format and reimporting the fragment to see the behavior.
    
        ' Change this path to match your own situation.
        Const FRAGMENT_FILE As String = "C:\Temp\Fragment.docx"
    
        Dim rng As Range
        Set rng = Range(15, 150)
        rng.Bold = True
    
        rng.ExportFragment FRAGMENT_FILE, wdFormatDocumentDefault
    
        ' Take a moment and load the fragment file into Microsoft Word.
        ' It should load like any other document.
    
        ' Set formatting back to normal.
        rng.Bold = False
    
        ' Although the second paramter indicates style behavior for the incoming
        ' fragment, it doesn't appear to make any different which option
        ' you choose. Both True and False give the same result. If False, the
        ' fragment should use the formatting from the original document, not the
        ' current document, but this doesn't appear to be the case. The ImportFragment
        ' method uses the formatting from the source document, no matter how this
        ' parameter has been set:
        Words(1).ImportFragment FRAGMENT_FILE, False
        Words(100).ImportFragment FRAGMENT_FILE, True
    End Sub
    

Test the Solution

In this task, you add text to a document and then step through the VBA code that exports a range of text, manipulates its format, and then imports the text into the same document.

To step through the code

  1. In the document, type the following command (without the quotes) to add five paragraphs of three sentences each.

    "=rand(5,3)"

  2. Drag the Visual Basic Editor window to the right side of your monitor.

  3. Drag the Word window to the left side of your monitor and adjust the windows until you can see them both.

  4. Place the cursor in the RangeExportImportFragments module and press F8 to step through the code line-by-line and watch the code behavior.

Next Steps