Solved

Replace word fields with Text

Posted on 2009-07-06
6
349 Views
Last Modified: 2012-05-07
I am trying to replace all fields in a word doc with static text using perl so that the replaced text position is the same as the field.  i.e. remove the field and in its place put some text.

All I seem to be able to do is to replace the content of the field to the desired text.
my $listOfFields = $wordApp->ActiveDocument->Fields();

my $count = $wordApp->ActiveDocument->Fields->Count;

for (my $i = 1; $i <= $count; $i++) {

             my $field = $listOfFields->Item($i);

              $field->{Name} = 'MyFieldName';    #thought this might be useful - but doesn't set the name.

              $field->{Code}->{Text} = 'StaticText';

              $field->Cut;      #doesn't seem to remove the field

}

Open in new window

0
Comment
Question by:crisis_davis
  • 3
  • 3
6 Comments
 

Author Comment

by:crisis_davis
ID: 24792420
By using mailmerge to merg the document with a list that is pre-configured works a dream.  Now all I need to do is to automate the merge process.  Does anyone know how to run the  merge process from a perl script?
0
 
LVL 37

Accepted Solution

by:
Joanne M. Orzech earned 500 total points
ID: 24794510
If you're just replacing the content of the field with the exact text contained in the field, why don't you just do Control A (Select All) and Control-Shift F9 to turn the fields to text...?  It's called unlinking the fields.

0
 

Author Closing Comment

by:crisis_davis
ID: 31600443
Love it, - nice and simple - thanx  - will automate it with Perl now that I know what I am trying to do.  many thanks for help.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 37

Expert Comment

by:Joanne M. Orzech
ID: 24796091
Excellent!  I was hoping that was what you were looking for!  So pleased to have been able to assist you.  Thanks so much.

Joanne Orzech
MS Word MVP
EE Zone Advisor
0
 

Author Comment

by:crisis_davis
ID: 24796389
So code now looks like:
my $listOfFields = $wordApp->ActiveDocument->Fields();

my $count = $wordApp->ActiveDocument->Fields->Count;

for (my $i = 1; $i <= $count; $i++) {

             my $field = $listOfFields->Item($i);

              $field->{Code}->{Text} = 'StaticText';

}

$listOfFields->Unlink();

Open in new window

0
 
LVL 37

Expert Comment

by:Joanne M. Orzech
ID: 24796413
Thanks for posting that!  It's all greek to me since I only use VBA (code below to update and unlink fields), but I'm sure will be helpful to anyone who knows perl script  :)  

So thanks!

    Selection.WholeStory

    Selection.Fields.Update

    Selection.Fields.Unlink

    Selection.HomeKey Unit:=wdStory

Open in new window

0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A few years ago I was very much a beginner at VBA, and that very much remains the case today.  I'll do my best to explain things as I go in the hope that other beginners can follow.  If you just want to check out a tool that creates a Select Case fu…
Microsoft Word is a program we have all encountered at some point, but very few of us have dug deep into its full scope of features, let alone customized it to suit our needs. Luckily making the ribbon (aka toolbar, first introduced in Word 2007) wo…
This Micro Tutorial well show you how to find and replace special characters in Microsoft Word. This is similar to carriage returns to convert columns of values from Microsoft Excel into comma separated lists.
In a previous video Micro Tutorial here at Experts Exchange (http://www.experts-exchange.com/videos/1358/How-to-get-a-free-trial-of-Office-365-with-the-Office-2016-desktop-applications.html), I explained how to get a free, one-month trial of Office …

910 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now