Reply
 
Thread Tools Display Modes
  #1   Report Post  
Thomas Payne
 
Posts: n/a
Default Converting field results to hard text

I'm running XP Pro, and Word 2002.

My publisher needs me to convert my field results to hard text. Isn't there
a macro that does this? (I don't mean just F9 switching between viewing the
field and viewing the result -- I need to eliminate all the fields,
converting them into plain text that corresponds to their results).

On a related note: is there a macro that converts automatic numbering to
text numbering?

Thanks for any help.
Tom


  #2   Report Post  
Charles Kenyon
 
Posts: n/a
Default

What follows is code that works to update all REF fields in a document. I
know that works. Then I am giving you code that I expect will do what you
want based on the macro I've tested.

Sub RefFieldUpdateAllStory()
' Written by Charles Kyle Kenyon 15 November 2001
' All Story Field Updater - Ref fields
Dim oField As Field
Dim oStory As Range
On Error Resume Next
For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular document
For Each oField In ActiveDocument.Range.Fields
If oField.Type = wdFieldRef Then
oField.Update
End If
Next oField
Next oStory
End Sub

Sub FieldsUnlinkAllStory()
' Written by Charles Kyle Kenyon 9 December 2004
' All Story Field Unlinker
Dim oField As Field
Dim oStory As Range
On Error Resume Next
For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular document
For Each oField In ActiveDocument.Range.Fields
oField.Unlink
Next oField
Next oStory
End Sub

There may be something less complex that will do it. If you don't have
headers/footers, text boxes or frames that contain fields you could just
use:

ActiveDocument.Fields.Unlink

Hope this helps,
--

Charles Kenyon

Word New User FAQ & Web Directory: http://addbalance.com/word

Intermediate User's Guide to Microsoft Word (supplemented version of
Microsoft's Legal Users' Guide) http://addbalance.com/usersguide

See also the MVP FAQ: http://www.mvps.org/word which is awesome!
--------- --------- --------- --------- --------- ---------
This message is posted to a newsgroup. Please post replies
and questions to the newsgroup so that others can learn
from my ignorance and your wisdom.

"Thomas Payne" wrote in message
...
I'm running XP Pro, and Word 2002.

My publisher needs me to convert my field results to hard text. Isn't
there a macro that does this? (I don't mean just F9 switching between
viewing the field and viewing the result -- I need to eliminate all the
fields, converting them into plain text that corresponds to their
results).

On a related note: is there a macro that converts automatic numbering to
text numbering?

Thanks for any help.
Tom



  #3   Report Post  
Thomas Payne
 
Posts: n/a
Default

Thank you very much. This is helpful. I also appreciate your links.

Tom


  #4   Report Post  
Jezebel
 
Posts: n/a
Default

Charles, there are bugs in your code --

1) Currently you are updating fields only in the body of the document,
notwithstanding your loop through the StoryRanges.

For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular document
For Each oField In ActiveDocument.Range.Fields -----
This is wrong

The line should be --

For Each oField In oStory.Fields


2) But even fixing that, your code will also miss fields in headers and
footers after the first section, and in textframes after the first.
Header/Footer and Textframe StoryRanges are linked lists. Iterating the
StoryRanges collection returns only the first item in the list. To get the
subsequent ranges you need something like

For Each oStory In ActiveDocument.StoryRanges

Do
oStory.Fields.Update
set oStory = oStory.Next
Loop until oStory is nothing

Next


Also there's no need to iterate the fields themselves. Once you have the
range you can operate on all its fields in one statement:

oStory.Fields.Update, oStory.field.unlink, etc




"Charles Kenyon" wrote in
message ...
What follows is code that works to update all REF fields in a document. I
know that works. Then I am giving you code that I expect will do what you
want based on the macro I've tested.

