The Problem With Using Source Code in Word

Programmers write software programs using languages such as Java, C++, and HTML. Programming languages use different formatting and symbols from regular languages, so pasting a snippet of code into Word from a programming application causes errors such as text reformatting, indentation shifts, link creation, and misspellings.

Given how Microsoft Word structures documents, inserting and working with source code is more difficult than working in a dedicated code editor. However, document embeds create a container that protects source code from being reformatted.

One way to avoid these formatting issues is to paste the source code into a separate document within the main Word document.

Embed a Second Document Into a Word Document

Here’s how to paste source code into a Word document using a second embedded document.

Open the target document in Microsoft Word and place the cursor where the source code will appear. Select Insert. In the Text group, select Object. In the Object dialog box, select the Create New tab. In the Object type list, Select Microsoft Word Document. In Word 2007, select OpenDocument Text. Clear the Display as icon check box. Select OK. A new document opens, titled Document in [target document file name]. Save the document in the same folder as the target document. Copy and paste the source code into the new document. Word automatically ignores the spaces, tabs, and other formatting problems. Spelling errors and grammatical errors are highlighted in the document, but these errors are ignored when the code is inserted in the original document. Save and close the source code document. The source code appears in the main document. Resume work on the main document.

Using Different Paste Types in Word

The most up-to-date versions of Word handle code better than they used to. Word for Microsoft 365 supports several forms of pasting, including with and without source formatting. So pasting a block of code from, for example, Microsoft Visual Studio Code will look different based on the paste type. If you select Paste Special, each of the three options yields a different result:

Unformatted Text: All code is pasted as unformatted, so you’ll lose indenting, color, typeface, and related contextual clues. HTML Format: From VSC, a paste-as-HTML renders what appears to be a photo of the code, complete with the text editor’s background color. This code block is editable, and you can remove the background color in the Paragraph Fill menu option. Unformatted Unicode Text: Pastes the text as is but strips the text and background colors. Re-format the code as needed.