View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.programming
Tom Ogilvy Tom Ogilvy is offline
external usenet poster
 
Posts: 27,285
Default Word Control in Excel

I did what you described and ran the code from Norman (modified to refer to
the activesheet)

Sub Test()
Dim myShape As Shape, rng As Range

For Each myShape In ActiveSheet.Shapes
If myShape.Name Like "Text*" Then
Set rng = myShape.TopLeftCell
rng.Value = "Bingo"
End If
Next
End Sub

and it worked fine. However, the textbox in word was drawn from the drawing
toolbar and came into excel as a member of the textboxes collection. I
then put in a textbox in word from the control toolbox toolbar and in design
mode, selected it and copied it. Pasted into Excel, it worked with the
original code you posted (modified to refer to the activesheet)

Sub AATest()
Dim oleObj As OLEObject, rng As Range
For Each oleObj In ActiveSheet.OLEObjects
If TypeOf oleObj.Object Is MSForms.TextBox Then
Set rng = oleObj.TopLeftCell
rng.Value = "Bingo"
End If
Next
End Sub

--
Regards,
Tom Ogilvy

"Stuart" wrote in message
...
Thanks for that.
It steps through without an error, but no values appear
in the textboxes.
Any ideas, please?

Regards.

"Norman Jones" wrote in message
...
Hi Stuart,

Please uncomment the continuation part of the For Each line!


---
Regards,
Norman



"Norman Jones" wrote in message
...
Hi Stuart,

Try:

Sub Test()
Dim myShape As Shape, rng As Range

For Each myShape In ActiveWorkbook.Sheets _
' ("Contract Master Order").Shapes
If myShape.Name Like "Text*" Then
Set rng = myShape.TopLeftCell
rng.Value = "Bingo"
End If
Next
End Sub

---
Regards,
Norman


"Stuart" wrote in message
...
Thanks for that.
It now runs to the line "For Each etc" and then
immediately jumps to "End Sub"

Regards.

"Dave Peterson" wrote in message
...
Try adding a reference to "microsoft forms 2.0 object library"

I'm not sure how this'll work with your Word problem, though.

Stuart wrote:

Using Office 2000, I open Word and in a new document
I insert a Textbox. I then copy and paste it into a worksheet.

I cannot find a way to programmatically refer to it.

Sub Test()
Dim oleObj As OLEObject, rng As Range
For Each oleObj In ActiveWorkbook.Sheets _
("Contract Master Order").OLEObjects
If TypeOf oleObj.Object Is MSForms.TextBox Then
Set rng = oleObj.TopLeftCell
rng.Value = "Bingo"
End If
Next
End Sub

The 'If' statement gives the error:
User defined type not defined

How do I control the Textbox, please?

---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.716 / Virus Database: 472 - Release Date:

05/07/2004

--

Dave Peterson



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (
http://www.grisoft.com).
Version: 6.0.716 / Virus Database: 472 - Release Date: 05/07/2004








---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.716 / Virus Database: 472 - Release Date: 05/07/2004