Note October 2011 - This page is deprecated (old and out-of-date). Please go here to see this macro corrected.
http://www.makeathewordmodule.com/index.php?title=Main_Page
What this macro does.
In a page full of Bible references in Roman numeral style, this macro will try to convert these to standard e-Sword reference style.
Example
John 3. xvi will be changed to John 3:16.
It does not work on the chapter part of the reference yet, but in the old books I have run across that I need to use this on, they seldom if ever put chapter references in roman numerals. It was always the verse reference. This macro will also try to handle some weird stuff, like a period instead of a semicolon.
How it works
The macro is just a bunch of substitutions (search and replace) using Regex Regular Expressions to do the brute work. Note that I had to rearrange the order so that it would not pick up partials, for example,
John 3. iii has to come after John 3. xviii. If you don't do this like I did it, then you will get a corruption, John 3. xv3. So I have rearranged the order. Also the prefixes for certain books are problems (I John) where the I is 1.
I have not tried to make it book specific, just general roman numbers, so you will need to run my versify on the document after running this.
As a note, I need this functionality of this macro, and this is the only way I have found to get it. If anybody has any ideas about a different way to do this, tell me and I will investigate it. If this macro doesn't convert some roman number, please send me the original text in your document (just the complete verse reference and the word or punctuation after the verse) and tell me that it didn't convert it. There are a few that it doesn't catch, but I didn't write them down when I found them, and now 100s of conversions later, I cannot remember what they are.
What roman numeral this macro won't convert.
Please note that the following verse reference is almost impossible to convert
John 1. i
The reason for this is that I cannot search for an "I" and convert it to a "1" because "I" is a part of speech in English, so you are on your own on that one.
The macro is below. Cut and paste this into your MS Word on the Tools, Macro, Visual Basic Editor. Call it by Alt-F8, then select Roman from the macros in Word (in the popup window on Alt F8 Run Macro dialog box).
Sub Roman()
' Roman Numerals for these books will not be processed: Rev, Lev, Exo, Isa
' Ill-Formed Numbers 2nd before books
StatusBar = "DCox: Replacing wrong format II, III errors"
' Replacing iii for 3
Call DoFindReplace("([iI1l]{1}[iI1l]{1}[iI1l]{1}[Jj .]{1,3}[Oo]{1}[HhNn
.,]{1,4})1:([0-9]{1,3})", "3John 1:\2", True, False, False)
Call DoFindReplace("([iI1l]{1}[iI1l]{1}[iI1l]{1}[Jj .]{1,3}[Oo]{1}[HhNn
.,]{1,4})([0-9]{1,3})", "3John 1:\2", True, False, False)
Call DoFindReplace("([iI1l]{1}[iI1l]{1}[Jj .]{1,3}[Oo]{1}[HhNn
.,]{1,4})1:([0-9]{1,3})", "2John 1:\2", True, False, False)
Call DoFindReplace("([iI1l]{1}[iI1l]{1}[Jj .]{1,3}[Oo]{1}[HhNn
.,]{1,4})([0-9]{1,3})[ .,;]{1}", "2John 1:\2", True, False, False)
Call DoFindReplace("([iI1l]{1}[Jj .]{1,3}[Oo]{1}[HhNn
.,]{1,4})([0-9]{1,3}):([0-9-]{1,7})", "1John \2:\3", True, False, False)
Call DoFindReplace("([iI1l]{1}[Jj .]{1,3}[HhNn
.,]{1,4})([0-9]{1,3}):([0-9-]{1,7})", "1John \2:\3", True, False, False)
' Fix Mixed numbers like this i8, i6
Call DoFindReplace(" i([0-9]{1})", " 1\1", False, True, False)
' Fix final i-1 verse. like Exod 31. i. or 31. i?
Call DoFindReplace(". i([.;?\),;]{1})", ". 1\1", True, True, False)
' Fix numbers with a period between them like Jer. 1. 4
Call DoFindReplace("([0-9]{1,3}). ([0-9]{1,3})", "\1:\2", True, True, False)
' Roman Numerals
' In general the digits that have a negative preceding digit must come before
' Example iv (4) must come before v (5)
' Affected numbers ix (9), iv(4), xl(40-49), xc(90-99), cxl(140-149)
Call DoFindReplace("([. ]{1,2})i. ", "\11. ", True, False, False)
Call DoFindReplace(" i[:.]{1,2}([0-9-]{1,7})", " 1:\1", True, False, False)
Call DoFindReplace(" ([0-9-]{1,7}[:.]{1,2}i )", " \1:1", True, False, False)
StatusBar = "DCox: Replacing Roman Numerals 150"
Call DoFindReplace(" XCVIII[ ,.]{1,2}([0-9-]{1,7})", " 98:\1", True, False,
False)
Call DoFindReplace(" xcviii[ ,.]{1,2}([0-9-]{1,7})", " 98:\1", True, False,
False)
Call DoFindReplace(" XCVII[ ,.]{1,2}([0-9-]{1,7})", " 97:\1", True, False,
False)
Call DoFindReplace(" xcvii[ ,.]{1,2}([0-9-]{1,7})", " 97:\1", True, False,
False)
Call DoFindReplace(" XCVI[ ,.]{1,2}([0-9-]{1,7})", " 96:\1", True, False, False)
Call DoFindReplace(" xcvi[ ,.]{1,2}([0-9-]{1,7})", " 96:\1", True, False, False)
Call DoFindReplace(" XCV[ ,.]{1,2}([0-9-]{1,7})", " 95:\1", True, False, False)
Call DoFindReplace(" xcv[ ,.]{1,2}([0-9-]{1,7})", " 95:\1", True, False, False)
Call DoFindReplace(" XCIX[ ,.]{1,2}([0-9-]{1,7})", " 99:\1", True, False, False)
Call DoFindReplace(" xcix[ ,.]{1,2}([0-9-]{1,7})", " 99:\1", True, False, False)
Call DoFindReplace(" XCIV[ ,.]{1,2}([0-9-]{1,7})", " 94:\1", True, False, False)
Call DoFindReplace(" xciv[ ,.]{1,2}([0-9-]{1,7})", " 94:\1", True, False, False)
Call DoFindReplace(" XCIII[ ,.]{1,2}([0-9-]{1,7})", " 93:\1", True, False,
False)
Call DoFindReplace(" xciii[ ,.]{1,2}([0-9-]{1,7})", " 93:\1", True, False,
False)
Call DoFindReplace(" XCII[ ,.]{1,2}([0-9-]{1,7})", " 92:\1", True, False, False)
Call DoFindReplace(" xcii[ ,.]{1,2}([0-9-]{1,7})", " 92:\1", True, False, False)
Call DoFindReplace(" XCI[ ,.]{1,2}([0-9-]{1,7})", " 91:\1", True, False, False)
Call DoFindReplace(" xci[ ,.]{1,2}([0-9-]{1,7})", " 91:\1", True, False, False)
Call DoFindReplace(" XC[ ,.]{1,2}([0-9-]{1,7})", " 90:\1", True, False, False)
Call DoFindReplace(" xc[ ,.]{1,2}([0-9-]{1,7})", " 90:\1", True, False, False)
StatusBar = "DCox: Replacing Roman Numerals 140"
Call DoFindReplace(" CXXXVIII[ ,.]{1,2}([0-9-]{1,7})", " 138:\1", True, False,
False)
Call DoFindReplace(" cxxxviii[ ,.]{1,2}([0-9-]{1,7})", " 138:\1", True, False,
False)
Call DoFindReplace(" CXXXVII[ ,.]{1,2}([0-9-]{1,7})", " 137:\1", True, False,
False)
Call DoFindReplace(" cxxxvii[ ,.]{1,2}([0-9-]{1,7})", " 137:\1", True, False,
False)
Call DoFindReplace(" CXXXVI[ ,.]{1,2}([0-9-]{1,7})", " 136:\1", True, False,
False)
Call DoFindReplace(" cxxxvi[ ,.]{1,2}([0-9-]{1,7})", " 136:\1", True, False,
False)
Call DoFindReplace(" CXXXV[ ,.]{1,2}([0-9-]{1,7})", " 135:\1", True, False,
False)
Call DoFindReplace(" cxxxv[ ,.]{1,2}([0-9-]{1,7})", " 135:\1", True, False,
False)
Call DoFindReplace(" CXXXIX[ ,.]{1,2}([0-9-]{1,7})", " 139:\1", True, False,
False)
Call DoFindReplace(" cxxxix[ ,.]{1,2}([0-9-]{1,7})", " 139:\1", True, False,
False)
Call DoFindReplace(" CXXXIV[ ,.]{1,2}([0-9-]{1,7})", " 134:\1", True, False,
False)
Call DoFindReplace(" cxxxiv[ ,.]{1,2}([0-9-]{1,7})", " 134:\1", True, False,
False)
Call DoFindReplace(" CXXXIII[ ,.]{1,2}([0-9-]{1,7})", " 133:\1", True, False,
False)
Call DoFindReplace(" cxxxiii[ ,.]{1,2}([0-9-]{1,7})", " 133:\1", True, False,
False)
Call DoFindReplace(" CXXXII[ ,.]{1,2}([0-9-]{1,7})", " 132:\1", True, False,
False)
Call DoFindReplace(" cxxxii[ ,.]{1,2}([0-9-]{1,7})", " 132:\1", True, False,
False)
Call DoFindReplace(" CXXXI[ ,.]{1,2}([0-9-]{1,7})", " 131:\1", True, False,
False)
Call DoFindReplace(" cxxxi[ ,.]{1,2}([0-9-]{1,7})", " 131:\1", True, False,
False)
Call DoFindReplace(" CXXX[ ,.]{1,2}([0-9-]{1,7})", " 130:\1", True, False,
False)
Call DoFindReplace(" cxxx[ ,.]{1,2}([0-9-]{1,7})", " 130:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 130"
Call DoFindReplace(" CXXVIII[ ,.]{1,2}([0-9-]{1,7})", " 128:\1", True, False,
False)
Call DoFindReplace(" cxxviii[ ,.]{1,2}([0-9-]{1,7})", " 128:\1", True, False,
False)
Call DoFindReplace(" CXXVII[ ,.]{1,2}([0-9-]{1,7})", " 127:\1", True, False,
False)
Call DoFindReplace(" cxxvii[ ,.]{1,2}([0-9-]{1,7})", " 127:\1", True, False,
False)
Call DoFindReplace(" CXXVI[ ,.]{1,2}([0-9-]{1,7})", " 126:\1", True, False,
False)
Call DoFindReplace(" cxxvi[ ,.]{1,2}([0-9-]{1,7})", " 126:\1", True, False,
False)
Call DoFindReplace(" CXXV[ ,.]{1,2}([0-9-]{1,7})", " 125:\1", True, False,
False)
Call DoFindReplace(" cxxv[ ,.]{1,2}([0-9-]{1,7})", " 125:\1", True, False,
False)
Call DoFindReplace(" CXXIX[ ,.]{1,2}([0-9-]{1,7})", " 129:\1", True, False,
False)
Call DoFindReplace(" cxxix[ ,.]{1,2}([0-9-]{1,7})", " 129:\1", True, False,
False)
Call DoFindReplace(" CXXIV[ ,.]{1,2}([0-9-]{1,7})", " 124:\1", True, False,
False)
Call DoFindReplace(" cxxiv[ ,.]{1,2}([0-9-]{1,7})", " 124:\1", True, False,
False)
Call DoFindReplace(" CXXIII[ ,.]{1,2}([0-9-]{1,7})", " 123:\1", True, False,
False)
Call DoFindReplace(" cxxiii[ ,.]{1,2}([0-9-]{1,7})", " 123:\1", True, False,
False)
Call DoFindReplace(" CXXII[ ,.]{1,2}([0-9-]{1,7})", " 122:\1", True, False,
False)
Call DoFindReplace(" cxxii[ ,.]{1,2}([0-9-]{1,7})", " 122:\1", True, False,
False)
Call DoFindReplace(" CXXI[ ,.]{1,2}([0-9-]{1,7})", " 121:\1", True, False,
False)
Call DoFindReplace(" cxxi[ ,.]{1,2}([0-9-]{1,7})", " 121:\1", True, False,
False)
Call DoFindReplace(" CXX[ ,.]{1,2}([0-9-]{1,7})", " 120:\1", True, False, False)
Call DoFindReplace(" cxx[ ,.]{1,2}([0-9-]{1,7})", " 120:\1", True, False, False)
StatusBar = "DCox: Replacing Roman Numerals 120"
Call DoFindReplace(" CXVIII[ ,.]{1,2}([0-9-]{1,7})", " 118:\1", True, False,
False)
Call DoFindReplace(" cxviii[ ,.]{1,2}([0-9-]{1,7})", " 118:\1", True, False,
False)
Call DoFindReplace(" CXVII[ ,.]{1,2}([0-9-]{1,7})", " 117:\1", True, False,
False)
Call DoFindReplace(" cxvii[ ,.]{1,2}([0-9-]{1,7})", " 117:\1", True, False,
False)
Call DoFindReplace(" CXV[ ,.]{1,2}([0-9-]{1,7})", " 115:\1", True, False, False)
Call DoFindReplace(" cxv[ ,.]{1,2}([0-9-]{1,7})", " 115:\1", True, False, False)
Call DoFindReplace(" CXIX[ ,.]{1,2}([0-9-]{1,7})", " 119:\1", True, False,
False)
Call DoFindReplace(" cxix[ ,.]{1,2}([0-9-]{1,7})", " 119:\1", True, False,
False)
Call DoFindReplace(" CXIV[ ,.]{1,2}([0-9-]{1,7})", " 114:\1", True, False,
False)
Call DoFindReplace(" cxiv[ ,.]{1,2}([0-9-]{1,7})", " 114:\1", True, False,
False)
Call DoFindReplace(" CXIII[ ,.]{1,2}([0-9-]{1,7})", " 113:\1", True, False,
False)
Call DoFindReplace(" cxiii[ ,.]{1,2}([0-9-]{1,7})", " 113:\1", True, False,
False)
Call DoFindReplace(" CXII[ ,.]{1,2}([0-9-]{1,7})", " 112:\1", True, False,
False)
Call DoFindReplace(" cxii[ ,.]{1,2}([0-9-]{1,7})", " 112:\1", True, False,
False)
Call DoFindReplace(" CXI[ ,.]{1,2}([0-9-]{1,7})", " 111:\1", True, False, False)
Call DoFindReplace(" cxi[ ,.]{1,2}([0-9-]{1,7})", " 111:\1", True, False, False)
StatusBar = "DCox: Replacing Roman Numerals 110"
Call DoFindReplace("[ .]{1}CX[ ,.]{1,2}([0-9-]{1,7})", " 110:\1", True, False,
False)
Call DoFindReplace("[ .]{1}cx[ ,.]{1,2}([0-9-]{1,7})", " 110:\1", True, False,
False)
Call DoFindReplace("[ .]{1}CVIII[ ,.]{1,2}([0-9-]{1,7})", " 113:\1", True,
False, False)
Call DoFindReplace("[ .]{1}cviii[ ,.]{1,2}([0-9-]{1,7})", " 113:\1", True,
False, False)
Call DoFindReplace("[ .]{1}CVII[ ,.]{1,2}([0-9-]{1,7})", " 112:\1", True, False,
False)
Call DoFindReplace("[ .]{1}cvii[ ,.]{1,2}([0-9-]{1,7})", " 112:\1", True, False,
False)
Call DoFindReplace("[ .]{1}CV[ ,.]{1,2}([0-9-]{1,7})", " 105:\1", True, False,
False)
Call DoFindReplace("[ .]{1}cv[ ,.]{1,2}([0-9-]{1,7})", " 105:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 100"
Call DoFindReplace("[ .]{1}CXLVIII[ ,.]{1,2}([0-9-]{1,7})", " 148:\1", True,
False, False)
Call DoFindReplace("[ .]{1}cxkviii[ ,.]{1,2}([0-9-]{1,7})", " 148:\1", True,
False, False)
Call DoFindReplace("[ .]{1}CXLVII[ ,.]{1,2}([0-9-]{1,7})", " 147:\1", True,
False, False)
Call DoFindReplace("[ .]{1}cxlvii[ ,.]{1,2}([0-9-]{1,7})", " 147:\1", True,
False, False)
Call DoFindReplace("[ .]{1}CXLVI[ ,.]{1,2}([0-9-]{1,7})", " 146:\1", True,
False, False)
Call DoFindReplace("[ .]{1}cxlvi[ ,.]{1,2}([0-9-]{1,7})", " 146:\1", True,
False, False)
Call DoFindReplace("[ .]{1}CXLV[ ,.]{1,2}([0-9-]{1,7})", " 145:\1", True, False,
False)
Call DoFindReplace("[ .]{1}cxlv[ ,.]{1,2}([0-9-]{1,7})", " 145:\1", True, False,
False)
Call DoFindReplace("[ .]{1}CXLIX[ ,.]{1,2}([0-9-]{1,7})", " 149:\1", True,
False, False)
Call DoFindReplace("[ .]{1}cxlix[ ,.]{1,2}([0-9-]{1,7})", " 149:\1", True,
False, False)
Call DoFindReplace("[ .]{1}CXLIV[ ,.]{1,2}([0-9-]{1,7})", " 144:\1", True,
False, False)
Call DoFindReplace("[ .]{1}cxliv[ ,.]{1,2}([0-9-]{1,7})", " 144:\1", True,
False, False)
Call DoFindReplace("[ .]{1}CXLIII[ ,.]{1,2}([0-9-]{1,7})", " 143:\1", True,
False, False)
Call DoFindReplace("[ .]{1}cxliii[ ,.]{1,2}([0-9-]{1,7})", " 143:\1", True,
False, False)
Call DoFindReplace("[ .]{1}CXLII[ ,.]{1,2}([0-9-]{1,7})", " 142:\1", True,
False, False)
Call DoFindReplace("[ .]{1}cxlii[ ,.]{1,2}([0-9-]{1,7})", " 142:\1", True,
False, False)
Call DoFindReplace("[ .]{1}CXLI[ ,.]{1,2}([0-9-]{1,7})", " 141:\1", True, False,
False)
Call DoFindReplace("[ .]{1}cxli[ ,.]{1,2}([0-9-]{1,7})", " 141:\1", True, False,
False)
Call DoFindReplace("[ .]{1}CXL[ ,.]{1,2}([0-9-]{1,7})", " 140:\1", True, False,
False)
Call DoFindReplace("[ .]{1}cxl[ ,.]{1,2}([0-9-]{1,7})", " 140:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 90"
Call DoFindReplace("[ .]{1}CL[ ,.]{1,2}([0-9-]{1,7})", " 150:\1", True, False,
False)
Call DoFindReplace("[ .]{1}cl[ ,.]{1,2}([0-9-]{1,7})", " 150:\1", True, False,
False)
Call DoFindReplace("[ .]{1}CIX[ ,.]{1,2}([0-9-]{1,7})", " 109:\1", True, False,
False)
Call DoFindReplace("[ .]{1}cix[ ,.]{1,2}([0-9-]{1,7})", " 109:\1", True, False,
False)
Call DoFindReplace("[ .]{1}CIV[ ,.]{1,2}([0-9-]{1,7})", " 104:\1", True, False,
False)
Call DoFindReplace("[ .]{1}civ[ ,.]{1,2}([0-9-]{1,7})", " 104:\1", True, False,
False)
Call DoFindReplace("[ .]{1}CIII[ ,.]{1,2}([0-9-]{1,7})", " 103:\1", True, False,
False)
Call DoFindReplace("[ .]{1}ciii[ ,.]{1,2}([0-9-]{1,7})", " 103:\1", True, False,
False)
Call DoFindReplace("[ .]{1}CII[ ,.]{1,2}([0-9-]{1,7})", " 102:\1", True, False,
False)
Call DoFindReplace("[ .]{1}cii[ ,.]{1,2}([0-9-]{1,7})", " 102:\1", True, False,
False)
Call DoFindReplace("[ .]{1}CI[ ,.]{1,2}([0-9-]{1,7})", " :101\1", True, False,
False)
Call DoFindReplace("[ .]{1}ci[ ,.]{1,2}([0-9-]{1,7})", " 101:\1", True, False,
False)
Call DoFindReplace("[ .]{1}C[ ,.]{1,2}([0-9-]{1,7})", " 100:\1", True, False,
False)
Call DoFindReplace("[ .]{1}c[ ,.]{1,2}([0-9-]{1,7})", " 100:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 80"
Call DoFindReplace("[ .]{1}XLVIII[ ,.]{1,2}([0-9-]{1,7})", " 48:\1", True,
False, False)
Call DoFindReplace("[ .]{1}xlviii[ ,.]{1,2}([0-9-]{1,7})", " 48:\1", True,
False, False)
Call DoFindReplace("[ .]{1}XLVII[ ,.]{1,2}([0-9-]{1,7})", " 47:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xlvii[ ,.]{1,2}([0-9-]{1,7})", " 47:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XLVI[ ,.]{1,2}([0-9-]{1,7})", " 46:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xlvi[ ,.]{1,2}([0-9-]{1,7})", " 46:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XLIII[ ,.]{1,2}([0-9-]{1,7})", " 43:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xliii[ ,.]{1,2}([0-9-]{1,7})", " 43:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 70"
Call DoFindReplace("[ .]{1}XLV[ ,.]{1,2}([0-9-]{1,7})", " 45:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xlv[ ,.]{1,2}([0-9-]{1,7})", " 45:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XLIX[ ,.]{1,2}([0-9-]{1,7})", " 49:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xlix[ ,.]{1,2}([0-9-]{1,7})", " 49:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XLIV[ ,.]{1,2}([0-9-]{1,7})", " 44:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xliv[ ,.]{1,2}([0-9-]{1,7})", " 44:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXIII[ ,.]{1,2}([0-9-]{1,7})", " 43:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxiii[ ,.]{1,2}([0-9-]{1,7})", " 43:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXII[ ,.]{1,2}([0-9-]{1,7})", " 42:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxii[ ,.]{1,2}([0-9-]{1,7})", " 42:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXI[ ,.]{1,2}([0-9-]{1,7})", " 41:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxi[ ,.]{1,2}([0-9-]{1,7})", " 41:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LX[ ,.]{1,2}([0-9-]{1,7})", " 40:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lx[ ,.]{1,2}([0-9-]{1,7})", " 40:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 60"
Call DoFindReplace("[ .]{1}LXXXVIII[ ,.]{1,2}([0-9-]{1,7})", " 88:\1", True,
False, False)
Call DoFindReplace("[ .]{1}lxxxviii[ ,.]{1,2}([0-9-]{1,7})", " 88:\1", True,
False, False)
Call DoFindReplace("[ .]{1}LXXXVII[ ,.]{1,2}([0-9-]{1,7})", " 87:\1", True,
False, False)
Call DoFindReplace("[ .]{1}lxxxvii[ ,.]{1,2}([0-9-]{1,7})", " 87:\1", True,
False, False)
Call DoFindReplace("[ .]{1}LXXXV[ ,.]{1,2}([0-9-]{1,7})", " 85:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxxxv[ ,.]{1,2}([0-9-]{1,7})", " 85:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXXXIX[ ,.]{1,2}([0-9-]{1,7})", " 89:\1", True,
False, False)
Call DoFindReplace("[ .]{1}lxxxix[ ,.]{1,2}([0-9-]{1,7})", " 89:\1", True,
False, False)
Call DoFindReplace("[ .]{1}LXXXIV[ ,.]{1,2}([0-9-]{1,7})", " 84:\1", True,
False, False)
Call DoFindReplace("[ .]{1}lxxxiv[ ,.]{1,2}([0-9-]{1,7})", " 84:\1", True,
False, False)
Call DoFindReplace("[ .]{1}LXXXIII[ ,.]{1,2}([0-9-]{1,7})", " 83:\1", True,
False, False)
Call DoFindReplace("[ .]{1}lxxxiii[ ,.]{1,2}([0-9-]{1,7})", " 83:\1", True,
False, False)
Call DoFindReplace("[ .]{1}LXXXII[ ,.]{1,2}([0-9-]{1,7})", " 82:\1", True,
False, False)
Call DoFindReplace("[ .]{1}lxxxii[ ,.]{1,2}([0-9-]{1,7})", " 82:\1", True,
False, False)
Call DoFindReplace("[ .]{1}LXXXI[ ,.]{1,2}([0-9-]{1,7})", " 81:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxxxi[ ,.]{1,2}([0-9-]{1,7})", " 81:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXXX[ ,.]{1,2}([0-9-]{1,7})", " 80:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxxx[ ,.]{1,2}([0-9-]{1,7})", " 80:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXXVIII[ ,.]{1,2}([0-9-]{1,7})", " 78:\1", True,
False, False)
Call DoFindReplace("[ .]{1}lxxviii[ ,.]{1,2}([0-9-]{1,7})", " 78:\1", True,
False, False)
Call DoFindReplace("[ .]{1}LXXVII[ ,.]{1,2}([0-9-]{1,7})", " 77:\1", True,
False, False)
Call DoFindReplace("[ .]{1}lxxvii[ ,.]{1,2}([0-9-]{1,7})", " 77:\1", True,
False, False)
Call DoFindReplace("[ .]{1}LXXVI[ ,.]{1,2}([0-9-]{1,7})", " 76:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxxvi[ ,.]{1,2}([0-9-]{1,7})", " 76:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXXV[ ,.]{1,2}([0-9-]{1,7})", " 75:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxxv[ ,.]{1,2}([0-9-]{1,7})", " 75:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 50"
Call DoFindReplace("[ .]{1}LXXIX[ ,.]{1,2}([0-9-]{1,7})", " 79:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxxix[ ,.]{1,2}([0-9-]{1,7})", " 79:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXXIV[ ,.]{1,2}([0-9-]{1,7})", " 74:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxxiv[ ,.]{1,2}([0-9-]{1,7})", " 74:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXXIII[ ,.]{1,2}([0-9-]{1,7})", " 73:\1", True,
False, False)
Call DoFindReplace("[ .]{1}lxxiii[ ,.]{1,2}([0-9-]{1,7})", " 73:\1", True,
False, False)
Call DoFindReplace("[ .]{1}LXXII[ ,.]{1,2}([0-9-]{1,7})", " 72:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxxii[ ,.]{1,2}([0-9-]{1,7})", " 72:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXXI[ ,.]{1,2}([0-9-]{1,7})", " 71:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxxi[ ,.]{1,2}([0-9-]{1,7})", " 71:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXX[ ,.]{1,2}([0-9-]{1,7})", " 70:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxx[ ,.]{1,2}([0-9-]{1,7})", " 70:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXVIII[ ,.]{1,2}([0-9-]{1,7})", " 68:\1", True,
False, False)
Call DoFindReplace("[ .]{1}lxviii[ ,.]{1,2}([0-9-]{1,7})", " 68:\1", True,
False, False)
Call DoFindReplace("[ .]{1}LXVII[ ,.]{1,2}([0-9-]{1,7})", " 67:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxvii[ ,.]{1,2}([0-9-]{1,7})", " 67:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXVI[ ,.]{1,2}([0-9-]{1,7})", " 66:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxvi[ ,.]{1,2}([0-9-]{1,7})", " 66:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXV[ ,.]{1,2}([0-9-]{1,7})", " 65:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxv[ ,.]{1,2}([0-9-]{1,7})", " 65:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXIX[ ,.]{1,2}([0-9-]{1,7})", " 69:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxix[ ,.]{1,2}([0-9-]{1,7})", " 69:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXIV[ ,.]{1,2}([0-9-]{1,7})", " 64:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxiv[ ,.]{1,2}([0-9-]{1,7})", " 64:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 40"
Call DoFindReplace("[ .]{1}LXIII[ ,.]{1,2}([0-9-]{1,7})", " 63:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxiii[ ,.]{1,2}([0-9-]{1,7})", " 63:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXII[ ,.]{1,2}([0-9-]{1,7})", " 62:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxii[ ,.]{1,2}([0-9-]{1,7})", " 62:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXI[ ,.]{1,2}([0-9-]{1,7})", " 61:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxi[ ,.]{1,2}([0-9-]{1,7})", " 61:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LX[ ,.]{1,2}([0-9-]{1,7})", " 60:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lx[ ,.]{1,2}([0-9-]{1,7})", " 60:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LVIII[ ,.]{1,2}([0-9-]{1,7})", " 58:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lviii[ ,.]{1,2}([0-9-]{1,7})", " 58:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LVII[ ,.]{1,2}([0-9-]{1,7})", " 57:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lvii[ ,.]{1,2}([0-9-]{1,7})", " 57:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LVI[ ,.]{1,2}([0-9-]{1,7})", " 56:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lvi[ ,.]{1,2}([0-9-]{1,7})", " 56:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LIII[ ,.]{1,2}([0-9-]{1,7})", " 53:\1", True, False,
False)
Call DoFindReplace("[ .]{1}liii[ ,.]{1,2}([0-9-]{1,7})", " 53:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LII[ ,.]{1,2}([0-9-]{1,7})", " 52:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lii[ ,.]{1,2}([0-9-]{1,7})", " 52:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LI[ ,.]{1,2}([0-9-]{1,7})", " 51:\1", True, False,
False)
Call DoFindReplace("[ .]{1}li[ ,.]{1,2}([0-9-]{1,7})", " 51:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LV[ ,.]{1,2}([0-9-]{1,7})", " 55:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lv[ ,.]{1,2}([0-9-]{1,7})", " 55:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LIV[ ,.]{1,2}([0-9-]{1,7})", " 54:\1", True, False,
False)
Call DoFindReplace("[ .]{1}liv[ ,.]{1,2}([0-9-]{1,7})", " 54:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LIII[ ,.]{1,2}([0-9-]{1,7})", " 53:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 30"
Call DoFindReplace("[ .]{1}liii[ ,.]{1,2}([0-9-]{1,7})", " 53:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LII[ ,.]{1,2}([0-9-]{1,7})", " 52:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lii[ ,.]{1,2}([0-9-]{1,7})", " 52:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LI[ ,.]{1,2}([0-9-]{1,7})", " 51:\1", True, False,
False)
Call DoFindReplace("[ .]{1}li[ ,.]{1,2}([0-9-]{1,7})", " 51:\1", True, False,
False)
Call DoFindReplace("[ .]{1}L[ ,.]{1,2}([0-9-]{1,7})", " 50:\1", True, False,
False)
Call DoFindReplace("[ .]{1}l[ ,.]{1,2}([0-9-]{1,7})", " 50:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXIII[ ,.]{1,2}([0-9-]{1,7})", " 43:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxiii[ ,.]{1,2}([0-9-]{1,7})", " 43:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXII[ ,.]{1,2}([0-9-]{1,7})", " 42:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxii[ ,.]{1,2}([0-9-]{1,7})", " 42:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LXI[ ,.]{1,2}([0-9-]{1,7})", " 41:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lxi[ ,.]{1,2}([0-9-]{1,7})", " 41:\1", True, False,
False)
Call DoFindReplace("[ .]{1}LX[ ,.]{1,2}([0-9-]{1,7})", " 40:\1", True, False,
False)
Call DoFindReplace("[ .]{1}lx[ ,.]{1,2}([0-9-]{1,7})", " 40:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXXVIII[ ,.]{1,2}([0-9-]{1,7})", " 38:\1", True,
False, False)
Call DoFindReplace("[ .]{1}xxxviii[ ,.]{1,2}([0-9-]{1,7})", " 38:\1", True,
False, False)
Call DoFindReplace("[ .]{1}XXXVII[ ,.]{1,2}([0-9-]{1,7})", " 37:\1", True,
False, False)
Call DoFindReplace("[ .]{1}xxxvii[ ,.]{1,2}([0-9-]{1,7})", " 37:\1", True,
False, False)
Call DoFindReplace("[ .]{1}XXXVI[ ,.]{1,2}([0-9-]{1,7})", " 36:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxxvi[ ,.]{1,2}([0-9-]{1,7})", " 36:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXXIV[ ,.]{1,2}([0-9-]{1,7})", " 34:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxxiv[ ,.]{1,2}([0-9-]{1,7})", " 34:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXXV[ ,.]{1,2}([0-9-]{1,7})", " 35:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxxv[ ,.]{1,2}([0-9-]{1,7})", " 35:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 30"
Call DoFindReplace("[ .]{1}XXXIX[ ,.]{1,2}([0-9-]{1,7})", " 39:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxxix[ ,.]{1,2}([0-9-]{1,7})", " 39:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXXIV[ ,.]{1,2}([0-9-]{1,7})", " 34:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxxiv[ ,.]{1,2}([0-9-]{1,7})", " 34:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXXIII[ ,.]{1,2}([0-9-]{1,7})", " 33:\1", True,
False, False)
Call DoFindReplace("[ .]{1}xxxiii[ ,.]{1,2}([0-9-]{1,7})", " 33:\1", True,
False, False)
Call DoFindReplace("[ .]{1}XXXII[ ,.]{1,2}([0-9-]{1,7})", " 32:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxxii[ ,.]{1,2}([0-9-]{1,7})", " 32:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXXI[ ,.]{1,2}([0-9-]{1,7})", " 31:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxxi[ ,.]{1,2}([0-9-]{1,7})", " 31:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXX[ ,.]{1,2}([0-9-]{1,7})", " 30:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxx[ ,.]{1,2}([0-9-]{1,7})", " 30:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 20"
Call DoFindReplace("[ .]{1}XXVIII[ ,.]{1,2}([0-9-]{1,7})", " 28:\1", True,
False, False)
Call DoFindReplace("[ .]{1}xxviii[ ,.]{1,2}([0-9-]{1,7})", " 28:\1", True,
False, False)
Call DoFindReplace("[ .]{1}XXVII[ ,.]{1,2}([0-9-]{1,7})", " 27:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxvii[ ,.]{1,2}([0-9-]{1,7})", " 27:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXVI[ ,.]{1,2}([0-9-]{1,7})", " 26:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxvi[ ,.]{1,2}([0-9-]{1,7})", " 26:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXV[ ,.]{1,2}([0-9-]{1,7})", " 25:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxv[ ,.]{1,2}([0-9-]{1,7})", " 25:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXIX[ ,.]{1,2}([0-9-]{1,7})", " 29:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxix[ ,.]{1,2}([0-9-]{1,7})", " 29:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXIV[ ,.]{1,2}([0-9-]{1,7})", " 24:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxiv[ ,.]{1,2}([0-9-]{1,7})", " 24:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXIII[ ,.]{1,2}([0-9-]{1,7})", " 23:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxiii[ ,.]{1,2}([0-9-]{1,7})", " 23:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 10"
Call DoFindReplace("[ .]{1}XXII[ ,.]{1,2}([0-9-]{1,7})", " 22:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxii[ ,.]{1,2}([0-9-]{1,7})", " 22:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XXI[ ,.]{1,2}([0-9-]{1,7})", " 21:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xxi[ ,.]{1,2}([0-9-]{1,7})", " 21:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XX[ ,.]{1,2}([0-9-]{1,7})", " 20:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xx[ ,.]{1,2}([0-9-]{1,7})", " 20:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XVIII[ ,.]{1,2}([0-9-]{1,7})", " 18:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xviii[ ,.]{1,2}([0-9-]{1,7})", " 18:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XVII[ ,.]{1,2}([0-9-]{1,7})", " 17:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xvii[ ,.]{1,2}([0-9-]{1,7})", " 17:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XVI[ ,.]{1,2}([0-9-]{1,7})", " 16:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xvi[ ,.]{1,2}([0-9-]{1,7})", " 16:\1", True, False,
False)
StatusBar = "DCox: Replacing Roman Numerals 0"
Call DoFindReplace("[ .]{1}XV[ ,.]{1,2}([0-9-]{1,7})", " 15:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xv[ ,.]{1,2}([0-9-]{1,7})", " 15:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XIX[ ,.]{1,2}([0-9-]{1,7})", " 19:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xix[ ,.]{1,2}([0-9-]{1,7})", " 19:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XIV[ ,.]{1,2}([0-9-]{1,7})", " 14:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xiv[ ,.]{1,2}([0-9-]{1,7})", " 14:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XIII[ ,.]{1,2}([0-9-]{1,7})", " 13:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xiii[ ,.]{1,2}([0-9-]{1,7})", " 13:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XII[ ,.]{1,2}([0-9-]{1,7})", " 12:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xii[ ,.]{1,2}([0-9-]{1,7})", " 12:\1", True, False,
False)
Call DoFindReplace("[ .]{1}XI[ ,.]{1,2}([0-9-]{1,7})", " 11:\1", True, False,
False)
Call DoFindReplace("[ .]{1}xi[ ,.]{1,2}([0-9-]{1,7})", " 11:\1", True, False,
False)
Call DoFindReplace("[ .]{1}IX[ ,.]{1,2}([0-9-]{1,7})", " 9:\1", True, False,
False)
Call DoFindReplace("[ .]{1}ix[ ,.]{1,2}([0-9-]{1,7})", " 9:\1", True, False,
False)
Call DoFindReplace("[ .]{1}X[ ,.]{1,2}([0-9-]{1,7})", " 10:\1", True, False,
False)
Call DoFindReplace("[ .]{1}x[ ,.]{1,2}([0-9-]{1,7})", " 10:\1", True, False,
False)
Call DoFindReplace("[ .]{1}VIII[ ,.]{1,2}([0-9-]{1,7})", " 8:\1", True, False,
False)
Call DoFindReplace("[ .]{1}viii[ ,.]{1,2}([0-9-]{1,7})", " 8:\1", True, False,
False)
Call DoFindReplace("[ .]{1}VII[ ,.]{1,2}([0-9-]{1,7})", " 7:\1", True, False,
False)
Call DoFindReplace("[ .]{1}vii[ ,.]{1,2}([0-9-]{1,7})", " 7:\1", True, False,
False)
Call DoFindReplace("[ .]{1}VI[ ,.]{1,2}([0-9-]{1,7})", " 6:\1", True, False,
False)
Call DoFindReplace("[ .]{1}vi[ ,.]{1,2}([0-9-]{1,7})", " 6:\1", True, False,
False)
Call DoFindReplace("[ .]{1}IV[ ,.]{1,2}([0-9-]{1,7})", " 4:\1", True, False,
False)
Call DoFindReplace("[ .]{1}iv[ ,.]{1,2}([0-9-]{1,7})", " 4:\1", True, False,
False)
Call DoFindReplace("[ .]{1}V[ ,.]{1,2}([0-9-]{1,7})", " 5:\1", True, False,
False)
Call DoFindReplace("[ .]{1}v[ ,.]{1,2}([0-9-]{1,7})", " 5:\1", True, False,
False)
Call DoFindReplace("[ .]{1}III[ ,.]{1,2}([0-9-]{1,7})", " 3:\1", True, False,
False)
Call DoFindReplace("[ .]{1}iii[ ,.]{1,2}([0-9-]{1,7})", " 3:\1", True, False,
False)
Call DoFindReplace("[ .]{1}II[ ,.]{1,2}([0-9-]{1,7})", " 2:\1", True, False,
False)
Call DoFindReplace("[ .]{1}ii[ ,.]{1,2}([0-9-]{1,7})", " 2:\1", True, False,
False)
Call DoFindReplace("[ .]{1}I[ ,.]{1,2}([0-9-]{1,7})", " 1:\1", True, False,
False)
End Sub
Sub DoFindReplace(FindText As String, _
ReplaceText As String, _
bMatchWildcards As Boolean, _
bCase As Boolean, _
bWholeWord As Boolean)
' This is the grunt search and replace subroutine for Versify
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = FindText
.Replacement.Text = ReplaceText
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = bCase
.MatchWholeWord = bWholeWord
.MatchWildcards = bMatchWildcards
.MatchSoundsLike = False
.MatchAllWordForms = False
Do While .Execute
'Keep going until nothing found
.Execute Replace:=wdReplaceAll
Loop
'Free up some memory
ActiveDocument.UndoClear
End With
ActiveDocument.UndoClear
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
End Sub