R
Ron Smith
I create family history books (genealogy) for our extended family. The books
are very large ranging from 100 to 1500 pages (yes, I use sub-documents where
I can). The books contain huge numbers of footnotes and footnote
cross-references as all facts are documented by sources where possible.
There are also a great many pictures included via links to the files
(definitely not embedded in the document).
To aid in managing the information, format, etc., I've generated a lot of
very large macros that are in a Genealogy.dot (.dotm) template that I attach
to the book files. For example, when I insert more text from other sources,
I'm typically inserting duplicate references (footnotes). One macro scans
all footnotes for duplicate text, finds all cross references to the one to be
deleted and changes them to cross-references to the one being changed and
then changes the one to be deleted it to a cross-reference to the lower
numbered one. Another one just scans all cross-references, ensures a comma
and single space between them, sorts them into numerical order, and makes
sure that the "Footnote references" style is applied to the whole string.
Now the question. Those macros run in just a few minutes (2-5) on my
largest document of 1500 pages, 2500 footnotes, and 25,000 footnote
cross-references in Word 2003. It runs in multiple hours on Word 2007 (I
typically run it overnight). My computer is a 2GHz system with 2GB of memory
so not very fast, but with plenty of memory. I'm running Windows XP Pro.
I'll upgrade to Vista when I buy a new machine in a year or so.
I learned through forums like this and trial-and-error in Word 2003 what the
best programming practices were. For example, always use For Each ... Next
and never use indices to loop through things like footnotes, fields, etc.
Apparently, indices always started from the beginning and just counted
through the fields. The times were like what I'm seeing now in Word 2007.
So, are there new best practices for Word 2007 macros that will help?
Thanks very much,
are very large ranging from 100 to 1500 pages (yes, I use sub-documents where
I can). The books contain huge numbers of footnotes and footnote
cross-references as all facts are documented by sources where possible.
There are also a great many pictures included via links to the files
(definitely not embedded in the document).
To aid in managing the information, format, etc., I've generated a lot of
very large macros that are in a Genealogy.dot (.dotm) template that I attach
to the book files. For example, when I insert more text from other sources,
I'm typically inserting duplicate references (footnotes). One macro scans
all footnotes for duplicate text, finds all cross references to the one to be
deleted and changes them to cross-references to the one being changed and
then changes the one to be deleted it to a cross-reference to the lower
numbered one. Another one just scans all cross-references, ensures a comma
and single space between them, sorts them into numerical order, and makes
sure that the "Footnote references" style is applied to the whole string.
Now the question. Those macros run in just a few minutes (2-5) on my
largest document of 1500 pages, 2500 footnotes, and 25,000 footnote
cross-references in Word 2003. It runs in multiple hours on Word 2007 (I
typically run it overnight). My computer is a 2GHz system with 2GB of memory
so not very fast, but with plenty of memory. I'm running Windows XP Pro.
I'll upgrade to Vista when I buy a new machine in a year or so.
I learned through forums like this and trial-and-error in Word 2003 what the
best programming practices were. For example, always use For Each ... Next
and never use indices to loop through things like footnotes, fields, etc.
Apparently, indices always started from the beginning and just counted
through the fields. The times were like what I'm seeing now in Word 2007.
So, are there new best practices for Word 2007 macros that will help?
Thanks very much,