Sub RefFieldUpdateAllStory()
' Written by Charles Kyle Kenyon 15 November 2001
' All Story Field Updater - Ref fields
Dim oField As Field
Dim oStory As Range
On Error Resume Next
For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular document
For Each oField In ActiveDocument.Range.Fields
If oField.Type = wdFieldRef Then
oField.Update
End If
Next oField
Next oStory
End Sub

Sub FieldsUnlinkAllStory()
' Written by Charles Kyle Kenyon 9 December 2004
' All Story Field Unlinker
Dim oField As Field
Dim oStory As Range
On Error Resume Next
For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular document
For Each oField In ActiveDocument.Range.Fields
oField.Unlink
Next oField
Next oStory
End Sub

There may be something less complex that will do it. If you don't have
headers/footers, text boxes or frames that contain fields you could just
use:

ActiveDocument.Fields.Unlink

Hope this helps,
--

Charles Kenyon

Word New User FAQ & Web Directory: http://addbalance.com/word

Intermediate User's Guide to Microsoft Word (supplemented version of
Microsoft's Legal Users' Guide) http://addbalance.com/usersguide

See also the MVP FAQ: http://www.mvps.org/word which is awesome!
--------- --------- --------- --------- --------- ---------
This message is posted to a newsgroup. Please post replies
and questions to the newsgroup so that others can learn
from my ignorance and your wisdom.

"Thomas Payne" wrote in message
...
I'm running XP Pro, and Word 2002.

My publisher needs me to convert my field results to hard text. Isn't
there a macro that does this? (I don't mean just F9 switching between
viewing the field and viewing the result -- I need to eliminate all the
fields, converting them into plain text that corresponds to their
results).

On a related note: is there a macro that converts automatic numbering to
text numbering?

Thanks for any help.
Tom





  #5   Report Post  
Jezebel
 
Posts: n/a
Default

Ctrl-Shift-F9




"Thomas Payne" wrote in message
...
I'm running XP Pro, and Word 2002.

My publisher needs me to convert my field results to hard text. Isn't

there
a macro that does this? (I don't mean just F9 switching between viewing

the
field and viewing the result -- I need to eliminate all the fields,
converting them into plain text that corresponds to their results).

On a related note: is there a macro that converts automatic numbering to
text numbering?

Thanks for any help.
Tom






  #6   Report Post  
Thomas Payne
 
Posts: n/a
Default

Yes, thanks. I figured that out, once I learned from Charles that the term
I should look for was "unlink."

Tom


"Jezebel" wrote in message
...
Ctrl-Shift-F9




"Thomas Payne" wrote in message
...
I'm running XP Pro, and Word 2002.

My publisher needs me to convert my field results to hard text. Isn't

there
a macro that does this? (I don't mean just F9 switching between viewing

the
field and viewing the result -- I need to eliminate all the fields,
converting them into plain text that corresponds to their results).

On a related note: is there a macro that converts automatic numbering to
text numbering?

Thanks for any help.
Tom






  #7   Report Post  
Charles Kenyon
 
Posts: n/a
Default

Thank you. I seldom work with mulit-section documents and so didn't trip
over this.


--

Charles Kenyon

Word New User FAQ & Web Directory: http://addbalance.com/word

Intermediate User's Guide to Microsoft Word (supplemented version of
Microsoft's Legal Users' Guide) http://addbalance.com/usersguide

See also the MVP FAQ: http://www.mvps.org/word which is awesome!
--------- --------- --------- --------- --------- ---------
This message is posted to a newsgroup. Please post replies
and questions to the newsgroup so that others can learn
from my ignorance and your wisdom.

"Jezebel" wrote in message
...
Charles, there are bugs in your code --

1) Currently you are updating fields only in the body of the document,
notwithstanding your loop through the StoryRanges.

For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular
document
For Each oField In ActiveDocument.Range.Fields -----
This is wrong

The line should be --

For Each oField In oStory.Fields


2) But even fixing that, your code will also miss fields in headers and
footers after the first section, and in textframes after the first.
Header/Footer and Textframe StoryRanges are linked lists. Iterating the
StoryRanges collection returns only the first item in the list. To get the
subsequent ranges you need something like

For Each oStory In ActiveDocument.StoryRanges

Do
oStory.Fields.Update
set oStory = oStory.Next
Loop until oStory is nothing

Next


Also there's no need to iterate the fields themselves. Once you have the
range you can operate on all its fields in one statement:

oStory.Fields.Update, oStory.field.unlink, etc




"Charles Kenyon" wrote in
message ...
What follows is code that works to update all REF fields in a document. I
know that works. Then I am giving you code that I expect will do what you
want based on the macro I've tested.

Sub RefFieldUpdateAllStory()
' Written by Charles Kyle Kenyon 15 November 2001
' All Story Field Updater - Ref fields
Dim oField As Field
Dim oStory As Range
On Error Resume Next
For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular document
For Each oField In ActiveDocument.Range.Fields
If oField.Type = wdFieldRef Then
oField.Update
End If
Next oField
Next oStory
End Sub

Sub FieldsUnlinkAllStory()
' Written by Charles Kyle Kenyon 9 December 2004
' All Story Field Unlinker
Dim oField As Field
Dim oStory As Range
On Error Resume Next
For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular document
For Each oField In ActiveDocument.Range.Fields
oField.Unlink
Next oField
Next oStory
End Sub

There may be something less complex that will do it. If you don't have
headers/footers, text boxes or frames that contain fields you could just
use:

ActiveDocument.Fields.Unlink

Hope this helps,
--

Charles Kenyon

Word New User FAQ & Web Directory: http://addbalance.com/word

Intermediate User's Guide to Microsoft Word (supplemented version of
Microsoft's Legal Users' Guide) http://addbalance.com/usersguide

See also the MVP FAQ: http://www.mvps.org/word which is awesome!
--------- --------- --------- --------- --------- ---------
This message is posted to a newsgroup. Please post replies
and questions to the newsgroup so that others can learn
from my ignorance and your wisdom.

"Thomas Payne" wrote in message
...
I'm running XP Pro, and Word 2002.

My publisher needs me to convert my field results to hard text. Isn't
there a macro that does this? (I don't mean just F9 switching between
viewing the field and viewing the result -- I need to eliminate all the
fields, converting them into plain text that corresponds to their
results).

On a related note: is there a macro that converts automatic numbering
to
text numbering?

Thanks for any help.
Tom







  #8   Report Post  
Charles Kenyon
 
Posts: n/a
Default

For unlinking all fields I come up with:

Sub FieldsUnlinkAllStory()
' All Story Field Unlinker
Dim oStory As Range
On Error Resume Next
For Each oStory In ActiveDocument.StoryRanges
Do
oStory.Fields.Unlink
Set oStory = oStory.Next
Loop Until oStory Is Nothing
Next
End Sub

The reason, in the original macro, for iterating through the fields was to
test for field type. That macro was only to update REF fields and not other
fields. I think this is because in some instances it is used in documents
that have ASK or fill-in fields.

What I come up with for the one that only updates Ref fields, then, is:
Sub RefFieldUpdateAllStory()
' Written by Charles Kyle Kenyon 15 November 2001
' repaired with help from Jezebel
' All Story Field Updater - Ref fields
Dim oField As Field
Dim oStory As Range
For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular document
Do
For Each oField In oStory.Fields
If oField.Type = wdFieldRef Then
oField.Update
End If
Next oField
Set oStory = oStory.Next
Loop Until oStory Is Nothing
Next oStory
End Sub

I'm still not sure why the loop should get me through different sections
when the iteration does not but I accept your advice that it does. It also
seems as if this goes through each storyrange twice. I guess that just shows
my lack of understanding of these structures.

Thank you again.
--

Charles Kenyon

Word New User FAQ & Web Directory: http://addbalance.com/word

