Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Word automation - can't find text box
Message
Information générale
Forum:
Visual FoxPro
Catégorie:
COM/DCOM et OLE Automation
Divers
Thread ID:
00782504
Message ID:
00783356
Vues:
18
AFAIK, there are two kinds of "Shapes" in Word: Shapes and InlineShapes. From Help:
*------
*InlineShape objects are treated like characters and are positioned as characters within a line of text.
*Shape objects are anchored to a range of text but are free-floating and
*can be positioned anywhere on the page.
*You can use the ConvertToInlineShape method and the ConvertToShape method to convert some types of the shapes to inlineshapes.
*--------

Probably you have "Shapes". Shape types are:
*msoShapeTypeMixed = -2
*msoAutoShape=1
*msoCallout=2
*msoChart=3
*msoCommen=4
*msoFreeform=5
*msoGroup=6
*msoEmbeddedOLEObject=7
*msoFormControl=8
*msoLine=9
*msoLinkedOLEObject=10
*msoLinkedPicture=11
*msoOLEControlObject=12
*msoPicture=13
*msoPlaceholder=14
*msoTextEffect=15
*msoMedia =16
*msoTextBox=17

First try to get the type of this shape. Then you will be able to find a proper method belonging to the shape type to search the text inside.

Something like this:
for ia=1 to oWord.ActiveDocument.Shapes.Count
with oWord.ActiveDocument.Shapes(ia)
?ia,.Type
endwith
endfor


>Yuri, thanks for the repsonse. After further examination, I have discovered that it isn't actually a text box, but a shape with text within it (TextFrame Object?). I am studying to find a way to manipulate this text, if you have any suggestions, that would be great!
>
>Thanks,
>Kevin
>
>>AFAIK text boxes are not visible if active view is set to 'normal'. Try to
>>set active view to 'page layout'. Then text in textboxes could be also searched for pattern with "FIND". Something like this:
>>
>>wdPaneNone=0
>>wdPageView=3
>>WITH objWord
>> If .ActiveWindow.View.SplitSpecial = wdPaneNone
>> .ActiveWindow.ActivePane.View.Type = wdPageView
>> Else
>> .ActiveWindow.View.Type = wdPageView
>> EndIf
>>ENDWITH
>>
>>>I have a word template that has been driving me crazy. I can replace all the text in the "main story" that I need to, but I have a couple of text boxes on this template that also needs some text replaced. I have tried everything I could think of to get to the text inside these boxes. Everything I've read tells me this should work:
>>>
>>>
>>>
>>>#DEFINE wdTextFrameStory 5
>>>NewRange = oDoc.StoryRanges(wdTextFrameStory)
>>>With NewRange.Find
>>>  .ClearFormatting
>>>  .Forward = .T.
>>>  .Text = "!lcActNbr!"
>>>  .Execute
>>>  If .Found
>>>    NewRange.Text = ALLTR(ltrctr.act_nbr)
>>>  EndIf
>>>EndWith
>>>
>>>
>>>
>>>No luck. Any help would be greatly appreciated.
>>>
>>>Thanks,
>>>Kevin
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform