Reply
 
Thread Tools Display Modes
  #1   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Peter Jamieson Peter Jamieson is offline
external usenet poster
 
Posts: 4,582
Default Use DocVariable field to initiative numbering?

Hi Tom,

Well, I'd assumed you knew what a docvariable was because you mentioned them
in the subject line of your post. But maybe you'd picked that up from
somewhere else, and maybe it's completely irrelevant.

But roughly speaking,

You can create document properties and set/modify their values using the
File|Properties dialog box. Personally I wouldn't use any type except
"string" unless I had a good reason. Further, you can modify document
properties programmatically, and view their values, even if you don't have
Word (i.e. the properties are stored in structures that do not rely on
Word). Sometimes, that's a bonus, but I suspect it's not that important in
this case.

Document variables are named values stored within Word. You can't set them
up or maintain them using the standard user interface, and you can only get
at them programmatically by using the Word object model. So they are perhaps
better if you don't want users to modify their values.

The DOCVARIABLE and DOCPROPERTY fields simply insert the values of the
specified document variables and document properties.

If you want to experiment with these field types I suggest you stick to
DOCPROPERTY in the first instance as you can play with these without
resorting to VBA.


Also, I realized the figure captions find-and-replace method only
solves part of the problem. In our HTML document, we have phrases like
this: "See Figure 1" and then below the figure we write "Figure 1."
When I did the find and replace method, it did sequentially number the
figures, but how would I implement the "See Figure 1" part? That seems
impossible.


Yes. However, how to maintain these references depends on what you're
doing - you mention "your HTML document". Are you starting with that and
trying to create a Word document from it, or what?

Peter Jamieson

"Tom" wrote in message
ups.com...
I would like to better understand the DOCPROPERTY and DOCVARIABLE
fields.

You gave the following examples:

{ SEQ Figure \r{ DOCVARIABLE myvariable } \h }


(depending on what you are doing it might be better to put your
starting
number in a Document Property and use the following instead:

{ SEQ Figure \r{ DOCPROPERTY myproperty } \h }
)

I'm just not sure how to implement this. I assume "myvariable" and
"myproperty" are unique words I define. But where are they stored? How
do I define them? What exactly do they do? I'm still in the dark here.

Also, I realized the figure captions find-and-replace method only
solves part of the problem. In our HTML document, we have phrases like
this: "See Figure 1" and then below the figure we write "Figure 1."
When I did the find and replace method, it did sequentially number the
figures, but how would I implement the "See Figure 1" part? That seems
impossible.



  #2   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Tom Tom is offline
external usenet poster
 
Posts: 61
Default Use DocVariable field to initiative numbering?

Peter,

Thanks for the explanations about the differences between DocVariables
and DocProperties. That does make it a little clearer. You asked,

However, how to maintain these references depends on what you're
doing - you mention "your HTML document". Are you starting with that and
trying to create a Word document from it, or what?


To view an HTML document similar to the ones I create, open up Internet
Explorer 6.0 and go to Help Contents and Index. What loads is an Web
Help application of some kind. RoboHelp essentially creates the same
online help tool.

RoboHelp also exports all of these topics to Microsoft Word. Where
RoboHelp falls short is in converting links to cross references. It
just doesn't seem to do it, and I'm not sure of any workaround. That's
why I was thinking that maybe if I stored some kind of variable in the
HTML, I could convert it into a unique cross reference in Word. But
that doesn't really seem probable, right?

  #3   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Peter Jamieson Peter Jamieson is offline
external usenet poster
 
Posts: 4,582
Default Use DocVariable field to initiative numbering?

Tom,

What I'd /probably do in this scenario is try to expand on Greg's macro and
look separately for references (e.g. "See Figure nnn") and the figure
identifiers themselves, then mark them in some way that would enable me to
match them up. Greg may have some further ideas but I'll have to think about
how I'd approach this and time marches on on this side of the pond...

Apart from that, I suppose I might want to take another look at RoboHelp
just to be sure that I hadn't missed some referencing feature that would
help me maintain references when I output to Word. But since I don't have
that software, I couldn't really say what I'd be looking for...

Peter Jamieson
"Tom" wrote in message
ups.com...
Peter,

Thanks for the explanations about the differences between DocVariables
and DocProperties. That does make it a little clearer. You asked,

However, how to maintain these references depends on what you're
doing - you mention "your HTML document". Are you starting with that and
trying to create a Word document from it, or what?


To view an HTML document similar to the ones I create, open up Internet
Explorer 6.0 and go to Help Contents and Index. What loads is an Web
Help application of some kind. RoboHelp essentially creates the same
online help tool.

