View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.misc
Broadband Al
 
Posts: n/a
Default Syntax to return the value of a control by reference

Thanks guys.. the obj.object did the trick. Also, I had not declared an
object type variable so I must have been trying to set object properties to
string variables - and getting my strings in knots (ha ha)!
Your suggestions worked perfectly and I can go to bed happy at 0120hrs here
in the UK! Thanks.
Al

"Jim Cone" wrote:

B,

Note the object.object...
'-------------------------------
Sub ARoundForTheHouse()
Dim obj As OLEObject
For Each obj In ActiveSheet.OLEObjects
If TypeName(obj.Object) = "CheckBox" Then
MsgBox obj.Name & " " & obj.Object.Value
ElseIf TypeName(obj.Object) = "ComboBox" Then
MsgBox obj.Name & obj.Object.Value
End If
Next 'obj
End Sub
'----------------

Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware



"Broadband Al"

wrote in message
...
This is driving me crazy!!
I have a number of controls on a sheet. (Check boxes, option buttons and
combo boxes). I know that "cmbTitle.value" or "optBlue.value" sets/returns
what I want for an individual control but how do you refer to the controls in
a loop without using their individual names?

ie I want a macro to loop through the controls and return or set the
controls' values to/from an array. I have been using:
thisworkbook.sheets(s).OLEobject(x)...... where x=the control's name.

This works for pulling up their names etc. but "OLEobject" does not have a
"value" property. While about it, how do you return the type of a control ie
whether it is a combo of check box?
Please help...... I don't have much hair left!