Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Long Documents / February 2005

Tip: Looking for answers? Try searching our database.

Multiple Styles - Filtering/Replacing

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
ML - 15 Feb 2005 17:36 GMT
We have a document template we are developing that has two sets of styles,
one for numbered headers/section and one for unnumbered.

Is there anyway that we can control which styles are shown to the user based
on say a userform selection where the user picks if they want the numbered
or unnumbered version?

Secondly, is there anyway to replace all the styles throughout a document
from one type to another, so that a macro could possibly be used to change
all the styles from the numbered version to the unnumbered version?
Jonathan West - 15 Feb 2005 17:53 GMT
Answered in the vba.general group. Please do not post multiple copies of the
same question to different groups

Signature

Regards
Jonathan West - Word MVP
www.intelligentdocuments.co.uk
Please reply to the newsgroup

> We have a document template we are developing that has two sets of styles,
> one for numbered headers/section and one for unnumbered.
[quoted text clipped - 6 lines]
> from one type to another, so that a macro could possibly be used to change
> all the styles from the numbered version to the unnumbered version?
Margaret Aldis - 15 Feb 2005 18:30 GMT
If you are going to write macros anyway, and need the ability to swap
between numbered and unnumbered formats rather than mix and match, then
probably the neatest way of doing this is to use a single set of styles, and
macros to number/unnumber them.

Unnumbering is fairly straightforward - statements like:

ActiveDocument.Styles("Heading 1").LinkToListTemplate _
ListTemplate:=Nothing

for each of the styles.

Numbering is a bit trickier, as you need to do this in a way that doesn't
build up list templates. Have a look at the code at
http://www.syntagma.demon.co.uk/FAQs/ListRestartFromStyle.htm#example

for the basic model. Ignore the first bit which sets up a specific style -
the main statements you want start at the comment "Create the list template
if it doesn't exist. " You'll need to adapt the code for your styles and
numbering format, and provide a name for your list template. (If you record
a macro of setting up headings from the top level style, following the
manual steps as described in
http://www.shaunakelly.com/word/numbering/OutlineNumbering.html
you'll see what parameters you need.)

Signature

Margaret Aldis - Microsoft Word MVP
Syntagma partnership site: http://www.syntagma.co.uk
Word MVP FAQ site: http://www.word.mvps.org

> We have a document template we are developing that has two sets of styles,
> one for numbered headers/section and one for unnumbered.
[quoted text clipped - 6 lines]
> from one type to another, so that a macro could possibly be used to change
> all the styles from the numbered version to the unnumbered version?
ML - 15 Feb 2005 18:42 GMT
Thanks!  This might do exatly what I need.

Basically I want to have the userform allow the user to select the desired
numbering or nonnumbering style and add or remove the numbers based on this.

So would calling the following on each style basically remove the numbering
and leave the rest of the style formatting as is?  Not 100% sure what you
mean on this in terms of unnumbering.

> ActiveDocument.Styles("Heading 1").LinkToListTemplate _
> ListTemplate:=Nothing

> If you are going to write macros anyway, and need the ability to swap
> between numbered and unnumbered formats rather than mix and match, then
[quoted text clipped - 38 lines]
>> change
>> all the styles from the numbered version to the unnumbered version?
Margaret Aldis - 15 Feb 2005 18:48 GMT
Yes, by 'unnumber' I mean remove the numbering, leaving everything else as
is. of course, you might want to fiddle with the indents or something else
as well, depending on your format (use of margins etc.) for the two
different styles, but you'll see that in your actual document.

Signature

Margaret Aldis - Microsoft Word MVP
Syntagma partnership site: http://www.syntagma.co.uk
Word MVP FAQ site: http://www.word.mvps.org

> Thanks!  This might do exatly what I need.
>
[quoted text clipped - 50 lines]
> >> change
> >> all the styles from the numbered version to the unnumbered version?
Margaret Aldis - 15 Feb 2005 19:14 GMT
Worth also noting that unless you've some other user input to collect you
can avoid the user form and just give the user menu items or toolbar buttons
for 'number headings' or 'unnumber headings' - or even a single toggle
button to check whether the styles are currently numbered (look at the
linked list template) and run one or other of the macros as appropriate.

I'd also recommend resetting the heading paragraphs to style after change of
numbering format - keeps everything clean and can be used to tidy up when
user or Word has applied numbering as direct formatting (where changing
styles won't help).

Code something like:

Dim apara As Paragraph
Dim stylename As String
For Each apara In ActiveDocument.Paragraphs
   stylename = apara.Style
   If stylename Like "Heading*" Then  apara.Reset
Next apara

Signature

Margaret Aldis - Microsoft Word MVP
Syntagma partnership site: http://www.syntagma.co.uk
Word MVP FAQ site: http://www.word.mvps.org

> Yes, by 'unnumber' I mean remove the numbering, leaving everything else as
> is. of course, you might want to fiddle with the indents or something else
[quoted text clipped - 60 lines]
> > >> change
> > >> all the styles from the numbered version to the unnumbered version?
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.