Solved

Microsoft Word Object Library

Posted on 2002-05-31
10
208 Views
Last Modified: 2010-05-02
I am issuing a find/replace command and it is only replacing certain instances that are plain text in the document, but not instances of the word that are contained inside of a text box.

When using the fing/replace within word it works fine.

Dim wordApp As Word.Application
Dim wordDoc As Word.Document

Set wordApp = New Word.Application

Set wordDoc = wordApp.Documents.Open("Test.doc", ReadOnly:=False)

wordApp.Selection.Find.Execute "this", False, False, False, False, False, True, wdFindContinue, False, "that", wdReplaceAll

what is the scope of the wordApp.Selection without specifying it like i'm not?

Is there something i can do to make sure it looks everywhere in the document?

Thanks,
geo90
0
Comment
Question by:geo90
  • 4
  • 3
  • 3
10 Comments
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 7047484
Please maintain your open questions.  For the record:

Questions Asked 12
Last 10 Grades Given B B B A A B A B  
Question Grading Record 8 Answers Graded / 8 Answers Received

Anthony
0
 
LVL 45

Expert Comment

by:aikimark
ID: 7049121
Let me rewrite your statement with named parameters for clarity.

wordApp.Selection.Find.Execute _
FindText:="this", MatchCase:=False, _
MatchWholeWord:=False, MatchWildcards:=False, _
MatchSoundsLike:=False, MatchAllWordForms:=False, _
Forward:=True, Wrap:=wdFindContinue, _
Format:=False, ReplaceWith:="that", Replace:=wdReplaceAll

===========================================

I would recommend the following:
1. moving the selection to the start of the document before this command
2. exploring other parts of the document, such as another story, headings, footings, and forms.  You will have to select or move the selection to these other parts of the document.

===========================================
If this text is inside a Userform, you might have to instantiate some VBE objects to get to them.  You won't be able use Find/replace commands to change it. :-(
0
 

Author Comment

by:geo90
ID: 7049180
1. How do you move the selection to the start of the doc?
2. The text that isn't being replaced is just a simple text box.
0
 
LVL 45

Accepted Solution

by:
aikimark earned 200 total points
ID: 7049542
Selection.StartOf wdStory

I thought you'd be able to iterate through the shapes collection, just like you do with PowerPoint, but the shape isn't exposing its text to my sample code.

If you know the names of the textbox controls ahead of time, you can directly access them and their text with:

ActiveDocument.Textbox1.Text
ActiveDocument.Textbox2.Text
0
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 7049603
Thank you for maintaining your open questions, but I believe you may have overlooked the following question:
Desktop Icon placement Date: 12/26/2001 08:05PM PST
http://www.experts-exchange.com/visualbasic/Q_20306682.html

Anthony
0
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
LVL 45

Expert Comment

by:aikimark
ID: 7049629
Anthony,

Your question link referenced this (current) question.
0
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 7049684
aikimark,

You absolutely right, the link should be:
http://www.experts-exchange.com/jsp/qShow.jsp?ta=visualbasic&qid=20249221

Anthony
0
 

Author Comment

by:geo90
ID: 7051997
How are you naming your text boxes?
When I'm in word I do insert > text box and it just puts a text box on the doc and i don't see anywhere where i can set a name property.
0
 
LVL 45

Expert Comment

by:aikimark
ID: 7052790
open the properties dialog window (right mouse click) and you can name the textbox controls.

You might be better off adding text frames instead of a textbox.  These are accessable through the Shapes collection.
0
 

Author Comment

by:geo90
ID: 7055102
I found that i can loop through the shapes and then test to see if it is a text box (through the type property)
and if it is a text box i issue a select command and then i repeat my find/replace command for each one.

Thanks for your help.
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

I’ve seen a number of people looking for examples of how to access web services from VB6.  I’ve been using a test harness I built in VB6 (using many resources I found online) that I use for small projects to work out how to communicate with web serv…
Have you ever wanted to restrict the users input in a textbox to numbers, and while doing that make sure that they can't 'cheat' by pasting in non-numeric text? Of course you can do that with code you write yourself but it's tedious and error-prone …
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

705 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

17 Experts available now in Live!

Get 1:1 Help Now