A Microsoft Office (Excel, Word) forum. OfficeFrustration

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.

Go Back   Home » OfficeFrustration forum » Microsoft Word » Mailmerge
Site Map Home Register Authors List Search Today's Posts Mark Forums Read  

Use DocVariable field to initiative numbering?



 
 
Thread Tools Display Modes
  #1  
Old December 8th, 2006, 03:03 PM posted to microsoft.public.word.mailmerge.fields
Tom
external usenet poster
 
Posts: 61
Default Use DocVariable field to initiative numbering?

Can the DocVariable field be used to somehow initiate Figure numbering?

Let me explain. Suppose I have the phrase XYZ in a document. I want to
integrate a macro such that each place XYZ appears, a Figure number is
inserted instead. In other words, the macro would say, Find XYZ, and
replace with the caption field.

Is this possible? If so, it might enable me to run a macro to fix a
RoboHelp output to include Figure captions.

  #2  
Old December 8th, 2006, 04:18 PM posted to microsoft.public.word.mailmerge.fields
Tom
external usenet poster
 
Posts: 61
Default Use DocVariable field to initiative numbering?

Maybe I want to use an IF Then statement instead. All of this is new to
me and I'm trying to understand it. Something like:

{IF "XYZ" Then {SEQ Figure \ *Arabic}}

Can someone point me to a good tutorial on if then statements?

In my document, XYZ would be a unique phrase that I'd want to replace
with a figure caption.

  #3  
Old December 8th, 2006, 05:21 PM posted to microsoft.public.word.mailmerge.fields
Peter Jamieson
external usenet poster
 
Posts: 4,550
Default Use DocVariable field to initiative numbering?

Typicaly a Figure number would contain something like the following (it
depends on the type of reference you choose to have);

Figure { SEQ Figure \*Arabic }

In that case you should be able to start the sequence numbering by inserting
the following nested field at the beginning of your document:

{ 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 }
)

Let me explain. Suppose I have the phrase XYZ in a document. I want to
integrate a macro such that each place XYZ appears, a Figure number is
inserted instead. In other words, the macro would say, Find XYZ, and
replace with the caption field.


This seems to be something else altogether. If you just want to replace
every occurence of XYZ in a document with the caption field, the simplest
way is probably
a. create the caption text and fields you want (e.g.
Figure { SEQ Figure \*Arabic }
b. Edit|Copy that stuff so it's on the clipboard
c. use Edit|Replace to replace XYZ by ^c (i.e. the clipboard contents).

If you need to do it using a macro, things get a bit harder.

Peter Jamieson

"Tom" wrote in message
ups.com...
Can the DocVariable field be used to somehow initiate Figure numbering?

Let me explain. Suppose I have the phrase XYZ in a document. I want to
integrate a macro such that each place XYZ appears, a Figure number is
inserted instead. In other words, the macro would say, Find XYZ, and
replace with the caption field.

Is this possible? If so, it might enable me to run a macro to fix a
RoboHelp output to include Figure captions.



  #4  
Old December 8th, 2006, 05:57 PM posted to microsoft.public.word.mailmerge.fields
Tom
external usenet poster
 
Posts: 61
Default Use DocVariable field to initiative numbering?

Thanks Peter. The method of copy and replace seems to do the trick. I
didn't know you could do the ^c function to insert a field like that.
Thanks again! This forum is excellent.

This seems to be something else altogether. If you just want to
replace
every occurence of XYZ in a document with the caption field, the
simplest
way is probably
a. create the caption text and fields you want (e.g.
Figure { SEQ Figure \*Arabic }
b. Edit|Copy that stuff so it's on the clipboard
c. use Edit|Replace to replace XYZ by ^c (i.e. the clipboard contents).

  #5  
Old December 8th, 2006, 06:05 PM posted to microsoft.public.word.mailmerge.fields
Greg Maxey
external usenet poster
 
Posts: 171
Default Use DocVariable field to initiative numbering?

Tom,

I don't see how what a DocVariable has to do with numbering figures.
You want to find "XYZ" and replace with a numbered figure caption
number correct? Try:

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


Tom wrote:
Can the DocVariable field be used to somehow initiate Figure numbering?

Let me explain. Suppose I have the phrase XYZ in a document. I want to
integrate a macro such that each place XYZ appears, a Figure number is
inserted instead. In other words, the macro would say, Find XYZ, and
replace with the caption field.

Is this possible? If so, it might enable me to run a macro to fix a
RoboHelp output to include Figure captions.


  #6  
Old December 8th, 2006, 06:28 PM posted to microsoft.public.word.mailmerge.fields
Tom
external usenet poster
 
Posts: 61
Default Use DocVariable field to initiative numbering?

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.

  #7  
Old December 8th, 2006, 07:02 PM posted to microsoft.public.word.mailmerge.fields
Peter Jamieson
external usenet poster
 
Posts: 4,550
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.



  #8  
Old December 8th, 2006, 07:13 PM posted to microsoft.public.word.mailmerge.fields
Tom
external usenet poster
 
Posts: 61
Default Use DocVariable field to initiative numbering?

Greg,

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


The macro code you wrote works much more quickly and powerfully, even
formatting the XYZ text in caption styles. Thanks!

Here's a little more background with what I'm trying to accomplish, and
why I was wondering about DocVariables. I'm a technical writer trying
to single source with Robohelp. Robohelp is an HTML-based application
that stores everything in discrete topics. It also outputs to Word.
When it outputs to Word, it strings together all the topics in one long
Word document.

The output to Word is problematic for two main reasons:

Captions and references to those captions -- Using the code and
techniques you and Peter explained, I can easily add captions to every
figure (by replacing XYZ with the captions). However, in the body of
the text, we often write "See Figure 1 below" or "See Figure 5 below."
How would I retain the "See Figure 5" part?

A similarly related problem is cross references. Let's say I want to
refer a reader to a topic on another page. In HTML, one simply says
"See Creating Documents" and makes it a link to the topic. However, in
the print output, "See Creating Documents" doesn't include any page
references. The topic could be on page 5 or 50. How could I set it up
so that the print output said "See Creating Documents on page 6" (where
page 6 is where the heading text appears that contains this topic)?

I have been told that it is possible to do this (cross references)
through a DocVariable. This is why I keep asking about it. If you have
a solution for cross references that works, it would make quite a few
technical writers happy. Any ideas?

  #9  
Old December 8th, 2006, 07:37 PM posted to microsoft.public.word.mailmerge.fields
Tom
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?

  #10  
Old December 8th, 2006, 07:38 PM posted to microsoft.public.word.mailmerge.fields
Tom
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?

 




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Forum Jump


All times are GMT +1. The time now is 09:19 AM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 OfficeFrustration.
The comments are property of their posters.