Converting All Footnotes to Text (Chapter 7.2.3)

Post date: May 02, 2014 4:59:30 PM

Since self-publishing programs do not take kindly to Word footnotes, you need to convert all of them to text. One way is to convert them all to endnotes, then copy them to text. Word provides functions to convert all footnotes to endnotes and vice-verse.

AR: Click References | Footnotes dialog launcher (the tiny arrow in the bottom right corner of the Footnotes group.

BR: Click Insert | Reference | Footnotes.

In the Footnote and Endnote dialog box click [Convert].

Click the a radio button to convert footnotes to endnotes, endnotes to footnotes, or converting both to the other at the same time by clicking Swap footnotes and endnotes.

You can convert endnotes to text as described in chapter 7.2.3. If, instead, you want to change all footnotes to in-line text, the following code from techsupportforum.com will do the trick.

Sub ConvertFootNotesToText()

Dim afootnote As Footnote

ActiveDocument.Range.InsertParagraphAfter

Selection.GoTo What:=wdGoToLine, Which:=wdGoToLast

Selection.GoTo What:=wdGoToBookmark, Name:="\Para"

Selection.Style = wdStyleNormal

ActiveDocument.GoTo What:=wdGoToLine, Which:=wdGoToFirst

For Each afootnote In ActiveDocument.Footnotes

Selection.GoTo What:=wdGoToFootnote, Count:=afootnote.Index

Selection.GoTo What:=wdGoToBookmark, Name:="\HeadingLevel"

Selection.MoveEnd Unit:=wdCharacter, Count:=-1

Selection.Collapse Direction:=wdCollapseEnd

Selection.Range.InsertAfter _

vbCr & "x" & afootnote.Index & "x " & afootnote.Range

Selection.GoTo What:=wdGoToLine, Which:=wdGoToNext

Selection.GoTo What:=wdGoToBookmark, Name:="\Para"

Selection.Style = wdStyleNormal

afootnote.Reference.InsertBefore "x" & afootnote.Index & "x"

Next afootnote

For Each afootnote In ActiveDocument.Footnotes

afootnote.Reference.Delete

Next afootnote

Selection.Find.ClearFormatting

Selection.Find.Replacement.ClearFormatting

With Selection.Find.Replacement.Font

.Superscript = True

End With

With Selection.Find

.Text = "(x)([0-9]{1,})(x)"

.Replacement.Text = "\2"

.Forward = True

.Wrap = wdFindContinue

.Format = True

.MatchWildcards = True

End With

Selection.Find.Execute Replace:=wdReplaceAll

ActiveDocument.GoTo What:=wdGoToLine, Which:=wdGoToFirst

End Sub

Depending on your regional settings the separator for wildcard occurrences may be a semi-colon. If the at the end you are left with reference numbers surrounded by "x," try "{1;}" instead of "{1,}."