Home | Tips | Library | Other Authors | Other WP Sites | Writer's Links | Contact | Site Map | Donate

Barry MacDonnell's
Toolbox for WordPerfect

Macros, tips, and templates for Corel® WordPerfect® for Windows®
© Copyright 1996-2021 by Barry MacDonnell. All Rights Reserved.

Page updated Aug 15, 2014

Convert cross reference numbers.wcm - A macro that converts displayed cross reference numeric values into plain text characters

Download ConvertXRefNumbers.zip
(v1.01; 08/05/2014; 13,166 bytes)

Written in WordPerfect X7 but should work in other versions.

WordPerfect 11 users: See important information about using macros in the first release of WP11 ( at the top of this page.

Downloading, Documentation, Modifications, and Support

Disclaimer, Distribution, and Privacy Policies

Some related pages containing tools and tips on cross references

Find broken cross references (macro)

Footnotes and endnotes

Using WordPerfect counters

Graphic tips

Why some hyperlinks (hypertext links) can fail

Starting, stopping, and toggling the automatic numbering (and bullet) feature


The following menu choices refer to the <WordPerfect> menu (right-click on the top menu bar for a choice of menu).

If you use a <Microsoft Word> menu, the choices might be absent from your menu (but not from the program), or they might be found under another menu selection. See here for more.


WordPerfect cross references are created with special format codes. Sometimes they do not translate well when the document is saved in other formats. This macro converts their displayed numeric values into plain text characters.

A little background information from WPX7 Help ("Working with cross references"):

"... Cross-references are comprised of a target and a reference. The target is the item or text to which you are referring: the page number, figure, or footnote. The reference is the document text that you use to refer to the page number, figure, or footnote; it often displays as "See page 23."

[N.B.: The user must type the "See page " characters into the document, and then insert the [Ref] code using the Reference Tools dialog. The code will display the actual number when all references have been Generated (see Instructions below).]

... You can cross-reference page numbers and chapter numbers, footnote and endnote numbers, caption numbers, graphics boxes, counter numbers, and paragraph and outline numbers. In order to create a cross-reference, you must mark first the target and then the reference. Before you generate a document, the cross-references are represented by question marks. When you generate the document, the cross-reference numbers display.

... For advanced cross-referencing, you can cross-reference a single target with more than one reference type (for example, “See page 23, figure 2”) and one or more targets with the same reference type (for example, “See pages 10, 24, 29”). [Ed.: To do this you can use the same named Target in multiple locations, including inside paragraph styles. If you do, the reference will display the references to them as separate numbers (as mentioned).]


(1) Make a backup of the document first.

(Always a good idea!) You can also use File, Save As immediately after playing the macro.

(2) Generate the document containing cross references with Tools> Reference> Generate before playing this macro to ensure that all cross reference codes display a number and not a question mark ("?") indicator.

Important: After generating, if you still see "?" indicators they might indicate broken cross references. You can play the author's "Find broken cross references" macro to locate broken cross references so that you can fix them. (Some might exist and not have been noticed, especially if they were not hyperlinked or they are in a small font.) Then play this macro again to convert any new cross reference numbers.

(3) Download the macro to your computer (if you need help, see the "Downloading..." link in the box in the left column). Then play the macro.

When you play this macro it searches for instances of all of the nine types of cross-reference [Ref...] codes. When any is found, the [Ref] code at that location is selected, deleted, and then immediately pasted back in place as Unformatted text. This method turns the displayed numerical value of the [Ref] code into an ordinary text character. Then the macro searches for the next code, etc. When it has finished it will display a message.