RoboHelp also exports all of these topics to Microsoft Word. Where
RoboHelp falls short is in converting links to cross references. It
just doesn't seem to do it, and I'm not sure of any workaround. That's
why I was thinking that maybe if I stored some kind of variable in the
HTML, I could convert it into a unique cross reference in Word. But
that doesn't really seem probable, right?



  #4   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Peter Jamieson Peter Jamieson is offline
external usenet poster
 
Posts: 4,582
Default Use DocVariable field to initiative numbering?

OK, now back in action for a few hours...

1. Do you need to set a "starting" Figure number as your original post
suggests, or will that number always actually be 1?
2. If RoboHelp is just converting a number of separate articles (or
whatever it calls them) into a single Word document, does that mean that you
can end up with multiple "Figure 1" captions in the same document, e.g.

blah blah (See Figure 1)
Figure 1
Figure 2
blah blah (see Figure 2)
blah blah new article(See Figure 1)
Figure 1
and so on

3. If so, is there any obvious way to tell where a new article starts to
avoid making the wrong references? (it seems likely that if the document is
constructed from short articles you may get a number of "Figure 1"
references and items in succession, but from different articles.

Peter Jamieson

"Peter Jamieson" wrote in message
...
Tom,

What I'd /probably do in this scenario is try to expand on Greg's macro
and look separately for references (e.g. "See Figure nnn") and the figure
identifiers themselves, then mark them in some way that would enable me to
match them up. Greg may have some further ideas but I'll have to think
about how I'd approach this and time marches on on this side of the
pond...

Apart from that, I suppose I might want to take another look at RoboHelp
just to be sure that I hadn't missed some referencing feature that would
help me maintain references when I output to Word. But since I don't have
that software, I couldn't really say what I'd be looking for...

Peter Jamieson
"Tom" wrote in message
ups.com...
Peter,

Thanks for the explanations about the differences between DocVariables
and DocProperties. That does make it a little clearer. You asked,

However, how to maintain these references depends on what you're
doing - you mention "your HTML document". Are you starting with that and
trying to create a Word document from it, or what?


To view an HTML document similar to the ones I create, open up Internet
Explorer 6.0 and go to Help Contents and Index. What loads is an Web
Help application of some kind. RoboHelp essentially creates the same
online help tool.

RoboHelp also exports all of these topics to Microsoft Word. Where
RoboHelp falls short is in converting links to cross references. It
just doesn't seem to do it, and I'm not sure of any workaround. That's
why I was thinking that maybe if I stored some kind of variable in the
HTML, I could convert it into a unique cross reference in Word. But
that doesn't really seem probable, right?





  #5   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Tom Tom is offline
external usenet poster
 
Posts: 61
Default Use DocVariable field to initiative numbering?

Peter, let me provide a better picture of what I want my document to
look like. Here is the gist of it:

Blah blah blah blah blah blah blah. See Figure 1.

[image]
Figure 1. Image caption

blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah. See
Figure 2.

[image]
Figure 2. Image caption

blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah blah blah blah blah blah blah blah
blah blah blah blah blah blah blah. See Figure 3.

[image]
Figure 3. Image caption

The Figure numbering does not start over (in other words, there is only
one Figure 1 in the entire document). Thanks to the earlier code you
guys posted on automating captions, the captions part works great. The
only part that remains is the "See Figure 1" reference that precedes
the caption.

It becomes slightly more complicated because in my RoboHelp source
file, I may have 200 topics and only choose to compile 150 of them
(depending on the needs of the audience).

Here is what I think might work -- I will label each "See Figure 1",
"See Figure 2" and so on as "See FigureZ." (All the same.)

Then here's what I want the code to do:

Look for first instance of the word "See FigureZ" and change it to See
Figure 1. Stop. Now look for the first instance of "See FigureZ" and
change it to See Figure 2. Stop. Now look for the first instance of
"See FigureZ" and change it to See Figure 3. Stop. Now look for the
first instance of "See FigureZ" and change it to Figure 4. Repeat until
100 Figure replacements or so.

I figure that after the first command changes the See FigureZ to Figure
1, then upon second looping, the first FigureZ instance that appears
will be placed exactly where Figure 2 should appear.

Can any of you write a macro that does this? I would so appreciate it.
Or do you have a better solution? Thanks so much for your help on
this. This seems like the last piece to the puzzle.



  #6   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Tom Tom is offline
external usenet poster
 
Posts: 61
Default Use DocVariable field to initiative numbering?

I think I can easily accomplish my see references using this method:

1. In my RoboHelp file, tag the "1" in the phrase See Figure 1 with a
unique style.
2. When I export to Word, the style carries over.
3. In Word, type { AutoNum \*Arabic }. Or go to Insert Field
AutoNum and see the same code. Select this field code and copy it to
the clipboard.
4. Do a find and replace of the unique style with the AutoNum field
code.

This numbering won't interfere with captions or lists.

I'd like to make it into a macro that I can just run.

Greg, earlier you wrote this code:

Sub ScratchMacro()
Dim myRange As Range
Set myRange = ActiveDocument.Range
With myRange.Find
.Text = "XYZ"
.MatchWholeWord = True
While .Execute
myRange.Delete
myRange.InsertCaption Label:="Figure"
Wend
End With
End Sub

Instead of writing .Text, can I use a style there?
And instead of using InsertCaption Label:="Figure", what would I use to
insert the AutoNum tag? I tried InsertAutoNum but it didn't work.

  #7   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Peter Jamieson Peter Jamieson is offline
external usenet poster
 
Posts: 4,582
Default Use DocVariable field to initiative numbering?

OK, I think what you're saying is that
a. you want to number your figures sequentially
b. you always have exactly one "See Figure X" for each Figure X
c. the "See figure" reference always precedes the Figure number it's
referrring to

But if that is the case, I don't really understand why you need to insert
"proper" figure references using SEQ fields or whatever, particlarly if
RoboHelp is always generating the correct sequence numbers with no gaps. Why
not just do all the numbering directly from your macro (and not use any
fields)?

The main reason I can think of is that you want to do the Figure numbering
"properly" so that someone can take the Word document and add stuff
including other references. But if that's the case, they won't be able to
use the same referencing mechanism you are providing to them, brcause one
extra { AutoNum \*Arabic } in the document will throw the whole scheme out.

But to answer your questions...

Sub ScratchMacro()
Dim myRange As Range
Set myRange = ActiveDocument.Range
With myRange.Find
.Text = "XYZ"
.MatchWholeWord = True
While .Execute
myRange.Delete
myRange.InsertCaption Label:="Figure"
Wend
End With
End Sub

Instead of writing .Text, can I use a style there?


Yes, you can use

..Style = ActiveDocument.Styles("mystyle")

And instead of using InsertCaption Label:="Figure", what would I use to
insert the AutoNum tag? I tried InsertAutoNum but it didn't work.


You can use

myRange.Fields.Add range:=myRange, type:=wdfieldempty, text:="AutoNum
\*Arabic", preserveformatting:=false

You should be able to do both operations in succession using something like

Sub ScratchMacro()
Dim myRange As Range
Set myRange = ActiveDocument.Range
With myRange.Find
.Text = "XYZ"
.MatchWholeWord = True
While .Execute
myRange.Delete
myRange.InsertCaption Label:="Figure"
Wend
End With
' Following line may be unnecessary, or
' you may need to do more to reset the Find object
Set myRange = Nothing
Set myRange = ActiveDocument.Range
With myRange.Find
.Style = ActiveDocument.Styles("mystyle")
.MatchWholeWord = True
While .Execute
myRange.Delete
myRange.Fields.Add _
range:=myRange, _
type:=wdfieldempty, _
text:="AutoNum \*Arabic", _
preserveformatting:=false
Wend
End With
End Sub

(But I haven't tested it!)

Peter Jamieson

"Tom" wrote in message
oups.com...
I think I can easily accomplish my see references using this method:

1. In my RoboHelp file, tag the "1" in the phrase See Figure 1 with a
unique style.
2. When I export to Word, the style carries over.
3. In Word, type { AutoNum \*Arabic }. Or go to Insert Field
AutoNum and see the same code. Select this field code and copy it to
the clipboard.
4. Do a find and replace of the unique style with the AutoNum field
code.

This numbering won't interfere with captions or lists.

I'd like to make it into a macro that I can just run.

Greg, earlier you wrote this code:

Sub ScratchMacro()
Dim myRange As Range
Set myRange = ActiveDocument.Range
With myRange.Find
.Text = "XYZ"
.MatchWholeWord = True
While .Execute
myRange.Delete
myRange.InsertCaption Label:="Figure"
Wend
End With
End Sub

Instead of writing .Text, can I use a style there?
And instead of using InsertCaption Label:="Figure", what would I use to
insert the AutoNum tag? I tried InsertAutoNum but it didn't work.



  #8   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Tom Tom is offline
external usenet poster
 
Posts: 61
Default Use DocVariable field to initiative numbering?

As far as cross references go, I found a really cool macro at Peter
Grainge's site (www.grainge.org under RoboHelp Printed Documentation
Print Issues). Here's what it does: In your document, if you have hyperlinks to different heading titles, and if those hyperlinks have the same wording as the headings they point to, the macro converts the hyperlink into a cross reference with a page number. For example "For more information, see Heading Styles." (where Heading Styles is a hyperlink to another heading) becomes "For more information, see Heading Styles on page 5 (or whatever page that heading happens to be at).


I found just one little problem with the macro code, but my VB friend
told me to comment out a little bit of code after the word true about
50 lines down, and then it worked. I'm posting the revised code here in
case anyone else is interested:

Sub RebuildLinks()
' This bit added to set Smart Cut and Paste off while macro runs
' Thanks to JScher at Woody's Lounge, www.wopr.com

Dim blnSmartCutAndPaste As Boolean
blnSmartCutAndPaste = Options.SmartCutPaste
Options.SmartCutPaste = False

' This macro written by Tannis Turnbull. RH Forum

Dim myHeadings() As String
'Dim myPageNumbers() As String
Dim i As Integer

'store all heading information
myHeadings = ActiveDocument.GetCrossReferenceItems(wdRefTypeHea ding)

'move the cursor to section 3
Selection.HomeKey Unit:=wdStory
Selection.Move wdSection, 2

'search for text with hyperlink style
Selection.Find.ClearFormatting
Selection.Find.Style = ActiveDocument.Styles("Hyperlink")

With Selection.Find
..Text = ""
..Replacement.Text = ""
..Forward = True
..Wrap = wdFindContinue
..Format = True
..MatchCase = False
..MatchWholeWord = False
..MatchWildcards = False
..MatchSoundsLike = False
..MatchAllWordForms = False

..Execute FindText:="", Format:=True
While .Found = True
'loop around refs to find the right one and update link
For i = 1 To UBound(myHeadings)
If Selection = Trim(myHeadings(i)) Then
'update the style with a real link and page info
Selection.Delete
Selection.InsertCrossReference ReferenceType:="Heading",
ReferenceKind:= _
wdContentText, ReferenceItem:=CStr(i), InsertAsHyperlink:=True, _
IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
' in Word XP amend the line above to IncludePosition:=False
Selection.TypeText Text:=" on page "
Selection.InsertCrossReference ReferenceType:="Heading",
ReferenceKind:= _
wdPageNumber, ReferenceItem:=CStr(i), InsertAsHyperlink:=True ', _
'IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
' in Word XP amend the line above to IncludePosition:=False
End If
Next i
..Execute
Wend
End With
' Next line added as part of JScher's change, restores setting to what
user had before.
Options.SmartCutPaste = blnSmartCutAndPaste
End Sub

  #9   Report Post  
Posted to microsoft.public.word.mailmerge.fields
Tom Tom is offline
external usenet poster
 
Posts: 61
Default Use DocVariable field to initiative numbering?

Peter,

Thanks for the explanations about the differences between DocVariables
and DocProperties. That does make it a little clearer. You asked,

However, how to maintain these references depends on what you're
doing - you mention "your HTML document". Are you starting with that and
trying to create a Word document from it, or what?


To view an HTML document similar to the ones I create, open up Internet
Explorer 6.0 and go to Help Contents and Index. What loads is an Web
Help application of some kind. RoboHelp essentially creates the same
online help tool.

RoboHelp also exports all of these topics to Microsoft Word. Where
RoboHelp falls short is in converting links to cross references. It
just doesn't seem to do it, and I'm not sure of any workaround. That's
why I was thinking that maybe if I stored some kind of variable in the
HTML, I could convert it into a unique cross reference in Word. But
that doesn't really seem probable, right?

Reply
Thread Tools
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Setting Date property in a form field mdavison Microsoft Word Help 13 October 6th 06 02:43 PM
Insert numbering field in merged Word document (invoice nos)? CathySWhit Mailmerge 2 May 24th 06 10:17 PM
Caption numbering in chapters Rachel H Microsoft Word Help 8 October 19th 05 10:21 AM
Cannot printing DocVariable Field lubo Microsoft Word Help 1 April 9th 05 07:00 AM
Numbering - skip a level BruceM Microsoft Word Help 4 February 10th 05 07:56 PM


All times are GMT +1. The time now is 04:54 AM.

Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 Microsoft Office Word Forum - WordBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Word"