Intermediate User's Guide to Microsoft Word (supplemented version of
Microsoft's Legal Users' Guide) http://addbalance.com/usersguide

See also the MVP FAQ: http://www.mvps.org/word which is awesome!
--------- --------- --------- --------- --------- ---------
This message is posted to a newsgroup. Please post replies
and questions to the newsgroup so that others can learn
from my ignorance and your wisdom.


"Jezebel" wrote in message
...
Charles, there are bugs in your code --

1) Currently you are updating fields only in the body of the document,
notwithstanding your loop through the StoryRanges.

For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular
document
For Each oField In ActiveDocument.Range.Fields -----
This is wrong

The line should be --

For Each oField In oStory.Fields


2) But even fixing that, your code will also miss fields in headers and
footers after the first section, and in textframes after the first.
Header/Footer and Textframe StoryRanges are linked lists. Iterating the
StoryRanges collection returns only the first item in the list. To get the
subsequent ranges you need something like

For Each oStory In ActiveDocument.StoryRanges

Do
oStory.Fields.Update
set oStory = oStory.Next
Loop until oStory is nothing

Next


Also there's no need to iterate the fields themselves. Once you have the
range you can operate on all its fields in one statement:

oStory.Fields.Update, oStory.field.unlink, etc




"Charles Kenyon" wrote in
message ...
What follows is code that works to update all REF fields in a document. I
know that works. Then I am giving you code that I expect will do what you
want based on the macro I've tested.

Sub RefFieldUpdateAllStory()
' Written by Charles Kyle Kenyon 15 November 2001
' All Story Field Updater - Ref fields
Dim oField As Field
Dim oStory As Range
On Error Resume Next
For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular document
For Each oField In ActiveDocument.Range.Fields
If oField.Type = wdFieldRef Then
oField.Update
End If
Next oField
Next oStory
End Sub

Sub FieldsUnlinkAllStory()
' Written by Charles Kyle Kenyon 9 December 2004
' All Story Field Unlinker
Dim oField As Field
Dim oStory As Range
On Error Resume Next
For Each oStory In ActiveDocument.StoryRanges
' This goes into headers and footers as well as the regular document
For Each oField In ActiveDocument.Range.Fields
oField.Unlink
Next oField
Next oStory
End Sub

There may be something less complex that will do it. If you don't have
headers/footers, text boxes or frames that contain fields you could just
use:

ActiveDocument.Fields.Unlink

Hope this helps,
--

Charles Kenyon

Word New User FAQ & Web Directory: http://addbalance.com/word

Intermediate User's Guide to Microsoft Word (supplemented version of
Microsoft's Legal Users' Guide) http://addbalance.com/usersguide

See also the MVP FAQ: http://www.mvps.org/word which is awesome!
--------- --------- --------- --------- --------- ---------
This message is posted to a newsgroup. Please post replies
and questions to the newsgroup so that others can learn
from my ignorance and your wisdom.

"Thomas Payne" wrote in message
...
I'm running XP Pro, and Word 2002.

My publisher needs me to convert my field results to hard text. Isn't
there a macro that does this? (I don't mean just F9 switching between
viewing the field and viewing the result -- I need to eliminate all the
fields, converting them into plain text that corresponds to their
results).

On a related note: is there a macro that converts automatic numbering
to
text numbering?

Thanks for any help.
Tom







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
help, problem with text field in word 2003 Salvatore Microsoft Word Help 1 January 21st 05 04:40 PM
Hard Return in IF field Ray_Johnson Microsoft Word Help 3 January 4th 05 02:09 AM
Outline Renee Hendershott Page Layout 2 December 25th 04 03:49 PM
Text Form Field Ref in Footer Won't Update on Screen StarWine Microsoft Word Help 3 December 6th 04 07:17 PM
Auto Jump Text Field to Text Field jhnbernhard Tables 1 November 17th 04 03:13 PM


All times are GMT +1. The time now is 06:09 PM.

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"