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. |
|
|
Thread Tools | Display Modes |
#1
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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
|
|||
|
|||
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 | |
|
|